Difference between revisions of "CSC212 Schedule 2014"
(→ ) |
(→ ) |
||
(176 intermediate revisions by the same user not shown) | |||
Line 18: | Line 18: | ||
==Teaching Assistants== | ==Teaching Assistants== | ||
− | * Wen, Xuan, | + | * Wen, Xuan, |
* Upreti, Angela, Thursday afternoon lab | * Upreti, Angela, Thursday afternoon lab | ||
− | * Galen Long | + | * Galen Long |
− | * Pratistha Battharai | + | * Pratistha Battharai |
<br /><br /> | <br /><br /> | ||
To see when and where TAs are available this week, click [http://cs.smith.edu/classwiki/index.php/Computer_Science_TA_hours here]. | To see when and where TAs are available this week, click [http://cs.smith.edu/classwiki/index.php/Computer_Science_TA_hours here]. | ||
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''' | + | |width="60%"| '''Topics''': beowulf2, emacs, [[CSC212 Lab 1 2014 | Lab 1]] |
|width="15%"| '''Lab/Hw''' | |width="15%"| '''Lab/Hw''' | ||
|width="25%"| '''Reading''' | |width="25%"| '''Reading''' | ||
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''' | + | |width="60%"| '''Topics''': Java, Classes, Objects, Arrays |
|width="15%"| '''Lab/Hw''' | |width="15%"| '''Lab/Hw''' | ||
|width="25%"| '''Reading''' | |width="25%"| '''Reading''' | ||
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''' | + | |width="60%"| '''Topics''': Data Structures, first look at lists, Javadocs |
|width="15%"| '''Lab/Hw''' | |width="15%"| '''Lab/Hw''' | ||
|width="25%"| '''Reading''' | |width="25%"| '''Reading''' | ||
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''' | + | |width="60%"| '''Topics''': List of pairs, Exceptions, |
|width="15%"| '''Lab/Hw''' | |width="15%"| '''Lab/Hw''' | ||
|width="25%"| '''Reading''' | |width="25%"| '''Reading''' | ||
Line 223: | Line 223: | ||
::{| 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''': Vectors, Time Complexity, Linked Lists, Queues and Stacks |
|width="15%"| '''Lab/Hw''' | |width="15%"| '''Lab/Hw''' | ||
|width="25%"| '''Reading''' | |width="25%"| '''Reading''' | ||
Line 242: | Line 242: | ||
---- | ---- | ||
* Linked Lists (video of basic operations) | * Linked Lists (video of basic operations) | ||
− | + | <!--center><videoflash></videoflash></center>--> | |
− | <!--center><videoflash></videoflash></center--> | + | [[Image:videoLogo.png|50px|right| link=http://www.youtube.com/watch?v=VlYH5smg2zo]] |
− | |||
− | |||
:* [http://www.cs.usfca.edu/~galles/visualization/QueueLL.html Animation: Linked List] | :* [http://www.cs.usfca.edu/~galles/visualization/QueueLL.html Animation: Linked List] | ||
:* Linked Lists | :* Linked Lists | ||
Line 254: | Line 252: | ||
* [[CSC212 Lab 6 2014| Lab #6]] and [[CSC212 Lab 6 Solutions 2014| Solution Programs]] | * [[CSC212 Lab 6 2014| Lab #6]] and [[CSC212 Lab 6 Solutions 2014| Solution Programs]] | ||
| | | | ||
− | * | + | * Chapter 3 in Drozdek |
|} | |} | ||
Line 271: | Line 269: | ||
::{| 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''': RPN & stacks, Eclipse, Complexity |
|width="15%"| '''Lab/Hw''' | |width="15%"| '''Lab/Hw''' | ||
|width="25%"| '''Reading''' | |width="25%"| '''Reading''' | ||
|-valign="top" | |-valign="top" | ||
| | | | ||
+ | '''Tuesday, Oct 7''' | ||
---- | ---- | ||
− | |||
* Continue [[CSC212 Lab 6 2014| Lab #6]] | * Continue [[CSC212 Lab 6 2014| Lab #6]] | ||
+ | * For this Thursday, please install Eclipse on your computer (first part of [[CSC212_Lab_7_2014| Lab #7]]) | ||
+ | * Evaluating ''RPN expressions'' with '''stacks''' | ||
* For fun: [[CSC212 Linked List in Python| A Linked List in Python]] | * For fun: [[CSC212 Linked List in Python| A Linked List in Python]] | ||
− | * | + | * Programming in Java with Eclipse: [[CSC212 Class Example with Stacks| An example]]. ([[CSC212 Class demo with Eclipse| code written in class]]) |
<!-- | <!-- | ||
[[Image:videoLogo.png| 50px |right| link=http://www.youtube.com/watch?v=e0tGC6ZQdQE]] | [[Image:videoLogo.png| 50px |right| link=http://www.youtube.com/watch?v=e0tGC6ZQdQE]] | ||
--> | --> | ||
+ | ---- | ||
+ | '''Thursday, Oct 9''' | ||
+ | ---- | ||
+ | * [[CSC212 Midterm Exam Prep 2014| Midterm Preparation]] | ||
+ | * Program Analysis & Complexity ([http://cs.smith.edu/dftwiki/media/IntroToBigO.pdf class notes]) | ||
| | | | ||
− | * [[CSC212 Lab 6 2014| Lab #6]] (continuation from last week) | + | * [[CSC212 Lab 6 2014| Lab #6]] (continuation from last week) and [[CSC212 Lab 6 Solutions 2014| Solution Programs]] |
− | * Lab 7 | + | * [[CSC212 Lab 7 2014 | Lab #7]] (Eclipse) |
− | * [[CSC212 Homework 4 2014 | Homework #4]] and [[CSC212 Homework 4 Solutions 2014| Solution Programs]] | + | * [[CSC212 Homework 4 2014 | Homework #4]] and [[CSC212 Homework 4 Solutions 2014| Solution Programs]] |
| | | | ||
− | * | + | * Chapter 2 in Drozdek |
+ | * A video class on algorithmic complexity from CoderIsland.com (first 35 min.):<br /><center>[[Image:videoLogo.png| 50px | link=http://www.youtube.com/watch?v=e0tGC6ZQdQE]]</center> | ||
|} | |} | ||
Line 305: | Line 311: | ||
::{| 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''': Programming the Tcsh, Midterm |
|width="15%"| '''Lab/Hw''' | |width="15%"| '''Lab/Hw''' | ||
|width="25%"| '''Reading''' | |width="25%"| '''Reading''' | ||
|-valign="top" | |-valign="top" | ||
| | | | ||
− | Midterm Exam | + | * '''Thursday''' |
+ | ---- | ||
+ | :* Lecture: Operating System and Console. Redirection, pipes, and loops in bash. ([[Media:CSC212_IntroToTcsh.pdf|Class Notes]]) | ||
+ | :* [[CSC212 Tcsh script for processing DNA files| Tcsh Script]] | ||
+ | :* Lab 8: Using the tcsh shell. | ||
+ | :* '''Midterm Exam''': closed books, closed computers, 1h 50 minutes. | ||
+ | :* [[Solutions to the Midterm 2014 | Solutions to Midterm Problems]] | ||
| | | | ||
− | + | * [[CSC212 Lab 8 2014| Lab #8]] (No submission to Moodle required this week) | |
| | | | ||
* | * | ||
Line 330: | Line 342: | ||
::{| 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''': Recursive Algorithms, 2D Maze, N-Queens |
|width="15%"| '''Lab/Hw''' | |width="15%"| '''Lab/Hw''' | ||
|width="25%"| '''Reading''' | |width="25%"| '''Reading''' | ||
|-valign="top" | |-valign="top" | ||
| | | | ||
− | Recursive Algorithms | + | * '''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 | ||
+ | :* ([[Media:CSC212_IntroToRecursiveFunctions4.pdf|Class Notes]]) | ||
+ | |||
| | | | ||
− | * Lab | + | * [[CSC212 Lab 9 2014 | Lab #9]] |
− | * Homework | + | * [[CSC212 Homework 5 2014| Homework #5]], due Friday Oct. 31st, at 11:55 p.m. |
+ | * [[CSC212 Lab 9 Solutions 2014 | Lab 9 Solution Programs]] | ||
| | | | ||
− | * | + | * Drozdek, Chapter on Recursive Functions. |
+ | * Interesting references for the NQueens problem: | ||
+ | ** [https://sites.google.com/site/nqueensolver/home/algorithm-results sites.google.com, algorithm results] | ||
+ | ** [https://sites.google.com/site/nqueensolver/home/algorithms/2backtracking-algorithm sites.google.com, backtracking algorithms] | ||
|} | |} | ||
Line 356: | Line 388: | ||
::{| 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:''' Trees, BSTs, Heaps |
|width="15%"| '''Lab/Hw''' | |width="15%"| '''Lab/Hw''' | ||
|width="25%"| '''Reading''' | |width="25%"| '''Reading''' | ||
|-valign="top" | |-valign="top" | ||
| | | | ||
− | Introduction to Trees | + | * '''Tuesday Oct. 28 |
+ | ---- | ||
+ | :* A quick look back at the N-Queens problem: [[Comparing_Different_Computers_with_N_Queens_Program | Testing the speed of your new computer]]! | ||
+ | :* Introduction to Trees | ||
+ | :* <onlysmith> [http://cs.smith.edu/dftwiki/media/IntroToTrees_TheBookOfTrees.pdf (Class Notes 1: The Book of Trees)] </onlysmith> | ||
+ | :* [http://cs.smith.edu/dftwiki/media/IntroToBSTTrees2.pdf (Class Notes 2: BSTs)] | ||
+ | :* [[CSC212 IntBST.java: A Non-Generic BST Implementation| IntBST.java]] | ||
+ | :* [[Generating Trees with Graphviz| 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) | ||
+ | :* [http://cs.smith.edu/dftwiki/media/IntroToBSTTrees2.pdf (Class Notes 2: BSTs)] | ||
+ | |||
| | | | ||
− | * Lab | + | * [[CSC212 Lab 10| Lab #10]] and [[CSC212 Lab 10 Solutions 2014| solutions]] |
− | * Homework | + | * [[CSC212 Homework 6 2014 | Homework #6]], due Nov. 7th at 11:55 p.m. and [[CSC212 Homework 6 Solutions 2014 | Solutions ]] |
| | | | ||
− | * | + | * Chapter 6 in Drozdek. |
|} | |} | ||
Line 374: | Line 424: | ||
---- | ---- | ||
{| style="width:100%" border="0" | {| style="width:100%" border="0" | ||
− | |width="45%"|'''Week 10''' Nov 4 ( | + | |width="45%"|'''Week 10''' Nov 4 (Otelia Cromwell) |
|width="20%"| ''' ''' | |width="20%"| ''' ''' | ||
|width="25%"| ''' ''' | |width="25%"| ''' ''' | ||
Line 382: | Line 432: | ||
::{| 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''': BSTs, Heaps |
|width="15%"| '''Lab/Hw''' | |width="15%"| '''Lab/Hw''' | ||
|width="25%"| '''Reading''' | |width="25%"| '''Reading''' | ||
|-valign="top" | |-valign="top" | ||
| | | | ||
− | + | *'''Tuesday, Nov 4''' | |
+ | ---- | ||
+ | :* Complexity of BST operations | ||
+ | :* Self-Balancing Trees | ||
+ | :* Heaps | ||
+ | :* ([http://cs.smith.edu/dftwiki/media/IntroToAVLTreesAndHeaps.pdf Class Notes]) | ||
+ | |||
+ | ---- | ||
+ | * '''Thursday, Nov 6''': <font color="magenta">Otelia Cromwell Day</font> | ||
+ | :* No class | ||
+ | :* No lab, but you can do an optional lab on your own... See Lab 11 for details. | ||
| | | | ||
− | * Lab | + | * [[CSC212 Lab 11 Optional 2014| Lab 11]] (Optional lab) and [[CSC212 Lab 11 Solution Program 2014| solution program]] |
− | * Homework 7 | + | * [[CSC212 Homework 7 2014| Homework #7]] and [[CSC212 Homework 7 Solution 2014| Solution Program]] |
| | | | ||
* | * | ||
Line 408: | Line 468: | ||
::{| 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''' Regular Expressions, Sorting, Graphs |
|width="15%"| '''Lab/Hw''' | |width="15%"| '''Lab/Hw''' | ||
|width="25%"| '''Reading''' | |width="25%"| '''Reading''' | ||
|-valign="top" | |-valign="top" | ||
| | | | ||
− | Introduction to Graphs | + | * '''Tuesday, Nov. 11''' |
+ | ---- | ||
+ | :* Side step: regular expressions (a brief look) [[CSC212 Splitting text into words while stripping punctuation marks| Splitting Text into Words]] | ||
+ | :* Sorting | ||
+ | ::* InsertionSort | ||
+ | ::* SelectionSort | ||
+ | ::* [[Quicksort.java | QuickSort]] | ||
+ | ::* HeapSort | ||
+ | :* ([http://cs.smith.edu/dftwiki/media/CSC212introToSorting.pdf Class Notes]) | ||
+ | ---- | ||
+ | * '''Thursday, Nov. 13''' | ||
+ | ---- | ||
+ | :* More on Sorting ([http://cs.smith.edu/dftwiki/media/CSC212introToSorting.pdf Class Notes]) | ||
+ | :* Introduction to Graphs | ||
+ | ::* ([http://cs.smith.edu/dftwiki/media/CSC212_AGraphZoo.pdf Class Notes on Graphs, No 1]) | ||
+ | ::* ([[Media:CSC212_IntroToGraphs.pdf|Class Notes on Graphs, No 2]]) | ||
| | | | ||
− | * Lab | + | * [[CSC212 Lab 12 2014|Lab #12]] & [[CSC212 Lab 12 Solution Programs 2014|solution program]] |
− | * Homework | + | * [[CSC212 Homework 8 2014 | Homework #8]] due 11/21/14 and [[CSC212 Homework 8 Solution 2014|Solution Programs]] |
| | | | ||
− | * | + | * Chapter 9 in Drozdek, on Sorting. |
|} | |} | ||
Line 434: | 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''' | ||
|-valign="top" | |-valign="top" | ||
| | | | ||
− | + | * Tuesday | |
+ | ---- | ||
+ | :* Graphs, Continued | ||
+ | :** DFS | ||
+ | :** First 2 problems of [[CSC212 Lab 13 2014| Lab #13]] | ||
+ | :* ([http://cs.smith.edu/dftwiki/media/CSC212_IntroToGraphs.pdf Class Notes]) | ||
+ | ---- | ||
+ | * Thursday | ||
+ | ---- | ||
+ | :** BFS | ||
+ | :** Dijkstra's Algorithm | ||
+ | :** Floyd Algorithm | ||
+ | :* Remaining problems of [[CSC212 Lab 13 2014| Lab #13]] | ||
+ | :* ([http://cs.smith.edu/dftwiki/media/CSC212_IntroToGraphs.pdf Class Notes]) | ||
| | | | ||
− | * Lab | + | * [[CSC212 Lab 13 2014| Lab #13]] |
− | * | + | * Some [[CSC212 Lab 13 Solutions 2014 | Solution programs for Lab 13]] |
| | | | ||
− | * | + | * Chapter 8 in Drozdek |
|} | |} | ||
Line 460: | 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''' | ||
|-valign="top" | |-valign="top" | ||
| | | | ||
− | + | * '''Tuesday, 11/25''' | |
+ | ---- | ||
+ | :* A bit of Hollywood culture... | ||
+ | <center><videoflash>nc8crnqKEns</videoflash></center> | ||
+ | :* More graphs!<br /> | ||
+ | :* Detecting Cycles | ||
+ | ::* in undirected graphs | ||
+ | ::* in directed graphs | ||
+ | :* Union-Find | ||
+ | ::* Union-Find in java ([[CSC212 Union Find in Java|Version 1]]) | ||
+ | ::* Fast Union-Find in java ([[CSC212_Union_Find_in_Java#Version_2:_Fast|Version 2]]) | ||
+ | ::* Faster Union-Find in java ([[CSC212_Union_Find_in_Java#Version_3:_Faster|Version 3]]) | ||
+ | :* ([http://cs.smith.edu/dftwiki/media/CSC212_IntroToGraph2.pdf Class Notes]) | ||
+ | ---- | ||
+ | * '''Thursday, 11/27''' | ||
+ | ---- | ||
+ | <!--center>[[Image:DancingTurkey.gif]]</center--> | ||
+ | <!--center>[[File:Turkey.gif]]</center--> | ||
| | | | ||
− | + | * [[CSC212 Lab 14 2014| Lab 14]] and [[CSC212 Lab 14 Solution Program 2014| solution program]] | |
| | | | ||
− | * | + | * Chapter 8 in Drozdek |
|} | |} | ||
Line 477: | 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 485: | 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''' | ||
|-valign="top" | |-valign="top" | ||
| | | | ||
− | GUI | + | * '''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 | ||
+ | ::* [[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]) | ||
+ | ::* [[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]] | ||
| | | | ||
− | * Lab | + | * 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://www.tutorialspoint.com/design_pattern/mvc_pattern.htm A page with some coverage of MVCs in Java] | ||
|} | |} | ||
Line 511: | 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 529: | Line 658: | ||
=Links and Resources= | =Links and Resources= | ||
<br /> | <br /> | ||
+ | ==Java Programs== | ||
+ | <br /> | ||
+ | * [http://www.mathcs.duq.edu/drozdek/DSinJava/ Some of the program from Drozdek's textbook]. | ||
+ | <br /> | ||
+ | |||
==Java Documentation== | ==Java Documentation== | ||
<br /> | <br /> | ||
* [http://www.cs.smith.edu/classwiki/index.php/Main_Page#Spring_2014 Galen Long's ''Introduction to Java for Python Programmers''] | * [http://www.cs.smith.edu/classwiki/index.php/Main_Page#Spring_2014 Galen Long's ''Introduction to Java for Python Programmers''] | ||
− | |||
<br /> | <br /> | ||
+ | ==Algorithm Visualization== | ||
<br /> | <br /> | ||
+ | * [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 /> | ||
<br /> | <br /> | ||
+ | <onlydft> | ||
+ | * Ideas final project | ||
+ | ** 6 degrees, dot definition with names of stars | ||
+ | ** generate huge 1010100 type adjacency matrix. Ask questions about properties | ||
+ | ** [[CSC212 Final Exam 2014| Final Exam]] | ||
+ | </onlydft> | ||
<br /> | <br /> | ||
<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