Syllabus for CS111C Data Structures and Algorithms with Java

Fall 2013 Schedule - tech-enhanced


Review of Interfaces

Lab A Interfaces



Homework #1


Array-based lists

Homework #2

  Linked lists Homework #3

Test #1


Lab B Implementation


Timing of Algorithms

Homework #4



Homework #5



Homework #6

Test #2   Lab C Recursion


Searching and Hashing

Homework #7


Stacks & Queues

Homework #8

Test #3   Lab D Stacks / Queues



Homework #9

  Graphs Extra Credit



Final Exam

Instructor: Charles Metzler      
Phone: (415) 239-3367        
Office: Batmale Hall Room 466 MW 9:00-10

Prerequisite: CS111B Programming Fundamentals: Java

Required Text: You can use either of the following:
Data Structures and Abstractions with Java Custom Edition by Cerrano
Data Structures and Abstractions with Java 2nd Edition by Cerrano [used]
Do NOT get the 3rd edition.

Tests and assignments that are not completed will be counted as zeros.
Late assignments will be penalized:
    10% up to 1 week late
    20% up to 2 weeks late
    30% for 3 or more weeks
Missing Labs will be penalized:
    1 missing: -5 from final average
    2 missing: -10
    3 missing: -15
    4 or 5 missing: Final grade is F
Extra credit adds one point to the final average.
Final grades are determined as follows:
    50% Average of the highest two of the three tests
    25% Homework Average
    25% Final Exam
Standard grading is used:
    90 - 100 A
    80 -   89 B
    70 -   79 C
    60 -   69 D
      0 -   59 F

Course Objectives
1. Distinguish between the perspectives of conceptual interfaces and implementations.
2. Compare and contrast the timing of algorithms including sorting and searching.
3. Design and predict iterative and recursive algorithms that implement lists, stacks, queues, trees, hashing, heaps and graphs using arrays and linked lists.
4. Analyze and evaluate appropriate data structures and algorithms for a given problem.