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 Open 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.

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