CSC212 Schedule 2014
Prof and TAs
Dominique Thiébaut email |
|
Teaching Assistants
- Wen, Xuan,
- Upreti, Angela, Thursday afternoon lab
- Galen Long
- Pratistha Battharai
To see when and where TAs are available this week, click here.
Weekly Schedule
Week 1 Sept 4 |
Topics: beowulf2, emacs, Lab 1 Lab/Hw Reading - Syllabus
- Introduction to Java ( class notes)
- The use of software tools/technology in the movie The Social Network.
This section is only visible to computers located at Smith College
- Introduction to the tools used this semester:
- beowulf2
- ssh
- emacs
- javac compiler
- Hands on experience with the tools: Lab 1
- Read Chapter 1 in HF Java. Learn about the idea of a Virtual Machine, of types, of computation with Java. The idea of a Java program being a class with at least one method called main().
Week 2 Sept 9, 11 |
Topics: Java, Classes, Objects, Arrays Lab/Hw Reading - Tuesday 9/9
- 10 minutes in the Linux World
- ssh to lecturne
- the touch command
- review cat, ls, rm
- new: mkdir, w
- 10 minutes in the Linux World
- Learning Java (Lecture notes)
- Galen Long's Introduction to Java for Python Programmers
- Hands on Java: Lab 2
- Thursday 9/11
- Good Web resource: Stack Overflow
- Continue with Hands on Java: Lab 2
- Review classes & objects: Lab 1, Part 1
- Learning Java (Lecture notes)
- Example Programs
- Hands on arrays, classes and objects in Java: Lab 3
- Lab 2
- Lab 3
- Homework #1 (due 9/18/14 @ 1:00 p.m.)
and Solution Programs
- Galen Long's Introduction to Java for Python Programmers: Read Sections 1, 2, 3, 4, 5 and 7.
Week 3 Sept 16, 18 |
Topics: Data Structures, first look at lists, Javadocs Lab/Hw Reading - Tuesday, Sept. 16
- Office Hours: M4:30-5:30, T4-5, W1-4.
- Cementing Java Concepts ( class notes)
- A first look at Data Structures.: Mini assignment
- Thursday, Sept. 18
- Back to our Python list (class notes)
- Review of the code.
- Add an index( n ) and a rindex( n ) methods. index() returns the index of the leftmost occurrence of an integer n in the list. rindex() returns the rightmost index. Both return -1 if not found.
- More cementing of Java concepts ( class notes)
- Private versus Public
- Mutators & Accessors
- Java docs. Formatting a program for javadoc. Generating the javadoc for a program.
- Lab #3
- Lab #4
- Homework #2 due Sept. 25, and solution programs
- Chapters 2 to 6 in Head First Java.
- A good reference on Javadoc can be found on Oracle's Web Site (Oracle now owns Java).
Week 4 Sept 23, 25 |
Topics: List of pairs, Exceptions, Lab/Hw Reading - Tuesday, Sept. 23
- Lists
- Shallow Copy, Deep Copy, and References. Examples.
- List of pairs
- Exceptions
- Class notes
- Examples of the Use of a Generic Pair-Class
- Thursday, Sept. 25
- More Exceptions
- Throwing Exceptions
- First Data Structure: Vectors
- Class notes
- Traversing a list in reverse order (from StackOverflow)
- Lab #5 and CSC212 Lab 5 Solutions 2014
- Homework #3
- 2 videos illustrating how to upload files to Moodle
- Section 1.5 in Drozdek.
- You may want to start reading ahead Chapter 3 in Drozdek.
Week 5 Sept 30, Oct 2 |
Topics: Vectors, Time Complexity, Linked Lists, Queues and Stacks Lab/Hw Reading
Tuesday, Sept. 30
- Pep talk about good approaches to programming
- 10 minutes of Linux:
- Redirection with < and >
- Lists (Class notes)
- Review of Vectors
- A first approach to understanding time complexity
Thursday, Oct. 2nd
- Linked Lists (video of basic operations)
- Animation: Linked List
- Linked Lists
- Doubly-Linked Lists
- Queues & stacks
- Class notes
- Chapter 3 in Drozdek
Week 6 Oct 7, 9 |
Topics: RPN & stacks, Eclipse, Complexity Lab/Hw Reading Tuesday, Oct 7
- Continue Lab #6
- For this Thursday, please install Eclipse on your computer (first part of Lab #7)
- Evaluating RPN expressions with stacks
- For fun: A Linked List in Python
- Programming in Java with Eclipse: An example. ( code written in class)
Thursday, Oct 9
- Midterm Preparation
- Program Analysis & Complexity (class notes)
- Lab #6 (continuation from last week) and Solution Programs
- Lab #7 (Eclipse)
- Homework #4 and Solution Programs
Week 7 Fall Break, Oct 16=Midterm Exam |
Topics: Programming the Tcsh, Midterm Lab/Hw Reading - Thursday
- Lecture: Operating System and Console. Redirection, pipes, and loops in bash. (Class Notes)
- Tcsh Script
- Lab 8: Using the tcsh shell.
- Midterm Exam: closed books, closed computers, 1h 50 minutes.
- Solutions to Midterm Problems
- Lab #8 (No submission to Moodle required this week)
Week 8 Oct 21, 23 |
Topics: Recursive Algorithms, 2D Maze, N-Queens Lab/Hw Reading - Tuesday, Oct. 21
- Evaluating the amortized time complexity of the insert operation in a vector or ArrayList
- Recursive Algorithms
- Basics of Recursion
- Examples
- Evaluating the time complexity of binary search: average case, best case, worst case.
- Thursday, Oct. 23
- Recursive RPN Evaluator (will be fully developed in lab)
- Evaluating the time complexity of factorial
- Revisiting the recursive Fibonacci solution: Removing the tail recursion. How much does it help?
- Exploring a 2D Maze
- The N-Queens problem
- Lab #9
- Homework #5, due Friday Oct. 31st, at 11:55 p.m.
- Lab 9 Solution Programs
- Drozdek, Chapter on Recursive Functions.
- Interesting references for the NQueens problem:
Week 9 Oct 28, 30 |
Topics: Trees, BSTs, Heaps Lab/Hw Reading - Tuesday Oct. 28
- A quick look back at the N-Queens problem: Testing the speed of your new computer!
- Introduction to Trees
-
This section is only visible to computers located at Smith College - (Class Notes 2: BSTs)
- IntBST.java
- Generating Trees with Graphviz <-- done in Lab 10
- Thursday Oct. 30
- Continue with BSTs
- BreadthFirst Search
- Depth-First Search: inOrder, preOrder, postOrder
- Insertion in a BST
- Deletion from a BST
- Balancing a Tree (the whole tree, not adaptively)
- (Class Notes 2: BSTs)
- Lab #10 and solutions
- Homework #6, due Nov. 7th at 11:55 p.m. and Solutions
- Chapter 6 in Drozdek.
Week 10 Nov 4 (Otelia Cromwell) |
Topics: BSTs, Heaps Lab/Hw Reading - Tuesday, Nov 4
- Complexity of BST operations
- Self-Balancing Trees
- Heaps
- (Class Notes)
- Thursday, Nov 6: Otelia Cromwell Day
- No class
- No lab, but you can do an optional lab on your own... See Lab 11 for details.
- Lab 11 (Optional lab) and solution program
- Homework #7 and Solution Program
Week 11 Nov 11, 13 |
Topics Lab/Hw Reading - Tuesday, Nov. 11
- Side step: regular expressions (a brief look) Splitting Text into Words
- Sorting
- InsertionSort
- SelectionSort
- QuickSort
- HeapSort
- Thursday, Nov. 13
- More on Sorting (Class Notes)
- Introduction to Graphs
- Lab #12 & solution program
- Homework #8 due 11/21/14 and Solution Programs
- Chapter 9 in Drozdek, on Sorting.
Week 12 Nov 18, 20 |
Topics Lab/Hw Reading - Tuesday
- Graphs, Continued
- DFS
- First 2 problems of Lab #13
- (Class Notes)
- Graphs, Continued
- Thursday
- BFS
- Dijkstra's Algorithm
- Floyd Algorithm
- Remaining problems of Lab #13
- (Class Notes)
- Chapter 8 in Drozdek
Week 13 Nov 25, Thanksgiving |
Week 14 Dec 2, 4 |
Topics Lab/Hw Reading - Tuesday, Dec. 2
- Finish Lab 14 (45 minutes)
- Graphical User Interface (GUI)
- The Model-View-Controller (MVC)
- Applying MVC to a graph: Analysis of an application
- Code for an MVC in Processing
- (Class Notes)
- Processing Special Effects: Understanding Special Effects in Processing
- Model-View-Controller, Version 1, in Java
- Lab 15
- Final Project, due 12/19/14 @ 4:00 p.m.
Week 15 Dec 9, 11 |
Topics Lab/Hw Reading TBA
- Lab 16
- Final Exam
Links and Resources
Java Programs
Java Documentation
Algorithm Visualization