CMPS 144 (Computer Science 2)
Fall 2022
Syllabus
CMPS 144L Lab Course
Zoom Guide
Student File Submission/Retrieval Utility
Teaching Assistants
Office Hours
Test/Quiz Information
Final Exam:
Preview
Time:
12:45pm—2:45pm
Day:
Wednesday, December 14
Location:
LSC 125 (regular classroom)
Test #2 (November 21)
Preview
Sample Solutions
Test #1 (October 7)
Preview
Quiz #1
Programming Assignments
Prog. Assg. #1: Time of Day
Solutions:
TimeOfDay
TimeOfDay1224
Prog. Assg. #2: Polynomial
sample solution
Prog. Assg. #3: Outdegree-1 Graphs
Prog. Assg. #4: Subsequence Sum
Sample Solution
Prog. Assg. #5: Taxman
Lecture Notes
Software Quality
Exceptions
Cloning in Java
ArrayLists
Iterators
Development of a Counter Class Hierarchy
folder
Code Reuse via Inheritance and Generics; Case Study: Sorting
Loop invariants
Red/Blue Jar of Marbles Game
Introduction to Loop Invariants
Multiplication
Searching an Array: Development of Linear and Binary Search Algorithms
Stacks
All About Stacks
Stack (interface)
Queues
All About Queues
Queue (interface)
Array-based implementation:
QueueViaArray
Reference/Pointer-based implementation:
Link1
QueueViaLink1
Tester Application:
QueueTestApp
Lists
Positional Lists with Cursors
All About (Positional) Lists
Array-based Implementation of Positional Lists
Recursive Lists
Notes
Java classes
Comparator-based Sorting using Generics
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
RecursionExamples
RecursiveDemo
BinarySearcher
Sorting:
QuickSort: A Recursive Sorting Algorithm
An implementation of quicksort for int[] arrays:
PivotPartitionerOfInt
QuickSorterOfInt
Comparator-based Sorting using Generics
Trees
Binary Trees
AVL Trees
(optional reading)
HeapSort
Heaps and Priority Queues
Huffman Coding/Compression:
Notes on Coding and Data Compression
Morse Code Translator
Algorithm and Example
Another Worked Example
Hashing
Computational Complexity
Big-Oh Examples
Analysis of Selection and Insertion Sort Algorithms
Wikipedia Big O entry
Parallel Computing
Intro to Parallel Algorithms
Thread Demonstration
Parallel Array Summing in Java
Parallel Rank Sort
Creating and Starting Threads in Java
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
Programming with Assertions in Java