Syllabus for CS111C Data Structures and Algorithms with Java

Fall 2013 Schedule - tech-enhanced

 

Review of Interfaces

Lab A Interfaces

 

Lists

Homework #1

 

Array-based 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) 239-3367        
Email: cmetzler@ccsf.edu
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.

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.