Difference between revisions of "CSC212 Schedule 2014"

From dftwiki3
Jump to: navigation, search
(Weekly Schedule)
( )
 
(270 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
----
 
----
  
__TOC__
+
__NOTOC__
 
<br />
 
<br />
 
=Prof and TAs=
 
=Prof and TAs=
Line 12: Line 12:
 
Ford Hall, 356.<br />
 
Ford Hall, 356.<br />
 
Telephone: 3854<br />
 
Telephone: 3854<br />
Office hours: TBA
+
Office hours: M4:30-5:30, T4-5, W1-4.
 
| width="30%" |
 
| width="30%" |
 
&nbsp;
 
&nbsp;
 
|}
 
|}
  
 +
==Teaching Assistants==
 +
* Wen, Xuan,
 +
* Upreti, Angela, Thursday afternoon lab
 +
* Galen Long
 +
* 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 25: Line 30:
  
 
=Weekly Schedule=
 
=Weekly Schedule=
 +
 +
<br /><br />
 +
====&nbsp;====
 +
----
 +
{| style="width:100%" border="0"
 +
|width="45%"|'''Week 1'''  Sept 4
 +
|width="20%"| '''&nbsp;'''
 +
|width="25%"| '''&nbsp;'''
 +
|-
 +
|}
 
<br />
 
<br />
 
+
::{| class="mw-collapsible " style="width:100%" border="1"
<!-- ================================================================== -->
+
|- style="background:#dddddd;"
 
+
|width="60%"| '''Topics''': beowulf2, emacs, [[CSC212 Lab 1 2014 | Lab 1]]
{| class="mw-collapsible " style="width:100%" border="1"
+
|width="15%"| '''Lab/Hw'''
|- style="background:#ffdead;"
 
|width="15%"|'''Week 1'''  
 
|width="60%"| '''Topics'''  
 
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
| Week 1 <br />Sept 4
 
 
|
 
|
*
+
* Syllabus
----
+
* Introduction to Java ([[Media:212_IntroToJava.pdf | class notes]])
*
+
 
 +
* The use of software tools/technology in the movie ''The Social Network''.
 +
<onlysmith><center><videoflash>LNH492Ronmk</videoflash></center></onlysmith>
 +
* Introduction to the tools used this semester:
 +
** beowulf2
 +
** ssh
 +
** emacs
 +
** javac compiler
 +
* Hands on experience with the tools: [[CSC212 Lab 1 2014 | Lab 1]]
 +
|
 +
[[CSC212 Lab 1 2014 | Lab 1]]
 
|
 
|
* Reading
+
* 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()'''.
 
|}
 
|}
<!-- ================================================================== -->
 
  
{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
 
|- style="background:#ffdead;"
+
<br /><br />
|width="15%"|'''Week 2'''  
+
 
|width="60%"| '''Topics'''  
+
====&nbsp;====
 +
----
 +
{| style="width:100%" border="0"
 +
|width="45%"|'''Week 2'''  Sept 9, 11
 +
|width="20%"| '''&nbsp;'''
 +
|width="25%"| '''&nbsp;'''
 +
|-
 +
|}
 +
<br />
 +
::{| class="mw-collapsible " style="width:100%" border="1"
 +
|- style="background:#dddddd;"
 +
|width="60%"| '''Topics''': Java, Classes, Objects, Arrays
 +
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
| Week 2 <br />Sept 9,11
 
 
|
 
|
*
+
* '''Tuesday 9/9'''
 +
----
 +
** 10 minutes in the Linux World
 +
*** ssh to lecturne
 +
*** the '''touch''' command
 +
*** review '''cat''', '''ls''', '''rm'''
 +
*** new: '''mkdir''', '''w'''
 +
----
 +
** Learning Java ([[Media:212_IntroToJava2.pdf|Lecture notes]])
 +
** [http://www.amoonki.com/introtojava/ Galen Long's ''Introduction to Java for Python Programmers'']
 +
** Hands on Java: [[CSC212 Lab 2 2014 | Lab 2]]
 
----
 
----
*
+
* '''Thursday 9/11'''
 +
----
 +
** Good Web resource: [http://stackoverflow.com/questions/8172420/how-to-convert-a-char-to-a-string-in-java Stack Overflow]
 +
** Continue with Hands on Java: [[CSC212 Lab 2 2014 | Lab 2]]
 +
** Review classes &amp; objects: [[CSC212_Lab_1_2014#Part_1:_Python_Review | Lab 1, Part 1]]
 +
----
 +
** Learning Java ([[Media:212_IntroToJava3b.pdf|Lecture notes]])
 +
** [[CSC212 Examples for Lecture 3 | Example Programs]]
 +
----
 +
** Hands on arrays, classes and objects in Java: [[CSC212 Lab 3 2014 | Lab 3]]
 +
 
 
|
 
|
* Reading
+
* [[CSC212 Lab 2 2014 | Lab 2]]
 +
*  [[CSC212 Lab 3 2014 | Lab 3]]
 +
* [[CSC212_Homework_1_2014 | Homework #1]] (due 9/18/14 @ 1:00 p.m.)<br />and [[CSC212 Homework 1 Solution 2014| Solution Programs]]
 +
<center>[[Image:videoLogo.png| 50px | link=http://www.youtube.com/watch?v=RKYSkrpY-T4]]</center>
 +
|
 +
* [http://www.amoonki.com/introtojava/ Galen Long's ''Introduction to Java for Python Programmers'']: Read Sections 1, 2, 3, 4, 5 and 7.
 
|}
 
|}
<!-- ================================================================== -->
 
  
{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
 
|- style="background:#ffdead;"
+
<br /><br />
|width="15%"|'''Week 3'''  
+
 
|width="60%"| '''Topics'''  
+
====&nbsp;====
 +
----
 +
{| style="width:100%" border="0"
 +
|width="45%"|'''Week 3'''  Sept 16, 18
 +
|width="20%"| '''&nbsp;'''
 +
|width="25%"| '''&nbsp;'''
 +
|-
 +
|}
 +
<br />
 +
::{| class="mw-collapsible " style="width:100%" border="1"
 +
|- style="background:#dddddd;"
 +
|width="60%"| '''Topics''': Data Structures, first look at lists, Javadocs
 +
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
| Week 3 <br />Sept 16,18
 
 
|
 
|
*
+
* '''Tuesday, Sept. 16'''
 +
----
 +
:* Office Hours: M4:30-5:30, T4-5, W1-4.
 +
:* Cementing Java Concepts ([[Media:212_IntroToJava4.pdf | class notes]])
 +
:* A first look at Data Structures[[Media:CSC212_Python_3_3_List.pdf|.]]: [[CSC212 Implementing the Python List in Java: Version 1| Mini assignment]]
 +
----
 +
*'''Thursday, Sept. 18'''
 
----
 
----
*
+
[[Image:videoLogo.png| 50px |right| link=http://www.youtube.com/watch?v=XooRQgCFJeo]]
 +
:* Back to  [[CSC212 Implementing the Python List in Java: Version 1| our Python list]] ([[Media:212_IntroToJava5.pdf |class notes]])
 +
::* Review of the code. 
 +
::* Add an '''<tt>index( ''n'' )</tt>''' and a '''<tt>rindex( ''n'' )</tt>''' 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 ([[Media:212_IntroToJava5.pdf | class notes]])
 +
::* Private versus Public
 +
::* Mutators &amp; Accessors
 +
::* '''Java docs'''.  Formatting a program for '''javadoc'''.  Generating the javadoc for a program.
 +
::*
 +
|
 +
* [[CSC212 Lab 3 2014 | Lab #3]]
 +
* [[CSC212 Lab 4 2014 | Lab #4]]
 +
* [[CSC212 Homework 2 2014 | Homework #2]] due Sept. 25, and [[CSC212 Homework 2 Solutions 2014 | solution programs]]
 
|
 
|
* Reading
+
* Chapters 2 to 6 in ''Head First Java.''
 +
* A good reference on Javadoc can be found on [http://www.oracle.com/technetwork/java/javase/documentation/index-137868.html Oracle's Web Site] (Oracle now owns Java).
 
|}
 
|}
<!-- ================================================================== -->
 
  
{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
 
|- style="background:#ffdead;"
+
<br /><br />
|width="15%"|'''Week 4'''  
+
 
|width="60%"| '''Topics'''  
+
====&nbsp;====
 +
----
 +
{| style="width:100%" border="0"
 +
|width="45%"|'''Week 4'''  Sept 23, 25
 +
|width="20%"| '''&nbsp;'''
 +
|width="25%"| '''&nbsp;'''
 +
|-
 +
|}
 +
<br />
 +
::{| class="mw-collapsible" style="width:100%" border="1"
 +
|- style="background:#dddddd;"
 +
|width="60%"| '''Topics''': List of pairs, Exceptions,
 +
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
| Week 4 <br />Sept 23,25
 
 
|
 
|
*
+
* '''Tuesday, Sept. 23'''
 
----
 
----
*
+
:* Lists
 +
:* Shallow Copy, Deep Copy, and References.  Examples.
 +
:* List of pairs
 +
:* Exceptions
 +
:* [[Media:212_IntroToJava6.pdf | Class notes]]
 +
:* [[CSC212 Example of Generic Pair Class |Examples of the Use of a  Generic Pair-Class]]
 +
----
 +
* '''Thursday, Sept. 25'''
 +
----
 +
<!-- :* Scope of variables -->
 +
:* More Exceptions
 +
:* Throwing Exceptions
 +
:* First Data Structure: '''Vectors'''
 +
:* [http://cs.smith.edu/dftwiki/media/IntroToJava7.pdf Class notes]
 +
:* [http://stackoverflow.com/questions/2102499/iterating-through-a-list-in-reverse-order-in-java Traversing a list in reverse order] (from StackOverflow)
 
|
 
|
* Reading
+
* [[CSC212 Lab 5 2014 | Lab #5]]  and [[CSC212 Lab 5 Solutions 2014]]
 +
* [[CSC212 Homework 3 2014 | Homework #3]]
 +
* 2 videos illustrating how to upload files to Moodle
 +
<center>[[Image:videoLogo.png| 50px | link=http://youtu.be/hGd0HD7tOZ4]]</center>
 +
<br />
 +
<center>[[Image:videoLogo.png| 50px | link=http://youtu.be/Rq6-Epm09lA]]</center>
 +
|
 +
* Section 1.5 in Drozdek.
 +
* You may want to start reading ahead Chapter 3 in Drozdek.
 
|}
 
|}
<!-- ================================================================== -->
 
  
{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
 
|- style="background:#ffdead;"
+
<br /><br />
|width="15%"|'''Week 5'''  
+
 
|width="60%"| '''Topics'''  
+
====&nbsp;====
 +
----
 +
{| style="width:100%" border="0"
 +
|width="45%"|'''Week 5'''  Sept 30, Oct 2
 +
|width="20%"| '''&nbsp;'''
 +
|width="25%"| '''&nbsp;'''
 +
|-
 +
|}
 +
<br />
 +
::{| class="mw-collapsible " style="width:100%" border="1"
 +
|- style="background:#dddddd;"
 +
|width="60%"| '''Topics''': Vectors, Time Complexity, Linked Lists, Queues and Stacks
 +
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
| Week 5 <br />Sept 30, Oct 2
 
 
|
 
|
*
 
 
----
 
----
*
+
'''Tuesday, Sept. 30'''
 +
----
 +
* Pep talk about good approaches to programming
 +
* 10 minutes of Linux:
 +
:* Redirection with &lt; and &gt;
 +
* Lists  ([[Media:212_IntroToLists.pdf|Class notes]])
 +
:* Review of Vectors
 +
:* A first approach to understanding time complexity
 +
 
 +
----
 +
'''Thursday, Oct. 2nd'''
 +
----
 +
* 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]
 +
|
 +
* [[CSC212 Lab 6 2014| Lab #6]] and [[CSC212 Lab 6 Solutions 2014| Solution Programs]]
 
|
 
|
* Reading
+
* Chapter 3 in Drozdek
 
|}
 
|}
<!-- ================================================================== -->
 
  
{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
 
|- style="background:#ffdead;"
+
<br /><br />
|width="15%"|'''Week 6'''  
+
 
|width="60%"| '''Topics'''  
+
====&nbsp;====
 +
----
 +
{| style="width:100%" border="0"
 +
|width="45%"|'''Week 6'''  Oct 7, 9
 +
|width="20%"| '''&nbsp;'''
 +
|width="25%"| '''&nbsp;'''
 +
|-
 +
|}
 +
<br />
 +
::{| class="mw-collapsible " style="width:100%" border="1"
 +
|- style="background:#dddddd;"
 +
|width="60%"| '''Topics''': RPN &amp; stacks, Eclipse, Complexity
 +
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
| Week 6 <br />Oct 7, 9
 
 
|
 
|
*
+
'''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])
 
|
 
|
* Reading
+
* [[CSC212 Lab 6 2014| Lab #6]] (continuation from last week) and [[CSC212 Lab 6 Solutions 2014| Solution Programs]]
 +
*  [[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>
 
|}
 
|}
<!-- ================================================================== -->
 
  
{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
<br /><br />
|- style="background:#ffdead;"
+
 
|width="15%"|'''Week 7'''  
+
====&nbsp;====
|width="60%"| '''Topics'''  
+
----
 +
{| style="width:100%" border="0"
 +
|width="45%"|'''Week 7'''  Fall Break, Oct 16=<font color="red">Midterm Exam</font>
 +
|width="20%"| '''&nbsp;'''
 +
|width="25%"| '''&nbsp;'''
 +
|-
 +
|}
 +
<br />
 +
::{| class="mw-collapsible " style="width:100%" border="1"
 +
|- style="background:#dddddd;"
 +
|width="60%"| '''Topics''': Programming the Tcsh, Midterm
 +
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
| Week 7 <br />Oct 16
 
 
|
 
|
* Tuesday: Break
+
* '''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)
 
|
 
|
* Reading
+
*  
 
|}
 
|}
<!-- ================================================================== -->
 
  
{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
<br /><br />
|- style="background:#ffdead;"
+
 
|width="15%"|'''Week 8'''  
+
====&nbsp;====
|width="60%"| '''Topics'''  
+
----
 +
{| style="width:100%" border="0"
 +
|width="45%"|'''Week 8'''  Oct 21, 23
 +
|width="20%"| '''&nbsp;'''
 +
|width="25%"| '''&nbsp;'''
 +
|-
 +
|}
 +
<br />
 +
::{| class="mw-collapsible " style="width:100%" border="1"
 +
|- style="background:#dddddd;"
 +
|width="60%"| '''Topics''': Recursive Algorithms, 2D Maze, N-Queens
 +
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
| Week 8 <br />Oct 21, 23
 
 
|
 
|
*
+
* '''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]])
 +
 
 +
|
 +
* [[CSC212 Lab 9 2014 | Lab #9]]
 +
* [[CSC212 Homework 5 2014| Homework #5]], due Friday Oct. 31st, at 11:55 p.m.
 +
* [[CSC212 Lab 9 Solutions 2014 | Lab 9 Solution Programs]]
 
|
 
|
* Reading
+
* 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]
 
|}
 
|}
<!-- ================================================================== -->
 
  
{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
<br /><br />
|- style="background:#ffdead;"
+
 
|width="15%"|'''Week 9'''  
+
====&nbsp;====
|width="60%"| '''Topics'''  
+
----
 +
{| style="width:100%" border="0"
 +
|width="45%"|'''Week 9'''  Oct 28, 30
 +
|width="20%"| '''&nbsp;'''
 +
|width="25%"| '''&nbsp;'''
 +
|-
 +
|}
 +
<br />
 +
::{| class="mw-collapsible " style="width:100%" border="1"
 +
|- style="background:#dddddd;"
 +
|width="60%"| '''Topics:''' Trees, BSTs, Heaps
 +
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
| Week 9 <br />Oct 28, 30
 
 
|
 
|
*
+
* '''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)]
 +
 
 +
|
 +
*  [[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. and  [[CSC212 Homework 6 Solutions 2014 | Solutions ]]
 
|
 
|
* Reading
+
* Chapter 6 in Drozdek.
 
|}
 
|}
<!-- ================================================================== -->
 
  
{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
<br /><br />
|- style="background:#ffdead;"
+
 
|width="15%"|'''Week 10'''  
+
====&nbsp;====
|width="60%"| '''Topics'''  
+
----
 +
{| style="width:100%" border="0"
 +
|width="45%"|'''Week 10'''  Nov 4 (Otelia Cromwell)
 +
|width="20%"| '''&nbsp;'''
 +
|width="25%"| '''&nbsp;'''
 +
|-
 +
|}
 +
<br />
 +
::{| class="mw-collapsible " style="width:100%" border="1"
 +
|- style="background:#dddddd;"
 +
|width="60%"| '''Topics''': BSTs, Heaps
 +
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
| Week 10 <br />Nov 4
 
 
|
 
|
*
+
*'''Tuesday, Nov 4'''
* Thursday: Othelia Cromwell Day
 
 
----
 
----
*
+
:* 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.
 
|
 
|
* Reading
+
* [[CSC212 Lab 11 Optional 2014| Lab 11]] (Optional lab) and [[CSC212 Lab 11 Solution Program 2014| solution program]]
 +
*  [[CSC212 Homework 7 2014| Homework #7]] and [[CSC212 Homework 7 Solution 2014| Solution Program]]
 +
|
 +
*
 
|}
 
|}
<!-- ================================================================== -->
 
  
{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
<br /><br />
|- style="background:#ffdead;"
+
 
|width="15%"|'''Week 11'''  
+
====&nbsp;====
|width="60%"| '''Topics'''  
+
----
 +
{| style="width:100%" border="0"
 +
|width="45%"|'''Week 11'''  Nov 11, 13
 +
|width="20%"| '''&nbsp;'''
 +
|width="25%"| '''&nbsp;'''
 +
|-
 +
|}
 +
<br />
 +
::{| class="mw-collapsible " style="width:100%" border="1"
 +
|- style="background:#dddddd;"
 +
|width="60%"| '''Topics''' Regular Expressions, Sorting, Graphs
 +
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
| Week 11 <br />Nov 11, 13
 
 
|
 
|
*
+
* '''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]])
 +
|
 +
* [[CSC212 Lab 12 2014|Lab #12]] &amp; [[CSC212 Lab 12 Solution Programs 2014|solution program]]
 +
* [[CSC212 Homework 8 2014 | Homework #8]] due 11/21/14  and [[CSC212 Homework 8 Solution 2014|Solution Programs]]
 
|
 
|
* Reading
+
* Chapter 9 in Drozdek, on Sorting.
 
|}
 
|}
<!-- ================================================================== -->
 
  
{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
<br /><br />
|- style="background:#ffdead;"
+
 
|width="15%"|'''Week 12'''  
+
====&nbsp;====
|width="60%"| '''Topics'''  
+
----
 +
{| style="width:100%" border="0"
 +
|width="45%"|'''Week 12'''  Nov 18, 20
 +
|width="20%"| '''&nbsp;'''
 +
|width="25%"| '''&nbsp;'''
 +
|-
 +
|}
 +
<br />
 +
::{| class="mw-collapsible " style="width:100%" border="1"
 +
|- style="background:#dddddd;"
 +
|width="60%"| '''Topics''' DFS, BFS, Dijkstra, Floyd
 +
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
| Week 12 <br />Nov 18, 20
 
 
|
 
|
*
+
* 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])
 
|
 
|
* Reading
+
* [[CSC212 Lab 13 2014| Lab #13]]
 +
* Some [[CSC212 Lab 13 Solutions 2014 | Solution programs for Lab 13]]
 +
|
 +
* Chapter 8 in Drozdek
 
|}
 
|}
<!-- ================================================================== -->
 
  
{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
<br /><br />
|- style="background:#ffdead;"
+
 
|width="15%"|'''Week 13'''  
+
====&nbsp;====
|width="60%"| '''Topics'''  
+
----
 +
{| style="width:100%" border="0"
 +
|width="45%"|'''Week 13'''  Nov 25, Thanksgiving
 +
|width="20%"| '''&nbsp;'''
 +
|width="25%"| '''&nbsp;'''
 +
|-
 +
|}
 +
<br />
 +
::{| class="mw-collapsible " style="width:100%" border="1"
 +
|- style="background:#dddddd;"
 +
|width="60%"| '''Topics''' Graphs, Union-Find
 +
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
| Week 13 <br />Nov 25
 
 
|
 
|
*
+
* '''Tuesday, 11/25'''
* Thursday: Thanksgiving
+
----
 +
:* 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]]
 
|
 
|
* Reading
+
* Chapter 8 in Drozdek
 
|}
 
|}
<!-- ================================================================== -->
 
  
{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
<br /><br />
|- style="background:#ffdead;"
+
 
|width="15%"|'''Week 14'''  
+
====&nbsp;====
|width="60%"| '''Topics'''  
+
----
 +
{| style="width:100%" border="0"
 +
|width="45%"|'''Week 14'''  Dec 2, 4.
 +
|width="20%"| '''&nbsp;'''
 +
|width="25%"| '''&nbsp;'''
 +
|-
 +
|}
 +
<br />
 +
::{| class="mw-collapsible " style="width:100%" border="1"
 +
|- style="background:#dddddd;"
 +
|width="60%"| '''Topics''' GUI &amp;  Model-View-Controller
 +
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
| Week 14 <br />Dec 2, 4
 
 
|
 
|
*
+
* '''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]]
 
|
 
|
* Reading
+
* Finish [[CSC212 Lab 14 2014| Lab 14]], 45 min.
 +
* [[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]
 
|}
 
|}
<!-- ================================================================== -->
 
  
{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
<br /><br />
|- style="background:#ffdead;"
+
 
|width="15%"|'''Week 15'''  
+
====&nbsp;====
|width="60%"| '''Topics'''  
+
----
 +
{| style="width:100%" border="0"
 +
|width="45%"|'''Week 15'''  Dec 9, 11
 +
|width="20%"| '''&nbsp;'''
 +
|width="25%"| '''&nbsp;'''
 +
|-
 +
|}
 +
<br />
 +
::{| class="mw-collapsible " style="width:100%" border="1"
 +
|- style="background:#dddddd;"
 +
|width="60%"| '''Topics''' HashMaps &amp; HashSets
 +
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
| Week 15 <br />Dec 9, 11
 
 
|
 
|
*
+
* '''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 = Work on final project!
 +
* [[CSC212 Final Exam 2014| Final Exam]]
 
|
 
|
* Reading
+
* Chapter 10 in Drozdek on HashSets and HashMaps
 
|}
 
|}
 +
 +
<br />
 +
<br />
 +
 +
=Links and Resources=
 
<br />
 
<br />
 +
==Java Programs==
 
<br />
 
<br />
 +
* [http://www.mathcs.duq.edu/drozdek/DSinJava/ Some of the program from Drozdek's textbook].
 
<br />
 
<br />
 +
 +
==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'']
 
<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






...