Difference between revisions of "CR: COMP 1406 Learning Objectives"

From Soma-notes
Jump to navigation Jump to search
(Created page with "=Calendar Description= =Assumed Background= Learning objectives completed before this course. =Learning Objectives= Objectives for the whole course =Topics= ==Topic 1== …")
 
Line 8: Line 8:
=Learning Objectives=
=Learning Objectives=


Objectives for the whole course


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

Revision as of 10:36, 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