CR: COMP 1406 Learning Objectives: Difference between revisions
(One intermediate revision 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, | * | ||
* Understand the advantages of object-oriented programming for | * 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. | * 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 | * 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 |
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