CR: COMP 1406 Learning Objectives: Difference between revisions

From Soma-notes
Howe (talk | contribs)
Howe (talk | contribs)
Line 10: Line 10:


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, and associations between objects (inheritance, composition), and making appropriate use of inheritance and override in method implementations.
solution, identifying appropriate objects, attributes, behaviors,
* Understand the advantages of object-oriented programming for  encapsulation and reuse.
and associations between objects (inheritance, composition), and
* Be able to navigate a moderately sized existing class hierarchy, for example a GUI API.
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
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 pattern.
* Be able to build an application using the Model/View/Controller
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 abstractions are useful.
lists, sets, and dictionaries, and an understanding why the
* Be able to solve simple problems involving elementary singly and doubly-linked data structures such as lists and trees.
abstractions are useful.
* 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,
* 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 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
* Have an intuitive, operational understanding of basic asymptotic complexity, for example quadratic vs linear time, but without a formal definition of "big-O".
complexity, for example quadratic vs linear time, but without a
formal definition of "big-O".


Testing and debugging
Testing and debugging
* Have a repertoire of elementary techniques for locating bugs in
* Have a repertoire of elementary techniques for locating bugs in source code.  
source code.  
* Know some of the common kinds of bugs that arise in object-oriented programs.
* Know some of the common kinds of bugs that arise in object-oriented
programs.


=Topics=
=Topics=

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 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