Lectures, Labs
   & Assignments





Lectures, Labs & Assignments 


This schedule is subject to change. Readings are meant to be read in advance of the lecture for which they are shown.  Assignments will be posted as the semester progresses.

Go directly to the current week.

Week 1: 

Tues Aug 27
Lecture: Overview; Intro to Binary and Boolean
Readings: Brookshear, Ch. 1.1-1.6

Wed Aug 28
Lab: Placement Exam(optional); Build a Home Page (Lab 1)

Thurs Aug 29
Lecture: How Computers Work: Logic Gates
Readings: Brookshear 2.4, Online demo of logic gates and circuits

Week 2: 

Tues Sept 3
Lecture: How Computers Work: Logic Gates cont, the CPU; Instructions versus Data
Readings: Brookshear 2.1-2.5, Online demo of a CPU
Assignment: Assignment 1: How Computers Work, due Thursday Sept. 12.

Wed Sept 4
Lab: Using SIMS File Services (Kevin Heard)

Thurs Sept 5
Lecture: How Computers Work: CPU cont, the Memory Hierarchy, Programs vs. Processes
Readings: Brookshear 3.1-3.5, 8.1-8.2, Online demo of Operating System functions

Week 3: 

Tues Sept 10
Lecture: How Computers Work: Operating Systems, Memory Management
Readings: Online demo of Operating System functions

Wed Sept 11
Lab: Intro to Unix, Part I (Kevin Heard) [This is optional, but only if you already know Unix.]

Thurs Sept 12
Lecture: The Java VM; Programming Paradigms
Readings: Brookshear 5.1-5.5
Assignment: Memory Management and Program Structure, due Sept 19

Week 4: 

Tues Sept 17
Lecture: Object Oriented Design, CRC Cards, UML
Readings: Main Ch. 2 (optional if it is review), and Ch. 3.1-3.2 (but skip section called analysis), Ch. 5

Wed Sept 18
Lab: Using the Eclipse IDE (and other java tools)

Thurs Sept 19
Lecture: In class OO design
Readings: Brookshear 4.3, 6.1 - 6.6, Handout on designing with CRC Cards, Class diagrams portion of this UML tutorial

Week 5: 

Tues Sept 24
Lecture: Algorithms and Pseudocode
Readings: Brookshear 0.1-0.5, 4.1-4.2, 4.4, The Costs and Benefits of Pair Programming, by Cockburn & Williams, from Extreme Programming Examined, Addison Wesley-Longman, 2001.
Assignment 3: Java object definitions, arrays, javadoc due Oct 3

Wed Sept 25
Lab: Intro to Unix, Part II (Kevin Heard)

Thurs Sept 26
Lecture: Math Review, Intro to Analysis of Algorithms
Readings: (Optional if you know the material): Main Ch. 1, Appendices B, C, and H, Math Review : Logarithms and Exponential Functions

Week 6: 

Tues Oct 1
Lecture: Analysis of Algorithms, cont.
Readings: Brookshear 4.6, Main 1.2, Handout from Goodrich & Tamassia

Wed Oct 2
Lab: Java programming with iterators and collections, Debugging with the Eclipse IDE

Thurs Oct 3
Lecture: Stacks
Readings: Main Ch. 6, Analysis section in Main 3.2
Assignment 4: Analysis of Algorithms, due Oct 15

Week 7: 

Tues Oct 8
Lecture: Queues, Vectors
Readings: Main Ch. 7

Wed Oct 9
Lab: Slides for LabEchoFile.javaEchoFileToken.java
Java programming with Stacks and Queues

Thurs Oct 10
Lecture: Intro to Recursion
Readings: Main Ch. 8

Week 8: 

Tues Oct 15
Lecture: Intro to Trees (Guest Lecturer: Barbara Rosario)
Readings: Main Ch. 9
Assignment 5: Generating HTML using trees and recursion, due Oct 29

Wed Oct 16
Lab: HTML generation assignment
Java programming with Recursion

Thurs Oct 17
Lecture: Good Programming Practice (Guest Lecturer: Marat Boshernitsan)

Week 9: 

Tues Oct 22
Lecture: Binary Search Trees; Heaps
Readings: Main Ch. 10

Wed Oct 23
Lab: Programming with Trees

Thurs Oct 24
Lecture: Hash Tables
Readings: Main Ch. 11.3-11.5
Assignment 6: CodeBreaker, due Nov 4 

Week 10: 

Tues Oct 29
Lecture: B-Trees
Readings: Main Ch. 10

Wed Oct 30
Lab: Codebreaker coding

Thurs Oct 31
Lecture: Sorting
Readings: Main Ch. 12

Week 11: 

Tues Nov 4
Lecture: Sorting, cont. Java Interfaces.
Assignment: Programming Java Interfaces, Sorting Algorithms, due Nov 14

Wed Nov 5
Lab: Disk-based Hashing

Thurs Nov 6
Lecture: Regular Expressions
Readings: Jurafsky and Martin Ch. 2 (handout)

Week 12: 

Tues Nov 12
Lecture: Finite Automata; Context Free Grammars
Readings: Jurafsky and Martin, Ch. 2

Wed Nov 13
Lab: Regex lab 

Thurs Nov 14
Lecture: Compilers, Lexers, and Parsers; Begin Graphs
Readings: Main Ch. 14
Assignment: Regular expression assignment, due Nov 26

Week 13: 

Tues Nov 19
Lecture: Graphs,cont.
Readings: Laforte Handout on Weighted Graphs

Wed Nov 20
Lab: Optional: regex work

Thurs Nov 21
Lecture: Substring Matching, Tries, Dynamic Programming

Week 14: 

Tues Nov 26
Lecture: Programming to a Database
Assignment: OO programming applied to connecting to a database, due Dec 16
Readings: Brookshear Ch 11.

Wed Nov 27
Lab: optional, DBMS tutorial

Thurs Nov 28

    Thanksgiving Holiday

Week 15: 

Tues Dec 3
Lecture: Complexity and NP-Completeness    Course wrap-up
Readings: Brookshear Ch. 10

Wed Dec 4
Lab: optional

Thurs Dec 5
Lecture: Turing Machines, Computability, Computers and Intelligence