CMPS 144 and 144L (Computer Science 2 and its lab)
Summer 2020
Syllabus
Zoom Guide
Lab Course
Programming Assignments
Prog. Assg. #1: 3-Color Partitioning
Prog. Assg. #2: KeyPadLock
Prog. Assg. #3: Expression Scanner
Prog. Assg. #4: Taxman
Prog. Assg. #5: Eight Queens Board
Prog. Assg. #6: Solving N-Queens using Recursion
Lecture Notes
Software Quality
Exceptions
Cloning in Java
Loop invariants
Red/Blue Jar of Marbles Game
Introduction to Loop Invariants
Searching an Array: Development of Linear and Binary Search Algorithms
Development of a Counter Class Hierarchy
folder
ArrayLists
Iterators
Code Reuse via Inheritance Case Study: Sorting
Generic Comparator-based Array Sorting
Stacks
All About Stacks
Stack (interface)
Array-based implementation:
StackViaArray
Reference/Pointer-based implementation:
Link1
StackViaLink1
Tester Applications:
ParenthesisMatcher
StackTestApp
ParenNestingTester
Queues
All About Queues
Queue (interface)
Array-based implementation:
QueueViaArray
Reference/Pointer-based implementation:
Link1
QueueViaLink1
Tester Application:
QueueTestApp
Computational Complexity
Gries Online Resource
Big-Oh Examples
Analysis of Selection and Insertion Sort Algorithms
Wikipedia Big O entry
Recursion-related
:
Intro. to Recursion
Recursive Solutions to Array and String Problems: Three Examples
Recursion: How it Works
Recursion: Timing
QuickSort: A Recursive Sorting Algorithm
Lists
Recursive Lists
Notes
Java classes
Positional Lists with Cursors
All About (Positional) Lists
Array-based Implementation of Positional Lists
Trees
Binary Trees
AVL Trees
(optional reading)
HeapSort
Heaps and Priority Queues
Huffman Coding/Compression:
Algorithm
Worked Example
Minimum Spanning Trees
Prim's Algorithm Presented
Prim's Algorithm: Demonstration
Hashing
Java Resources
Java Package Hierarchy
(i.e., links to all packages)
Links to particular packages/classes
java.lang
:
Math
String
java.util
:
Scanner
Iterator
ArrayList
Java SE Download
jGrasp IDE
jGrasp Tutorials
(198-page pdf file) (links to separate chapters exist on web page at URL specified in previous hyperlink).
How Java Works
(how stuff works) (Note that the hyperlinks for downloading JDK, etc., on this page are out of date.)
Java "home page"
Java Tutorials
The Java Tutorials
Object-Oriented Programming Concepts
Language Basics
Classes and Objects
Interfaces and Inheritance
Numbers and Strings
Arrays
Generics
Packages
How to Make Frames (Main Windows)
How to Write Doc Comments for the Javadoc Tool
Using Assertions in Java Technology