CS 261: Computer Science II

Syllabus

You can download the syllabus here. The syllabus includes information on grading, course goals, and policies I will use in teaching this course.

Text

We will be using my own textbook for this class: Java: An Online Introduction.

As this book is still a draft, it will be supplemented by various readings from Wikipedia and Oracle’s Java documentation. Please keep up!

Also, if you still have your book from CS I, it is worth hanging onto it for other background information.

Homework

Specific assignments are given below. Please note that homeworks are very important, and make up a very large portion of your grade. If you fall behind, you will likely do poorly on the exams as well. Homework should follow the specifications given here.

Homeworks can be turned in here.

Exam Grades

The exam distributions will be placed here, after they are graded.

Other Resources

Additional resources will be placed here.

Class Schedule

This is a tentative schedule for the class. I may change it depending on how the class progresses. We will start by reviewing object-oriented principles, then move into sorting, and will finish out with complicated data structures.

Lab Lab Date Homework HW Due Date Files Readings
1 Enums & Coins Jan. 28 MakeChange.java JOI Chapter 9
2 Card Object Jan. 27 CardSet Object Feb. 4 GraphicsWindow.java (docs)
cards.png
Inheritance Tutorial
3 Bounded Set Feb. 3 MyArrayList Feb. 9 JOI Chapter 11
4 Pig Game Feb. 10 Pig AI Feb. 16 Pig.java
PigPlayer.java (docs)
HumanPigPlayer.java (docs)
ComputerPigPlayer.java (docs)
Wikipedia Pig Game
JOI Chapter 14
JOI Appendix C
Midterm 1: Tuesday, February 17
5 Bubble & Selection Sorts Feb. 24 Heapsort March 1 Sorter.java (docs) Introduction to Sorting
Wikipedia Heapsort
6 Insertion Sort March 3 Mergesort March 8 Wikipedia Mergesort
7 Graphing Sorts March 10 Quicksort March 23 BlankGraph.java Wikipedia Quicksort
Spring Break!
8 Binomial Coefficient March 24 Trig Functions March 29 Wikipedia Memoization
Midterm 2: Tuesday, March 31
9 Linked Lists, Stacks & Queues April 7 Doubly Linked List April 12 Queue.java (docs)
Stack.java (docs)
Wikipedia Linked Lists
Wikipedia Doubly Linked Lists
10 Word Checker April 14 Binary Search Tree April 19 english.lex Wikipedia Binary Search Trees
11 Saving Objects April 21 Tries April 26 Wikipedia Tries
12 Unordered Tables April 28 Hash Tables April 29 menu.tsv
animals.tsv
Wikipedia Hash Tables
Final Exam: Wednesday, May 6, 12:00