CS 136 - Lecture 1

  1. Why take CS 136?
  2. The team
  3. Sample problems
  4. Your responsibilities
  5. Design vs. Coding from Tomassia
  6. Java syntax for Pascal features
  7. Sample program

Why take CS 136?

Learn about designing correct and efficient algorithms and data structures

The team

  • Professor: Andrea Danyluk

  • TAs: Grayson Myers, Samantha Orme, Jason Chapman, and Doug Thunen are the CS 136 TAs.
  • Course web page: http://www.cs.williams.edu/~andrea/cs136/

    Sample problems

    1. Write a backtracking algorithm to find a path from Williamstown to San Diego.
    2. Find the shortest path from Williamstown to San Diego on interstate system

    3. (and do it efficiently).
    4. Schedule final exams so there are no conflicts.
    5. Design and implement a scientific calculator.
    6. Design and implement a simulator that lets you study traffic flow in a city or airport.

    Your responsibilities

    I can present material to you to make it easier for you to learn.

    Design vs. Coding

    Data Structure and Algorithm Design goals:

    1. Correctness
    2. Efficiency

    Implementation Goals:

    1. Robustness (produce correct output for all inputs - including erroneous input)
    2. Adaptability (can evolve over time with new requirements - Y2K problem)
    3. Reusability (use same code in multiple situations)

    Java syntax for Pascal features

    Brief review of the syntax for "traditional" constructs: