CR: COMP 1406 Learning Objectives: Difference between revisions

From Soma-notes
Howe (talk | contribs)
 
(3 intermediate revisions by one other user not shown)
Line 10: Line 10:


Object-oriented programming
Object-oriented programming
* Given a set of requirements, be able to formulate an object-oriented
*
  solution, identifying appropriate objects, attributes, behaviors,
* Given a set of requirements, be able to formulate an object-oriented solution, but without inheritance
  and associations between objects (inheritance, composition), and
* Understand the advantages of object-oriented programming for encapsulation and reuse.
  making appropriate use of inheritance and override in method
* Understand mechanism of inheritance: fields and methods,
  implementations.
* Be able to navigate a moderately sized existing class hierarchy, for example a GUI API.
* 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
* Have an u
  pattern.
nderstanding 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=

Latest revision as of 23:11, 11 December 2012

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, but without inheritance
  • Understand the advantages of object-oriented programming for encapsulation and reuse.
  • Understand mechanism of inheritance: fields and methods,
  • 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