Schedule

MCS-178, Spring 2024

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

2/12Ch 11, HKKCh 11.5 of HKK
Lecture 4 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
2/13--Project 1-
2/14-Catch up
Lecture 5 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
2/15--Project 1-
2/16Ch 1Ch 1.1
Lecture 6 available on Moodle
- HelloWorld.java - your very first Java program
UseArgument.java - Java program that takes in user arguments

2/19Ch 1Ch 1.2
Lecture 7 available on Moodle
- IntOps.java - Java program illustrating integer operations
flip.java - Java program Simulating a fair coin flip
2/20--Project 1
If you finished Project 1, move onto Project 2
-
2/21Ch 1Project 1 due (at the start of class)
Ch 1.2 - 1.3
Lecture 8 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
n_coinflips.java - Java program Simulating multiple person, each doing n coin flips
2/22--Project 2-
2/23Ch 1Ch 1.3
Lecture 9 available on Moodle
- 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

2/26Ch 1Ch 1.4
Lecture 10 available on Moodle
- bubble_sort.java - Java program filling an array full of random integers, then do a bubble sort.
2/27Ch 1-Project 2-
2/28Ch 1Ch 1.5
Lecture 11 available on Moodle
--
2/29--Project 2
3/1Ch 2Ch 2.1
Lecture 12 available on Moodle
- Matrix.java - Java program implementing Matrix operations.
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

3/4Ch 2Ch 2.2
Lecture 13 available on Moodle
--
3/5--Project 2
If you finished Project 2, move onto Project 3
-
3/6Ch 2Project 2 due (at the start of class)
Ch 2.3
Lecture 14 available on Moodle
- 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.
Factorial.java - A class implementing the recursive version of factorial.
3/7--Project 3-
3/8-Test 1 review
Test 1 preparation slides available on Moodle
- Topics covered for written test # 1

3/11-Written Test 1 --
3/12--Programing Test 1
3/13Ch 2Ch 2.3
Lecture 15 available on Moodle
- binarySearchTemplate.java - the template for binary search, for in-class exercise.
binarySearch.java - the solution for binary search.
3/14--Project 3-
3/15Ch 4 Ch 4.1
Lecture 16 available on Moodle
- insertionSort.java - the solution for insertion sort.
recursiveInsertionSort_solution.java - the solution for the recursive version insertion sort.

3/18Ch 4Ch 4.1 & 9.6 notes
Lecture 16 available on Moodle
- quickSort.java - quick sort.
3/19--Project 3
3/20notes9.6 notes
No notes for lecture 18, just class codes
--
3/21--Project 3 -
3/22-Catch up
Lecture 19 available on Moodle
- Fibonacci.java - Recursively solves the Fibonacci sequence, then solves it using Top Down DP (Memoization) and Bottom Up DP

3/25-Spring Break--
3/26-Spring Break--
3/27-Spring Break--
3/28-Spring Break--
3/29-Spring Break--

4/1notesProject 3 due (at the start of class)
Dynamic programing vs Memoization
Lecture 20 available on Moodle
- Fibonacci.java - Recursively solves the Fibonacci sequence, then solves it using Top Down DP (Memoization) and Bottom Up DP
  • 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)
  • The Leftovers
  • Choose.java - Recursively solves binomial coefficient, then solves it using Top Down DP (Memoization) and Bottom Up DP
  • 4/2--Project 4 -
    4/3notesDynamic programing vs Memoization
    Lecture 21 available on Moodle
    --
    4/4--Project 4 -
    4/5notesLCS
    Lecture 22 available on Moodle
    Test 2 topics and practice questions are available on Moodle
    --

    4/8notesLCS
    Same lecture notes as Lecture 22
    --
    4/9--Project 4
    4/10Ch 3 & 4Project 4 due (at the start of class)
    Ch 3.1
    Lecture 24 available on Moodle
    - Charge.java - The instance class implement a Charge
    ChargeClient.java - The client class using Charge
    4/11--Project 5
    4/12-Catch up--

    4/15-Catch up- -
    4/16-Advising Day (no class)--
    4/17Ch 3 Ch 3.2
    Lecture 25's note is the same as Lecture 24's
    --
    4/18--Project 5
    4/19Ch 4Ch 4.3
    Lecture 26 available on Moodle
    - IntegerStack.java - Class implementing integer stack

    4/22-Test 2 review
    Test 2 review slides are available on Moodle
    --
    4/23--Programing Test 2-
    4/24- Written Test 2--
    4/25--Project 5 -
    4/26notesMethod Overloading & Interfaces--

    4/29notesInheritance & Polymorphism--
    4/30--Project 5 -
    5/1notesProject 5 due (at the start of class)
    Java Generics
    --
    5/2--Project 6 -
    5/3notesUML and design --

    5/6notesMore Generics--
    5/7--Project 6 -
    5/8-Going through Project 7 --
    5/9--Project 6 -
    5/10-Catch up--

    5/13-Going through (mini) project 7--
    5/14--Project 6 -
    5/15-Project 6 due (at the start of class)
    Final Exam Review
    Evaluations
    Final exam practice questions (for both written and programming) are available on Moodle
    --
    5/16-Project 7 due (by midnight)
    (no late submissions allowed)
    Project 7 -