Course Goals and Objectives

From CSWiki

Jump to: navigation, search

CSC 151, Functional problem solving

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

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 Θ)
Personal tools