Difference between revisions of "CSC212 Schedule 2014"

From dftwiki3
Jump to: navigation, search
( )
 
(196 intermediate revisions by the same user not shown)
Line 18: Line 18:
  
 
==Teaching Assistants==
 
==Teaching Assistants==
* Wen, Xuan, Available Saturday 9/13, 7-11 p.m., FH342 [[Image:animatedNew2.gif|right|100px]]
+
* Wen, Xuan,  
 
* Upreti, Angela, Thursday afternoon lab  
 
* Upreti, Angela, Thursday afternoon lab  
* Galen Long, Wed 7 - 9 and Thurs 7 - 9, FH342
+
* Galen Long
* Pratistha Battharai, TBA
+
* 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 mw-collapsed" 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''': 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 mw-collapsed" 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''': 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  mw-collapsed" 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''': Data Structures, first look at lists, Javadocs
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
Line 155: Line 155:
 
* [[CSC212 Lab 3 2014 | Lab #3]]
 
* [[CSC212 Lab 3 2014 | Lab #3]]
 
* [[CSC212 Lab 4 2014 | Lab #4]]
 
* [[CSC212 Lab 4 2014 | Lab #4]]
* [[CSC212 Homework 2 2014 | Homework #2]] and [[CSC212 Homework 2 Solutions 2014 | solution programs]]
+
* [[CSC212 Homework 2 2014 | Homework #2]] due Sept. 25, and [[CSC212 Homework 2 Solutions 2014 | solution programs]]
 
|
 
|
 
* Chapters 2 to 6 in ''Head First Java.''
 
* Chapters 2 to 6 in ''Head First Java.''
Line 175: Line 175:
 
::{| 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''': 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 231: Line 231:
 
'''Tuesday, Sept. 30'''
 
'''Tuesday, Sept. 30'''
 
----
 
----
 +
* Pep talk about good approaches to programming
 
* 10 minutes of Linux:
 
* 10 minutes of Linux:
 
:* Redirection with &lt; and &gt;
 
:* Redirection with &lt; and &gt;
Line 236: Line 237:
 
:* Review of Vectors
 
:* Review of Vectors
 
:* A first approach to understanding time complexity
 
:* A first approach to understanding time complexity
:* Linked Lists
+
 
:* Doubly-Linked Lists
 
 
----
 
----
 
'''Thursday, Oct. 2nd'''
 
'''Thursday, Oct. 2nd'''
 
----
 
----
* Queues & stacks
+
* Linked Lists (video of basic operations)
 +
<!--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]
 +
:* Linked Lists
 +
:* Doubly-Linked Lists
 +
* Queues & stacks  
 +
* [http://cs.smith.edu/dftwiki/media/IntroToStacksAndQueues.pdf Class notes]
 
|
 
|
* Lab 5
+
* [[CSC212 Lab 6 2014| Lab #6]] and [[CSC212 Lab 6 Solutions 2014| Solution Programs]]
* Homework 4
 
 
|
 
|
*  
+
* Chapter 3 in Drozdek
 
|}
 
|}
  
Line 263: 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 &amp; stacks, Eclipse, Complexity
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
Program Analysis & Complexity
+
'''Tuesday, Oct 7'''
 +
----
 +
* 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]]
 +
* 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]]
 +
-->
 +
----
 +
'''Thursday, Oct 9'''
 +
----
 +
* [[CSC212 Midterm Exam Prep 2014| Midterm Preparation]]
 +
* Program Analysis & Complexity   ([http://cs.smith.edu/dftwiki/media/IntroToBigO.pdf class notes])
 
|
 
|
* Lab 6
+
* [[CSC212 Lab 6 2014| Lab #6]] (continuation from last week) and [[CSC212 Lab 6 Solutions 2014| Solution Programs]]
* Homework 5
+
*  [[CSC212 Lab 7 2014 | Lab #7]] (Eclipse)
 +
* [[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 289: 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]]
 
|
 
|
&nbsp;
+
* [[CSC212 Lab 8 2014| Lab #8]] (No submission to Moodle required this week)
 
|
 
|
 
*  
 
*  
Line 314: 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 7
+
* [[CSC212 Lab 9 2014 | Lab #9]]
* Homework 6
+
* [[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 340: 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 8
+
* [[CSC212 Lab 10| Lab #10]]  and [[CSC212 Lab 10 Solutions 2014| solutions]]
* Homework 7
+
* [[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 358: Line 424:
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 10'''  Nov 4 (Othelia Cromwell)
+
|width="45%"|'''Week 10'''  Nov 4 (Otelia Cromwell)
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 366: 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"
 
|
 
|
Binary Search Trees
+
*'''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 9
+
* [[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 392: 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 10
+
* [[CSC212 Lab 12 2014|Lab #12]] &amp; [[CSC212 Lab 12 Solution Programs 2014|solution program]]
* Homework 9
+
* [[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 418: 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"
 
|
 
|
Introduction to Sets;
+
* 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 11
+
* [[CSC212 Lab 13 2014| Lab #13]]
* Homework 10
+
* Some [[CSC212 Lab 13 Solutions 2014 | Solution programs for Lab 13]]
 
|
 
|
*  
+
* Chapter 8 in Drozdek
 
|}
 
|}
  
Line 444: 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"
 
|
 
|
GUI Design
+
* '''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-->
 
|
 
|
&nbsp;
+
* [[CSC212 Lab 14 2014| Lab 14]] and [[CSC212 Lab 14 Solution Program 2014| solution program]]
 
|
 
|
*  
+
* Chapter 8 in Drozdek
 
|}
 
|}
  
Line 461: 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%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 469: 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 &amp;  Model-View-Controller
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
GUI Design
+
* '''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 &amp; finish [[CSC212 Lab 15 2014| Lab 15]]
 +
:* Start on [[CSC212 Final Project 2014| Final Project]]
 
|
 
|
* Lab 12
+
* Finish [[CSC212 Lab 14 2014| Lab 14]], 45 min.
* Homework 10
+
* [[CSC212 Lab 15 2014| Lab 15]] &amp; [[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 495: 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 &amp; HashSets
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
TBA
+
* '''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 13
+
* Lab = Work on final project!
* Homework 11
+
* [[CSC212 Final Exam 2014| Final Exam]]
 
|
 
|
*  
+
* Chapter 10 in Drozdek on HashSets and HashMaps
 
|}
 
|}
  
Line 513: 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

TA Hours | WHITE





Prof and TAs

Dominique Thiébaut email
Dept. Computer Science
Ford Hall, 356.
Telephone: 3854
Office hours: M4:30-5:30, T4-5, W1-4.

 

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
  • 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

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


  • Thursday 9/11



    • Hands on arrays, classes and objects in Java: Lab 3
VideoLogo.png




 


Week 3 Sept 16, 18    


Topics: Data Structures, first look at lists, Javadocs Lab/Hw Reading
  • Tuesday, Sept. 16


  • Thursday, Sept. 18

VideoLogo.png
  • 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.
  • Private versus Public
  • Mutators & Accessors
  • Java docs. Formatting a program for javadoc. Generating the javadoc for a program.
  • 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


  • Thursday, Sept. 25

VideoLogo.png


VideoLogo.png
  • 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 >
  • Review of Vectors
  • A first approach to understanding time complexity

Thursday, Oct. 2nd


  • Linked Lists (video of basic operations)
VideoLogo.png
  • Chapter 3 in Drozdek




 


Week 6 Oct 7, 9    


Topics: RPN & stacks, Eclipse, Complexity Lab/Hw Reading

Tuesday, Oct 7



Thursday, Oct 9


  • Chapter 2 in Drozdek
  • A video class on algorithmic complexity from CoderIsland.com (first 35 min.):
    VideoLogo.png



 


Week 7 Fall Break, Oct 16=Midterm Exam    


Topics: Programming the Tcsh, Midterm Lab/Hw Reading
  • Thursday

  • 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



 


Week 9 Oct 28, 30    


Topics: Trees, BSTs, Heaps Lab/Hw Reading
  • Tuesday Oct. 28


  • 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)
  • 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.



 


Week 11 Nov 11, 13    


Topics Regular Expressions, Sorting, Graphs Lab/Hw Reading
  • Tuesday, Nov. 11


  • Thursday, Nov. 13

  • Chapter 9 in Drozdek, on Sorting.



 


Week 12 Nov 18, 20    


Topics DFS, BFS, Dijkstra, Floyd Lab/Hw Reading
  • Tuesday


  • Thursday

  • 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

  • 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)

  • Thursday, Dec. 4



 


Week 15 Dec 9, 11    


Topics HashMaps & HashSets Lab/Hw Reading
  • Tuesday, 12/9


  • Thursday, 12/11

  • Chapter 10 in Drozdek on HashSets and HashMaps



Links and Resources


Java Programs



Java Documentation



Algorithm Visualization



Processing and Java






...