Syllabus for CS111C Data Structures and Algorithms with Java
Fall 2013 Schedule  techenhanced

Review of Interfaces 
Lab A Interfaces 

Lists 
Homework #1 

Arraybased lists 
Homework #2 
Linked lists  Homework #3 

Test #1 

Lab B Implementation 

Timing of Algorithms 
Homework #4 

Recursion 
Homework #5 

Sorting 
Homework #6 
Test #2  Lab C Recursion  

Searching and Hashing 
Homework #7 

Stacks & Queues 
Homework #8 
Test #3  Lab D Stacks / Queues  

Trees 
Homework #9 
Graphs  Extra Credit  
Final 

Final Exam 
Instructor: Charles Metzler
Phone: (415) 2393367
Email: cmetzler@ccsf.edu
Office: Batmale Hall Room 466 MW 9:0010
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.
Grading
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.