Difference between revisions of "CSC212 Schedule 2014"
(→ ) |
(→ ) |
||
(28 intermediate revisions by the same user not shown) | |||
Line 41: | Line 41: | ||
|} | |} | ||
<br /> | <br /> | ||
− | ::{| class="mw-collapsible | + | ::{| class="mw-collapsible " style="width:100%" border="1" |
|- style="background:#dddddd;" | |- style="background:#dddddd;" | ||
|width="60%"| '''Topics''': beowulf2, emacs, [[CSC212 Lab 1 2014 | Lab 1]] | |width="60%"| '''Topics''': beowulf2, emacs, [[CSC212 Lab 1 2014 | Lab 1]] | ||
Line 77: | Line 77: | ||
|} | |} | ||
<br /> | <br /> | ||
− | ::{| class="mw-collapsible | + | ::{| class="mw-collapsible " style="width:100%" border="1" |
|- style="background:#dddddd;" | |- style="background:#dddddd;" | ||
|width="60%"| '''Topics''': Java, Classes, Objects, Arrays | |width="60%"| '''Topics''': Java, Classes, Objects, Arrays | ||
Line 128: | Line 128: | ||
|} | |} | ||
<br /> | <br /> | ||
− | ::{| class="mw-collapsible | + | ::{| class="mw-collapsible " style="width:100%" border="1" |
|- style="background:#dddddd;" | |- style="background:#dddddd;" | ||
|width="60%"| '''Topics''': Data Structures, first look at lists, Javadocs | |width="60%"| '''Topics''': Data Structures, first look at lists, Javadocs | ||
Line 173: | Line 173: | ||
|} | |} | ||
<br /> | <br /> | ||
− | ::{| class="mw-collapsible | + | ::{| class="mw-collapsible" style="width:100%" border="1" |
|- style="background:#dddddd;" | |- style="background:#dddddd;" | ||
|width="60%"| '''Topics''': List of pairs, Exceptions, | |width="60%"| '''Topics''': List of pairs, Exceptions, | ||
Line 221: | Line 221: | ||
|} | |} | ||
<br /> | <br /> | ||
− | ::{| class="mw-collapsible | + | ::{| class="mw-collapsible " style="width:100%" border="1" |
|- style="background:#dddddd;" | |- style="background:#dddddd;" | ||
|width="60%"| '''Topics''': Vectors, Time Complexity, Linked Lists, Queues and Stacks | |width="60%"| '''Topics''': Vectors, Time Complexity, Linked Lists, Queues and Stacks | ||
Line 267: | Line 267: | ||
|} | |} | ||
<br /> | <br /> | ||
− | ::{| class="mw-collapsible | + | ::{| class="mw-collapsible " style="width:100%" border="1" |
|- style="background:#dddddd;" | |- style="background:#dddddd;" | ||
|width="60%"| '''Topics''': RPN & stacks, Eclipse, Complexity | |width="60%"| '''Topics''': RPN & stacks, Eclipse, Complexity | ||
Line 309: | Line 309: | ||
|} | |} | ||
<br /> | <br /> | ||
− | ::{| class="mw-collapsible | + | ::{| class="mw-collapsible " style="width:100%" border="1" |
|- style="background:#dddddd;" | |- style="background:#dddddd;" | ||
|width="60%"| '''Topics''': Programming the Tcsh, Midterm | |width="60%"| '''Topics''': Programming the Tcsh, Midterm | ||
Line 340: | Line 340: | ||
|} | |} | ||
<br /> | <br /> | ||
− | ::{| class="mw-collapsible | + | ::{| class="mw-collapsible " style="width:100%" border="1" |
|- style="background:#dddddd;" | |- style="background:#dddddd;" | ||
|width="60%"| '''Topics''': Recursive Algorithms, 2D Maze, N-Queens | |width="60%"| '''Topics''': Recursive Algorithms, 2D Maze, N-Queens | ||
Line 386: | Line 386: | ||
|} | |} | ||
<br /> | <br /> | ||
− | ::{| class="mw-collapsible | + | ::{| class="mw-collapsible " style="width:100%" border="1" |
|- style="background:#dddddd;" | |- style="background:#dddddd;" | ||
|width="60%"| '''Topics:''' Trees, BSTs, Heaps | |width="60%"| '''Topics:''' Trees, BSTs, Heaps | ||
Line 430: | Line 430: | ||
|} | |} | ||
<br /> | <br /> | ||
− | ::{| class="mw-collapsible | + | ::{| class="mw-collapsible " style="width:100%" border="1" |
|- style="background:#dddddd;" | |- style="background:#dddddd;" | ||
|width="60%"| '''Topics''': BSTs, Heaps | |width="60%"| '''Topics''': BSTs, Heaps | ||
Line 466: | Line 466: | ||
|} | |} | ||
<br /> | <br /> | ||
− | ::{| class="mw-collapsible | + | ::{| class="mw-collapsible " style="width:100%" border="1" |
|- style="background:#dddddd;" | |- style="background:#dddddd;" | ||
− | |width="60%"| '''Topics''' | + | |width="60%"| '''Topics''' Regular Expressions, Sorting, Graphs |
|width="15%"| '''Lab/Hw''' | |width="15%"| '''Lab/Hw''' | ||
|width="25%"| '''Reading''' | |width="25%"| '''Reading''' | ||
Line 509: | Line 509: | ||
::{| class="mw-collapsible " style="width:100%" border="1" | ::{| class="mw-collapsible " style="width:100%" border="1" | ||
|- style="background:#dddddd;" | |- style="background:#dddddd;" | ||
− | |width="60%"| '''Topics''' | + | |width="60%"| '''Topics''' DFS, BFS, Dijkstra, Floyd |
|width="15%"| '''Lab/Hw''' | |width="15%"| '''Lab/Hw''' | ||
|width="25%"| '''Reading''' | |width="25%"| '''Reading''' | ||
Line 548: | Line 548: | ||
::{| class="mw-collapsible " style="width:100%" border="1" | ::{| class="mw-collapsible " style="width:100%" border="1" | ||
|- style="background:#dddddd;" | |- style="background:#dddddd;" | ||
− | |width="60%"| '''Topics''' | + | |width="60%"| '''Topics''' Graphs, Union-Find |
|width="15%"| '''Lab/Hw''' | |width="15%"| '''Lab/Hw''' | ||
|width="25%"| '''Reading''' | |width="25%"| '''Reading''' | ||
Line 570: | Line 570: | ||
---- | ---- | ||
<!--center>[[Image:DancingTurkey.gif]]</center--> | <!--center>[[Image:DancingTurkey.gif]]</center--> | ||
− | <center>[[File:Turkey.gif]]</center> | + | <!--center>[[File:Turkey.gif]]</center--> |
| | | | ||
* [[CSC212 Lab 14 2014| Lab 14]] and [[CSC212 Lab 14 Solution Program 2014| solution program]] | * [[CSC212 Lab 14 2014| Lab 14]] and [[CSC212 Lab 14 Solution Program 2014| solution program]] | ||
Line 582: | Line 582: | ||
---- | ---- | ||
{| style="width:100%" border="0" | {| style="width:100%" border="0" | ||
− | |width="45%"|'''Week 14''' Dec 2, 4 | + | |width="45%"|'''Week 14''' Dec 2, 4. |
|width="20%"| ''' ''' | |width="20%"| ''' ''' | ||
|width="25%"| ''' ''' | |width="25%"| ''' ''' | ||
Line 590: | Line 590: | ||
::{| class="mw-collapsible " style="width:100%" border="1" | ::{| class="mw-collapsible " style="width:100%" border="1" | ||
|- style="background:#dddddd;" | |- style="background:#dddddd;" | ||
− | |width="60%"| '''Topics''' | + | |width="60%"| '''Topics''' GUI & Model-View-Controller |
|width="15%"| '''Lab/Hw''' | |width="15%"| '''Lab/Hw''' | ||
|width="25%"| '''Reading''' | |width="25%"| '''Reading''' | ||
Line 599: | Line 599: | ||
:* Finish Lab 14 (45 minutes) | :* Finish Lab 14 (45 minutes) | ||
:* Graphical User Interface (GUI) | :* Graphical User Interface (GUI) | ||
− | ::* The Model-View-Controller (MVC) | + | ::* The Model-View-Controller pattern (MVC) |
::* Applying MVC to a graph: Analysis of an application | ::* Applying MVC to a graph: Analysis of an application | ||
− | ::* [[Tutorial:_A_Model-View-Controller_in_Processing| Code for an MVC in Processing]] | + | ::* [[Tutorial:_A_Model-View-Controller_in_Processing| Code for an MVC in Processing]], Version 1 |
− | |||
::* ([http://cs.smith.edu/dftwiki/media/IntroToMVC.pdf Class Notes]) | ::* ([http://cs.smith.edu/dftwiki/media/IntroToMVC.pdf Class Notes]) | ||
::* [[Processing Special Effects: Understanding Special Effects in Processing]] | ::* [[Processing Special Effects: Understanding Special Effects in Processing]] | ||
− | + | ---- | |
+ | * '''Thursday, Dec. 4''' | ||
+ | ---- | ||
+ | :* Review of Model-View-Controller. | ||
+ | :* Start & finish [[CSC212 Lab 15 2014| Lab 15]] | ||
+ | :* Start on [[CSC212 Final Project 2014| Final Project]] | ||
| | | | ||
− | * [[CSC212 Lab 15 2014| Lab 15]] | + | * Finish [[CSC212 Lab 14 2014| Lab 14]], 45 min. |
− | * | + | * [[CSC212 Lab 15 2014| Lab 15]] & [[CSC212 Lab 15 Solution 2014| solution MVC]] |
+ | * [[CSC212 Final Project 2014| Final Project]], due 12/19/14 @ 4:00 p.m. | ||
| | | | ||
* [http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller Wikipedia's page on MVCs] | * [http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller Wikipedia's page on MVCs] | ||
Line 627: | Line 632: | ||
::{| class="mw-collapsible " style="width:100%" border="1" | ::{| class="mw-collapsible " style="width:100%" border="1" | ||
|- style="background:#dddddd;" | |- style="background:#dddddd;" | ||
− | |width="60%"| '''Topics''' | + | |width="60%"| '''Topics''' HashMaps & HashSets |
|width="15%"| '''Lab/Hw''' | |width="15%"| '''Lab/Hw''' | ||
|width="25%"| '''Reading''' | |width="25%"| '''Reading''' | ||
|-valign="top" | |-valign="top" | ||
| | | | ||
− | + | * '''Tuesday, 12/9''' | |
+ | ---- | ||
+ | :* HashSets and HashMaps | ||
+ | :* ([http://cs.smith.edu/dftwiki/media/CSC212_IntroToSetsHashing.pdf Class Notes]) | ||
+ | ---- | ||
+ | * '''Thursday, 12/11''' | ||
+ | ---- | ||
+ | :* Huffman Encoding ([[CSC212 Huffman Ecoding in Java|Code]]) | ||
+ | :* ([http://cs.smith.edu/dftwiki/media/CSC212_IntroToHuffmanCompression.pdf Class Notes]) | ||
| | | | ||
− | * Lab | + | * Lab = Work on final project! |
− | * [[ | + | * [[CSC212 Final Exam 2014| Final Exam]] |
| | | | ||
− | * | + | * Chapter 10 in Drozdek on HashSets and HashMaps |
|} | |} | ||
Line 658: | Line 671: | ||
* [http://www.cs.usfca.edu/~galles/visualization/ algorithm visualization page at USFCA] | * [http://www.cs.usfca.edu/~galles/visualization/ algorithm visualization page at USFCA] | ||
<br /> | <br /> | ||
+ | ==Processing and Java== | ||
<br /> | <br /> | ||
+ | * [[Java_Jar_Processing_Command-Line| Running Processing applets created with Processing on the command line]]. | ||
<br /> | <br /> | ||
<br /> | <br /> | ||
Line 666: | Line 681: | ||
** 6 degrees, dot definition with names of stars | ** 6 degrees, dot definition with names of stars | ||
** generate huge 1010100 type adjacency matrix. Ask questions about properties | ** generate huge 1010100 type adjacency matrix. Ask questions about properties | ||
− | ** | + | ** [[CSC212 Final Exam 2014| Final Exam]] |
</onlydft> | </onlydft> | ||
<br /> | <br /> |
Latest revision as of 12:47, 11 December 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 Regular Expressions, Sorting, Graphs 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 DFS, BFS, Dijkstra, Floyd 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 |
Topics Graphs, Union-Find Lab/Hw Reading - Tuesday, 11/25
- A bit of Hollywood culture...
- More graphs!
- Detecting Cycles
- in undirected graphs
- in directed graphs
- Union-Find
- More graphs!
- Thursday, 11/27
- Chapter 8 in Drozdek
Week 14 Dec 2, 4. |
Topics GUI & Model-View-Controller Lab/Hw Reading - Tuesday, Dec. 2
- Finish Lab 14 (45 minutes)
- Graphical User Interface (GUI)
- The Model-View-Controller pattern (MVC)
- Applying MVC to a graph: Analysis of an application
- Code for an MVC in Processing, Version 1
- (Class Notes)
- Processing Special Effects: Understanding Special Effects in Processing
- Thursday, Dec. 4
- Review of Model-View-Controller.
- Start & finish Lab 15
- Start on Final Project
- Finish Lab 14, 45 min.
- Lab 15 & solution MVC
- Final Project, due 12/19/14 @ 4:00 p.m.
Week 15 Dec 9, 11 |
Topics HashMaps & HashSets Lab/Hw Reading - Tuesday, 12/9
- HashSets and HashMaps
- (Class Notes)
- Thursday, 12/11
- Huffman Encoding (Code)
- (Class Notes)
- Lab = Work on final project!
- Final Exam
- Chapter 10 in Drozdek on HashSets and HashMaps
Links and Resources
Java Programs
Java Documentation
Algorithm Visualization
Processing and Java