313-125 COM S  211
Computers and Programming
Spring 2004
347-453 ENGRD 211   3 credits

Tuesdays and Thursdays, 10:10AM - 11:00AM, Olin Hall 155

 

Home
Objectives,
topics, outcomes
CS212 and CS211
Java bootcamp
AEWs
DrJava
Communication
Staff info
Lecture/Rec times
Lecture/Rec notes
Lec/Rec schedule
Texts
News
Handouts
Assignments
Exams
About grades
Course consultants
Useful links
Computer labs

Course objectives
The goals of Com S 211 are to make students proficient in the use of (i) modern programming language features such as recursion, subtyping, inheritance, graphical user interfaces (GUIs), and generic programming and (ii) modern data structures such as lists, trees, stacks, queues, heaps, and graphs.

Topics covered

  • Recursion
  • Classes and objects
  • Subtyping
  • Inheritance
  • Interfaces
  • Graphical user interfaces (GUIs)
  • Generic programming
  • Asymptotic complexity: big-O notation
  • Searching and sorting in arrays
  • Lists and trees
  • Stacks, queues, priority queues, heaps
  • Binary search trees, hash tables
  • Graphs and simple graph algorithms such as Dijkstra’s single-source shortest-paths algorithm,
    and minimal spanning tree algorithms.

Course outcomes

  1. Be fluent in the use of recursion and object-oriented programming concepts (e.g. classes, objects,
    inheritance, and interfaces).
  2. Be able to design and implement non-trivial Java programs (roughly 1000 lines of code),
    starting from an English language specification.
  3. Be able to design graphical user interfaces. (GUIs).
  4. Understand asymptotic complexity of algorithms and be able to analyze programs to determine
    their running times.
  5. Understand basic data structures -arrays, lists, trees, stacks, queues, priority queues, binary
    search trees, and hash tables.
  6. Understand graphs and elementary graph algorithms.