Difference between revisions of "CSC212 Schedule 2014"
(→Weekly Schedule) |
(→ ) |
||
(270 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
---- | ---- | ||
− | + | __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: | + | Office hours: M4:30-5:30, T4-5, W1-4. |
| width="30%" | | | width="30%" | | ||
| | ||
|} | |} | ||
+ | ==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 /> | ||
+ | ==== ==== | ||
+ | ---- | ||
+ | {| style="width:100%" border="0" | ||
+ | |width="45%"|'''Week 1''' Sept 4 | ||
+ | |width="20%"| ''' ''' | ||
+ | |width="25%"| ''' ''' | ||
+ | |- | ||
+ | |} | ||
<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:# | ||
− | |width=" | ||
− | |width=" | ||
|width="25%"| '''Reading''' | |width="25%"| '''Reading''' | ||
|-valign="top" | |-valign="top" | ||
− | |||
| | | | ||
− | * | + | * 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]] | ||
| | | | ||
− | * | + | * 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 | + | |
− | |- style="background:# | + | <br /><br /> |
− | |width=" | + | |
− | |width=" | + | ==== ==== |
+ | ---- | ||
+ | {| style="width:100%" border="0" | ||
+ | |width="45%"|'''Week 2''' Sept 9, 11 | ||
+ | |width="20%"| ''' ''' | ||
+ | |width="25%"| ''' ''' | ||
+ | |- | ||
+ | |} | ||
+ | <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" | ||
− | |||
| | | | ||
− | * | + | * '''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 & 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]] | ||
+ | |||
| | | | ||
− | * | + | * [[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 | + | |
− | |- style="background:# | + | <br /><br /> |
− | |width=" | + | |
− | |width=" | + | ==== ==== |
+ | ---- | ||
+ | {| style="width:100%" border="0" | ||
+ | |width="45%"|'''Week 3''' Sept 16, 18 | ||
+ | |width="20%"| ''' ''' | ||
+ | |width="25%"| ''' ''' | ||
+ | |- | ||
+ | |} | ||
+ | <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" | ||
− | |||
| | | | ||
− | * | + | * '''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 & 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]] | ||
| | | | ||
− | * | + | * 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 | + | |
− | |- style="background:# | + | <br /><br /> |
− | |width=" | + | |
− | |width=" | + | ==== ==== |
+ | ---- | ||
+ | {| style="width:100%" border="0" | ||
+ | |width="45%"|'''Week 4''' Sept 23, 25 | ||
+ | |width="20%"| ''' ''' | ||
+ | |width="25%"| ''' ''' | ||
+ | |- | ||
+ | |} | ||
+ | <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" | ||
− | |||
| | | | ||
− | * | + | * '''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) | ||
| | | | ||
− | * | + | * [[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 | + | |
− | |- style="background:# | + | <br /><br /> |
− | |width=" | + | |
− | |width=" | + | ==== ==== |
+ | ---- | ||
+ | {| style="width:100%" border="0" | ||
+ | |width="45%"|'''Week 5''' Sept 30, Oct 2 | ||
+ | |width="20%"| ''' ''' | ||
+ | |width="25%"| ''' ''' | ||
+ | |- | ||
+ | |} | ||
+ | <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" | ||
− | |||
| | | | ||
− | |||
---- | ---- | ||
− | * | + | '''Tuesday, Sept. 30''' |
+ | ---- | ||
+ | * Pep talk about good approaches to programming | ||
+ | * 10 minutes of Linux: | ||
+ | :* Redirection with < and > | ||
+ | * 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]] | ||
| | | | ||
− | * | + | * Chapter 3 in Drozdek |
|} | |} | ||
− | |||
− | {| class="mw-collapsible | + | |
− | |- style="background:# | + | <br /><br /> |
− | |width=" | + | |
− | |width=" | + | ==== ==== |
+ | ---- | ||
+ | {| style="width:100%" border="0" | ||
+ | |width="45%"|'''Week 6''' Oct 7, 9 | ||
+ | |width="20%"| ''' ''' | ||
+ | |width="25%"| ''' ''' | ||
+ | |- | ||
+ | |} | ||
+ | <br /> | ||
+ | ::{| class="mw-collapsible " style="width:100%" border="1" | ||
+ | |- style="background:#dddddd;" | ||
+ | |width="60%"| '''Topics''': RPN & stacks, Eclipse, Complexity | ||
+ | |width="15%"| '''Lab/Hw''' | ||
|width="25%"| '''Reading''' | |width="25%"| '''Reading''' | ||
|-valign="top" | |-valign="top" | ||
− | |||
| | | | ||
− | * | + | '''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]) | ||
| | | | ||
− | * | + | * [[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 | + | <br /><br /> |
− | |- style="background:# | + | |
− | |width=" | + | ==== ==== |
− | |width=" | + | ---- |
+ | {| style="width:100%" border="0" | ||
+ | |width="45%"|'''Week 7''' Fall Break, Oct 16=<font color="red">Midterm Exam</font> | ||
+ | |width="20%"| ''' ''' | ||
+ | |width="25%"| ''' ''' | ||
+ | |- | ||
+ | |} | ||
+ | <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" | ||
− | |||
| | | | ||
− | * | + | * '''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) | ||
| | | | ||
− | * | + | * |
|} | |} | ||
− | |||
− | {| class="mw-collapsible | + | <br /><br /> |
− | |- style="background:# | + | |
− | |width=" | + | ==== ==== |
− | |width=" | + | ---- |
+ | {| style="width:100%" border="0" | ||
+ | |width="45%"|'''Week 8''' Oct 21, 23 | ||
+ | |width="20%"| ''' ''' | ||
+ | |width="25%"| ''' ''' | ||
+ | |- | ||
+ | |} | ||
+ | <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" | ||
− | |||
| | | | ||
− | * | + | * '''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]] | ||
| | | | ||
− | * | + | * 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 | + | <br /><br /> |
− | |- style="background:# | + | |
− | |width=" | + | ==== ==== |
− | |width=" | + | ---- |
+ | {| style="width:100%" border="0" | ||
+ | |width="45%"|'''Week 9''' Oct 28, 30 | ||
+ | |width="20%"| ''' ''' | ||
+ | |width="25%"| ''' ''' | ||
+ | |- | ||
+ | |} | ||
+ | <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" | ||
− | |||
| | | | ||
− | * | + | * '''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 ]] | ||
| | | | ||
− | * | + | * Chapter 6 in Drozdek. |
|} | |} | ||
− | |||
− | {| class="mw-collapsible | + | <br /><br /> |
− | |- style="background:# | + | |
− | |width=" | + | ==== ==== |
− | |width=" | + | ---- |
+ | {| style="width:100%" border="0" | ||
+ | |width="45%"|'''Week 10''' Nov 4 (Otelia Cromwell) | ||
+ | |width="20%"| ''' ''' | ||
+ | |width="25%"| ''' ''' | ||
+ | |- | ||
+ | |} | ||
+ | <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" | ||
− | |||
| | | | ||
− | * | + | *'''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. | ||
| | | | ||
− | * | + | * [[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 | + | <br /><br /> |
− | |- style="background:# | + | |
− | |width=" | + | ==== ==== |
− | |width=" | + | ---- |
+ | {| style="width:100%" border="0" | ||
+ | |width="45%"|'''Week 11''' Nov 11, 13 | ||
+ | |width="20%"| ''' ''' | ||
+ | |width="25%"| ''' ''' | ||
+ | |- | ||
+ | |} | ||
+ | <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" | ||
− | |||
| | | | ||
− | * | + | * '''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]] & [[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]] | ||
| | | | ||
− | * | + | * Chapter 9 in Drozdek, on Sorting. |
|} | |} | ||
− | |||
− | {| class="mw-collapsible | + | <br /><br /> |
− | |- style="background:# | + | |
− | |width=" | + | ==== ==== |
− | |width=" | + | ---- |
+ | {| style="width:100%" border="0" | ||
+ | |width="45%"|'''Week 12''' Nov 18, 20 | ||
+ | |width="20%"| ''' ''' | ||
+ | |width="25%"| ''' ''' | ||
+ | |- | ||
+ | |} | ||
+ | <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" | ||
− | |||
| | | | ||
− | * | + | * 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]) | ||
| | | | ||
− | * | + | * [[CSC212 Lab 13 2014| Lab #13]] |
+ | * Some [[CSC212 Lab 13 Solutions 2014 | Solution programs for Lab 13]] | ||
+ | | | ||
+ | * Chapter 8 in Drozdek | ||
|} | |} | ||
− | |||
− | {| class="mw-collapsible | + | <br /><br /> |
− | |- style="background:# | + | |
− | |width=" | + | ==== ==== |
− | |width=" | + | ---- |
+ | {| style="width:100%" border="0" | ||
+ | |width="45%"|'''Week 13''' Nov 25, Thanksgiving | ||
+ | |width="20%"| ''' ''' | ||
+ | |width="25%"| ''' ''' | ||
+ | |- | ||
+ | |} | ||
+ | <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" | ||
− | |||
| | | | ||
− | * | + | * '''Tuesday, 11/25''' |
− | * Thursday | + | ---- |
+ | :* 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 |
|} | |} | ||
− | |||
− | {| class="mw-collapsible | + | <br /><br /> |
− | |- style="background:# | + | |
− | |width=" | + | ==== ==== |
− | |width=" | + | ---- |
+ | {| style="width:100%" border="0" | ||
+ | |width="45%"|'''Week 14''' Dec 2, 4. | ||
+ | |width="20%"| ''' ''' | ||
+ | |width="25%"| ''' ''' | ||
+ | |- | ||
+ | |} | ||
+ | <br /> | ||
+ | ::{| class="mw-collapsible " style="width:100%" border="1" | ||
+ | |- style="background:#dddddd;" | ||
+ | |width="60%"| '''Topics''' GUI & Model-View-Controller | ||
+ | |width="15%"| '''Lab/Hw''' | ||
|width="25%"| '''Reading''' | |width="25%"| '''Reading''' | ||
|-valign="top" | |-valign="top" | ||
− | |||
| | | | ||
− | * | + | * '''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]] | ||
| | | | ||
− | * | + | * 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] | ||
|} | |} | ||
− | |||
− | {| class="mw-collapsible | + | <br /><br /> |
− | |- style="background:# | + | |
− | |width=" | + | ==== ==== |
− | |width=" | + | ---- |
+ | {| style="width:100%" border="0" | ||
+ | |width="45%"|'''Week 15''' Dec 9, 11 | ||
+ | |width="20%"| ''' ''' | ||
+ | |width="25%"| ''' ''' | ||
+ | |- | ||
+ | |} | ||
+ | <br /> | ||
+ | ::{| class="mw-collapsible " style="width:100%" border="1" | ||
+ | |- style="background:#dddddd;" | ||
+ | |width="60%"| '''Topics''' HashMaps & HashSets | ||
+ | |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 = Work on final project! | ||
+ | * [[CSC212 Final Exam 2014| Final Exam]] | ||
| | | | ||
− | * | + | * 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
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