Office Hours:

M Th 10:30 AM -12:00 PM and by appointment

Course Description:

This is the second course introduction to problem analysis, algorithm de- sign, and the implementation of algorithms in an object-oriented high-level language. It is intended for computer science majors, computer engineers, and other students with a significant interest in programming and computing. The Java programming language is used in this course. Topics that we will cover include Object-oriented design; inheritance, interfaces, polymorphism; problem analysis; recursion; abstract data types; dynamically linked structures; linear data struc- tures: stacks, queues, lists, vectors; sorting and searching; event-driven programming; hashing; non-linear data structures; graphs; and trees.

Course Schedule

DateClass SummaryExamples and CodeHomework
1/12/2015 Went over the syllabus and course expectations. Introductions to the challenges of computer science. Read Chapters 1 -6 in Java Programing from the ground up.
1/14/2015 Began our review of the JAVA language. System.out.println, classes, compilers Read Chapters 1 -6 in Java Programing from the ground up.
1/15/2015 Continued reviewing, primitive types, strings. Read Chapters 1 -6 in Java Programing from the ground up.
1/21/2015 Finished review of Strings, conditionals. Example programs reviewed. StIves example . Movie example Read Chapters 6-12 in Java Programing from the ground up.
1/22/2015 Project 1 and Lab 1 introduced. Lab 1 Due 1/28 . Project 1 Due 2/6 . Rose image for project
1/26/2015 Reviewed objects and classes. Student class example . Short story example
1/28/2015 Began our discussion on the need for ArrayLists. Read 2.1-2.4 in Object oriented data structures using Java
1/29/2015 Lab 2 introduced. Lab 2 Due 2/5
2/2/2015 Array Lists introduced, puzzle day.
2/4/2015 Array Lists explained, Computational Complexity introduced. Linked Lists introduced. Array List java example Array List Driver class Read 2.4-2.7, 1.6-1.7
2/5/2015 Lab 3 introduced. Lab 3 Reminder that project 1 is due tomorrow at midnight. Project 1 More Info
2/9/2015 Linked Lists explained including ListNodes and Singly Linked List classes. Reference equality visited.
2/11/2015 Four types of equality and how to achieve them overriding the equals method. Inheritance with TailLists.
2/12/2015 Quiz 1 Project 2 Supporting files for Project 2 Mp3Player.java List.java
2/16/2015 Inheritance, super, and dynamic typing. Fix this
2/18/2015 Inheritance, Abstract classes, Interfaces. compareTo, java.util.Arrays and sorting. Example of interfaces and sorting Review for Midterm, send questions by Monday
2/25/2015 Midterm
3/9/2015 Generics, Access Modifiers, Packages Packages.zip example Read 3.1-3.4 and 16.1-16.3
3/11/2015 Stacks and Exceptions
3/12/2015 Lab5 Lab 5 Lab5.java skeleton City.java (supporting code) TravelPlan.java (supporting code)
3/16/2015 Stacks and beginning of recursion Array Stack Example Read 3.4-3.5, 4.1-4.3
3/18/2015 Recursion Project 3 introduced. Project 3 template code
3/19/2015 Lab 6 Lab 6 Lab 6 dictionary
3/23/2015 Queue ADT including fixed front vs floating front design Read 5.1-5.3
3/25/2015 Binary Search and general lists Example of binary search Read 6.6
3/26/2015 Quiz 2
3/30/2015 General Lists Example of general lists Read 6.1-6.4
4/1/2015 Finish Lists, doubly linked lists Read 7.2
4/8/2015 Trees, traversals, and size, add to a binary search tree Read 8.1-8.3
4/9/2015 Lab 7 Lab 7 assigned Supporting files for lab 7
4/13/2015 Binary Search Trees, recursive size, add Read 8.4-8.6
4/15/2015 Finish Binary Search Trees, Graphs adjacency matrix, lists Read 9.3-9.4
4/16/2015 Lab 8 Lab 8 assigned Supporting files for lab 8
4/20/2015 Hash tables, hashing functions, collision, linear probing, chaining, buckets Read 10.6
4/22/2015 Hash tables, hashing functions, collision, linear probing, chaining, buckets Hash Tables example
4/28/2015 Final Review Final Question 1 Final Question 1 Solution Final Question 2 Final Question 2 Solution Final Question 3 Final Question 3 Solution Final Question 4 Final Question 4 Solution Final Question 5 Final Question 5 Solution Final Question 6 Final Question 6 Solution Final Question 7 Final Question 7 Solution