CR: COMP 1406 Learning Objectives: Difference between revisions

From Soma-notes
Howe (talk | contribs)
Howe (talk | contribs)
Line 11: Line 11:
Object-oriented programming
Object-oriented programming
* Given a set of requirements, be able to formulate an object-oriented
* Given a set of requirements, be able to formulate an object-oriented
  solution, identifying appropriate objects, attributes, behaviors,
solution, identifying appropriate objects, attributes, behaviors,
  and associations between objects (inheritance, composition), and
and associations between objects (inheritance, composition), and
  making appropriate use of inheritance and override in method
making appropriate use of inheritance and override in method
  implementations.
implementations.
* Understand the advantages of object-oriented programming for
* Understand the advantages of object-oriented programming for
  encapsulation and reuse.
encapsulation and reuse.
* Be able to navigate a moderately sized existing class hierarchy,  
* Be able to navigate a moderately sized existing class hierarchy,  
  for example a GUI API.
for example a GUI API.


General programming
General programming
* Be able to construct a complete application including user
* Be able to construct a complete application including user
  interaction and the file system.
interaction and the file system.
* Be able to build an application using the Model/View/Controller
* Be able to build an application using the Model/View/Controller
  pattern.
pattern.
* Have an understanding of scoping as an explicit concept.
* Have an understanding of scoping as an explicit concept.


Data structures
Data structures
* Have experience with simple abstract data types such as stacks,
* Have experience with simple abstract data types such as stacks,
  lists, sets, and dictionaries, and an understanding why the
lists, sets, and dictionaries, and an understanding why the
  abstractions are useful.
abstractions are useful.
* Be able to solve simple problems involving elementary singly and
* Be able to solve simple problems involving elementary singly and
  doubly-linked data structures such as lists and trees.
doubly-linked data structures such as lists and trees.


Recursion  
Recursion  
* Understand the recursive view simple data structures such as trees,
* Understand the recursive view simple data structures such as trees,
  and be able to apply the corresponding recursion pattern.
and be able to apply the corresponding recursion pattern.
* Use recursion to devise divide-and-conquer solutions to problems
* Use recursion to devise divide-and-conquer solutions to problems
  without obvious iterative solutions, for example tree traversals and
without obvious iterative solutions, for example tree traversals and
  maze pathfinding
maze pathfinding


Efficiency
Efficiency
* Have an intuitive, operational understanding of basic asymptotic
* Have an intuitive, operational understanding of basic asymptotic
  complexity, for example quadratic vs linear time, but without a
complexity, for example quadratic vs linear time, but without a
  formal definition of "big-O".
formal definition of "big-O".


Testing and debugging
Testing and debugging

Revision as of 14:38, 2 May 2011

Calendar Description

Assumed Background

Learning objectives completed before this course.


Learning Objectives

Object-oriented programming

  • Given a set of requirements, be able to formulate an object-oriented

solution, identifying appropriate objects, attributes, behaviors, and associations between objects (inheritance, composition), and making appropriate use of inheritance and override in method implementations.

  • Understand the advantages of object-oriented programming for
encapsulation and reuse.
  • Be able to navigate a moderately sized existing class hierarchy,

for example a GUI API.

General programming

  • Be able to construct a complete application including user

interaction and the file system.

  • Be able to build an application using the Model/View/Controller

pattern.

  • Have an understanding of scoping as an explicit concept.

Data structures

  • Have experience with simple abstract data types such as stacks,

lists, sets, and dictionaries, and an understanding why the abstractions are useful.

  • Be able to solve simple problems involving elementary singly and

doubly-linked data structures such as lists and trees.

Recursion

  • Understand the recursive view simple data structures such as trees,

and be able to apply the corresponding recursion pattern.

  • Use recursion to devise divide-and-conquer solutions to problems

without obvious iterative solutions, for example tree traversals and maze pathfinding

Efficiency

  • Have an intuitive, operational understanding of basic asymptotic

complexity, for example quadratic vs linear time, but without a formal definition of "big-O".

Testing and debugging

  • Have a repertoire of elementary techniques for locating bugs in

source code.

  • Know some of the common kinds of bugs that arise in object-oriented

programs.

Topics

Topic 1

Learning objectives for topic 1

Topic 2

Learning objectives for topic 2