CR: COMP 1406 Learning Objectives: Difference between revisions

From Soma-notes
Howe (talk | contribs)
Howe (talk | contribs)
Line 13: Line 13:
* Understand the advantages of object-oriented programming for  encapsulation and reuse.
* 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.
* Be able to navigate a moderately sized existing class hierarchy,  for example a GUI API.


General programming
General programming
* Be able to construct a complete application including user interaction and the file system.
* 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.
* Be able to build an application using the Model/View/Controller pattern.
* Have an understanding of scoping as an explicit concept.
* Have an u
nderstanding of scoping as an explicit concept.
 


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


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


Efficiency
Efficiency
* Have an intuitive, operational understanding of basic asymptotic complexity, for example quadratic vs linear time, but without a formal definition of "big-O".
* 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
Testing and debugging

Revision as of 14:41, 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 u

nderstanding 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