Course Goals and Objectives
From CSWiki
Revision as of 14:34, 21 January 2009; Stone (Talk | contribs)
(diff) ←Older revision | Current revision | Newer revision→ (diff)
(diff) ←Older revision | Current revision | Newer revision→ (diff)
[edit]
CSC 151, Functional problem solving
[edit]
CSC 161, Imperative problem solving and data structures
CSC 161 provides foundational coverage of topics related to imperative problem solving, Unix/Linux programming environments, and data structures. Topics covered will include:
- Low-level, imperative problem solving and elements of C
- Macros
- Compiling, linking
- Preprocessing
- Assignment
- Conditionals: if, switch
- File I/O
- Arrays
- Loops
- Pointers and memory management
- Header files
- Strings
- Command-line arguments
- Structs
- Unions
- General topics
- Assert
- Binary representation of data (twos-complement, IEEE floating-point)
- Recursion
- Loop invariants
- Linux
- Elementary make files
- Permissions
- I/O redirection
- grep
- Editing with emacs or vi
- Abstract data types and data structures
- Linked lists (and doubly-linked-lists and circular lists)
- Stacks and queues
[edit]
CSC 207, Algorithms and object-oriented design
CSC 207 introducts object-orient problem solving, the Java programming language, and associated algorithms. An approximate list of topics follows:
- Java
- Basics
- Interfaces and classes
- Exceptions
- Strings
- Arrays vs. vectors
- Comparators; sorting
- Generics
- Java type system
- Iterators
- Negotiating the Java class libraries
- OOP
- Inheritance
- Polymorphism
- Abstract data types, data structures, and algorithms
- Dictionaries
- Hash tables
- Binary search trees
- Priority queues
- Heaps
- Formalize upper-bound efficiency analysis; big-O notation
- Contrast results for small and large data sets
- Prove negligible role of lower-order terms
- Program development
- Integrated development environments
- Unit testing
- Integration testing
- Possible additional topics
- Introspection
- Swing
- Introduction of tight-bound analysis (big Θ)

