Schedule

MCS-178, Fall 2015

Date Reading Topic LabExamples
9/8--In lab: set up
running SLIME
Ch 11.1-11.3 of HKK
Tutorial on running SLIME is available on Moodle
9/9Ch 11, HKKIntro
Ch 11.1-11.3 of HKK
Lecture notes available on Moodle
add.asm - this program reads in 2 integers, adds them up
9/10--Project 1
9/11Ch 11, HKKCh 11.3 - 1.4 of HKK
Lecture notes available on Moodle
- smaller.asm - this program reads in 2 integers, then prints the smaller number

9/14Ch 11, HKKCh 11.4 of HKK
Lecture notes available on Moodle
- sum1ton.asm - this program reads in a positive integer n and prints out the sum
range.asm - read in two numbers then print all integers between the two numbers inclusive
fact.asm - computes the factorial from 1 up to a user input number, the iterative version
9/15--Project 1
9/16Ch 11, HKKCh 11.5 of HKK
Lecture notes available on Moodle
- rfact.asm - computes the factorial from 1 up to a user input number, the recursive version
sumDigits.asm - sums the digits of a number, the recursive version
writeDigitsStart.asm - writes each digital of a number, version 1
writeDigits.asm - writes each digital of a number, final version
9/17--Project 1
9/18Ch 11, HKKCatchup
Lecture notes available on Moodle
-

9/21Ch 1Ch 1.1
Lecture notes available on Moodle
- HelloWorld.java - your very first Java program
UseArgument.java - Java program that takes in user arguments
IntOps.java - Java program illustrating integer operations
9/22--Project 1
(if you finished Project 1, move onto Project 2)
9/23Ch 1Project 1 due (at the start of class)
Ch 1.2
Lecture notes available on Moodle
- flip.java - Java program Simulating a fair coin flip
9/24--Project 2
9/25Ch 1Ch 1.2 - 1.3
Lecture notes available on Moodle
- coinflips.java - Java program Simulating n coin flips and calculates the fraction of heads
TenHellos.java - Java program printing out "hello" 10 times

9/28Ch 1Ch 1.3
Lecture notes available on Moodle
- n_coinflips.java - Java program Simulating multiple person, each doing n coin flips
PrintDate.java - Java program printing days, month, year, demonstrating switch statements
Prime.java - Java program taking a command-line argument N and prints out true if N is prime, and false otherwise
Prime.java - Prime.java rewritten in different loop constructs
9/29--Project 2
9/30Ch 1Ch 1.4
Lecture notes available on Moodle
- bubble_sort.java - Java program filling an array full of random integers, then do a bubble sort.
10/1--Project 2
10/2Ch 1Ch 1.5
Lecture notes available on Moodle
- Matrix.java - Java program implementing Matrix operations.

10/5Ch 2Project 2 due (at the start of class)
Ch 2.1
Lecture notes available on Moodle
Average.java - Java program reads in a sequence of real numbers, and computes their average; demonstrating StdIn
BouncingBall.java - Java program implementing a 2-d bouncing ball, demonstrating StdDraw
Primes.java - Java program printing all primes up to the number given as the 0th command argument.
bubbleSort_b.java - Java program implementing a bubble sort, using static methods
10/6--No lab (Nobel Conference)
10/7-No class (Nobel Conference)
-
10/8--Project 3
10/9-Test 1 review
Test 1 preparation slides available on Moodle
-

10/12-Written Test 1
Topics covered for written test # 1
-
10/13--Programing Test 1
10/14Ch 2Ch 2.2
Lecture notes available on Moodle
-
10/15--Project 3
10/16Ch 2Ch 2.3
Lecture notes available on Moodle
- Sierpinski.java - Play chaos game on triangle to produce Sierpinski triangle
Carpet.java - Draws the Sierpinski Carpet using the Chaos Game Method
CheckerBoard.java - Write a program that takes a command-line argument N and plots an N-by-N checkeroard with red and black squares.
Factorial.java - The "hello world" of recursion; recursively compute N factorial

10/19Ch 2Ch 2.3
Lecture notes available on Moodle
- BinarySearch.java - Implements a binary search
10/20--Project 3
10/21Ch 4Ch 4.1
Lecture notes available on Moodle
- TowerOfHanoi.java - Solves the "tower of Hanoi" puzzle
MergeSort.java - Recursive version of merge sort
Carpet.java - Draw a Sierpinski carpet
10/22--Project 3
10/23Ch 4 & notesCh 4.1 & 9.6 notes -

10/26-Fall break-
10/27-Fall break-
10/28notesProject 3 due (at the start of class)
9.6 notes
Lecture notes available on Moodle
- Fibonacci.java - Recursively solves the Fibonacci sequence, then solves it using Top Down DP (Memoization) and Bottom Up DP
10/29--Project 4
10/30notes Dynamic programing vs Memoization
Lecture notes available on Moodle
-

11/2notes Dynamic programing vs Memoization
Lecture notes available on Moodle
- Choose.java - Recursively solves binomial coefficient, then solves it using Top Down DP (Memoization) and Bottom Up DP
11/3--Project 4
11/4notes LCS
Lecture notes available on Moodle
- LCS.java - Solves Longest Common Substring problem using dynamic programming (Max's code, from video 1)
LCS.java (version 2) - Solves Longest Common Substring problem using dynamic programming (the book's code, also from Max's video 2)
Video 1 - Video # 1 of Max live-coding the LCS problem
Video 2 - Video # 2 of Max live-coding the LCS problem (fine-tuning version to a version similar to that in the text book)
Choose.java - Recursively solves binomial coefficient, then solves it using Top down DP (Memoization) and Bottom Up DP
11/5--Project 4
11/6notesLCS
Lecture notes available on Moodle
-

11/9Ch 3 & 4Project 4 due (at the start of class)
Ch 3.1
Lecture notes available on Moodle
-
11/10--Project 5
11/11Ch 3Ch 3.2
Lecture notes available on Moodle
-
11/12--Project 5
11/13Ch 4Ch 4.3
Lecture notes available on Moodle
- IntegerStack.java - Class implementing integer stack

11/16notesMethod Overloading & Interfaces
Lecture notes available on Moodle
-
11/17--Project 5
11/18notesInheritance & Polymorphism
Lecture notes available on Moodle
- Employee.java - Super class implementing employee
HourlyEmployee.java - Sub class implementing hourly employee
SalariedEmployee.java - Sub class implementing salaried employee
Date.java - class implementing date
IntegerArrayStack.java - A derived class of the IntegerStack class
11/19--Project 5
11/20-Test 2 review-

11/23notesProject 5 due (at the start of class)
Written Test 2
-
11/24--Programing Test 2
11/25-No class (Thanksgiving break)-
11/26--No lab (Thanksgiving break)
11/27-No class (Thanksgiving break)-

11/30notesJava Generics
Lecture notes available on Moodle
- Drawable.java - Interface drawable
Circle.java - Circle class extends interface drawable
Square.java - Square class extends interface drawable
TestDraw.java - Draw using Circle class and Square class
12/1--Project 6
12/2notesSwing, UML and Source Code
Land of GACK
Lecture notes available on Moodle
- ArrayListExample.java - The ArrayList example
Movies.java - My IMDB example
12/3--Project 6
12/4notesWork on Project 6 -

12/7-Work on Project 6 -
12/8--Project 7
12/9notesProject 6 due (at the start of class)
Work on Project 7
-
12/10--Project 7
12/11Ch 11Work on Project 7 -

12/14-Work on Project 7
Review/Evaluations
Final review sheet available on Moodle
12/15-Project 7 due by midnight (no late project will be accepted!) Project 7