Difference between revisions of "CSC212 Schedule 2014"

From dftwiki3
Jump to: navigation, search
( )
( )
 
(75 intermediate revisions by the same user not shown)
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''': 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 mw-collapsed" style="width:100%" border="1"
+
::{| 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  mw-collapsed" style="width:100%" border="1"
+
::{| 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 mw-collapsed" style="width:100%" border="1"
+
::{| 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 mw-collapsed" style="width:100%" border="1"
+
::{| 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 mw-collapsed" style="width:100%" border="1"
+
::{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
 
|width="60%"| '''Topics''': RPN &amp; stacks, Eclipse, Complexity
 
|width="60%"| '''Topics''': RPN &amp; stacks, Eclipse, Complexity
Line 309: Line 309:
 
|}
 
|}
 
<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''': Programming the Tcsh, Midterm
 
|width="60%"| '''Topics''': Programming the Tcsh, Midterm
Line 322: Line 322:
 
:* Lab 8: Using the tcsh shell.
 
:* Lab 8: Using the tcsh shell.
 
:* '''Midterm Exam''': closed books, closed computers, 1h 50 minutes.
 
:* '''Midterm Exam''': closed books, closed computers, 1h 50 minutes.
:* <!-- [[Solutions to the Midterm 2014 | Solutions to Midterm Problems]]-->
+
:* [[Solutions to the Midterm 2014 | Solutions to Midterm Problems]]  
 
|
 
|
 
* [[CSC212 Lab 8 2014| Lab #8]] (No submission to Moodle required this week)
 
* [[CSC212 Lab 8 2014| Lab #8]] (No submission to Moodle required this week)
Line 340: Line 340:
 
|}
 
|}
 
<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''': Recursive Algorithms, 2D Maze, N-Queens
 
|width="60%"| '''Topics''': Recursive Algorithms, 2D Maze, N-Queens
Line 386: Line 386:
 
|}
 
|}
 
<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:''' Trees, BSTs, Heaps
 
|width="60%"| '''Topics:''' Trees, BSTs, Heaps
Line 414: Line 414:
 
|
 
|
 
*  [[CSC212 Lab 10| Lab #10]]  and [[CSC212 Lab 10 Solutions 2014| solutions]]  
 
*  [[CSC212 Lab 10| Lab #10]]  and [[CSC212 Lab 10 Solutions 2014| solutions]]  
* [[CSC212 Homework 6 2014 | Homework #6]], due Nov. 7th at 11:55 p.m.
+
* [[CSC212 Homework 6 2014 | Homework #6]], due Nov. 7th at 11:55 p.m. and  [[CSC212 Homework 6 Solutions 2014 | Solutions ]]  
<!-- and  [[CSC212 Homework 6 Solutions 2014 | Solutions ]]-->
 
 
|
 
|
 
* Chapter 6 in Drozdek.  
 
* Chapter 6 in Drozdek.  
Line 450: Line 449:
 
:* No lab, but you can do an optional lab on your own... See Lab 11 for details.
 
:* No lab, but you can do an optional lab on your own... See Lab 11 for details.
 
|
 
|
*  [[CSC212 Lab 11 Optional 2014| Lab 11]] (Optional lab)
+
*  [[CSC212 Lab 11 Optional 2014| Lab 11]] (Optional lab) and [[CSC212 Lab 11 Solution Program 2014| solution program]]
*  [[CSC212 Homework 7 2014| Homework #7]]
+
*  [[CSC212 Homework 7 2014| Homework #7]] and [[CSC212 Homework 7 Solution 2014| Solution Program]]
<!-- and [[CSC212 Homework 7 Solution 2014| Solution Program]]-->
 
 
|
 
|
 
*  
 
*  
Line 470: 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'''  
Line 492: Line 490:
 
::* ([[Media:CSC212_IntroToGraphs.pdf|Class Notes on Graphs, No 2]])
 
::* ([[Media:CSC212_IntroToGraphs.pdf|Class Notes on Graphs, No 2]])
 
|
 
|
* [[CSC212 Lab 12 2014|Lab #12]]
+
* [[CSC212 Lab 12 2014|Lab #12]] &amp; [[CSC212 Lab 12 Solution Programs 2014|solution program]]
* [[CSC212 Homework 8 2014 | Homework *8]]
+
* [[CSC212 Homework 8 2014 | Homework #8]] due 11/21/14  and [[CSC212 Homework 8 Solution 2014|Solution Programs]]
 
|
 
|
 
* Chapter 9 in Drozdek, on Sorting.
 
* Chapter 9 in Drozdek, on Sorting.
Line 511: 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 13
+
* [[CSC212 Lab 13 2014| Lab #13]]
* Homework 9
+
* Some [[CSC212 Lab 13 Solutions 2014 | Solution programs for Lab 13]]
 
|
 
|
*  
+
* Chapter 8 in Drozdek
 
|}
 
|}
  
Line 537: 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 554: 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 562: 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 14
+
* 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 588: 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 15
+
* Lab = Work on final project!
* [[CSC 212 Final Exam 2014| Final Exam]]
+
* [[CSC212 Final Exam 2014| Final Exam]]
 
|
 
|
*  
+
* Chapter 10 in Drozdek on HashSets and HashMaps
 
|}
 
|}
  
Line 619: 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 />
 
<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






...