[Home] [Syllabus] [Labs] [Assignments] [Resources] [CSci 2101 Wiki page]
Note that the date for the midterm exams are set and will not change. If you have a conflict with this date, please let me know right away.
Reading sources (see the 2101 home page for complete references):
You are welcome to use other textbooks and/or online materials. If such materials made a substantial contribution to your homework assignment, please acknowledge the source and the exact contribution. If you plan to use extra sources for an in-class or a take-home exam, please get my OK first. Otherwise such a use would be considered cheating.
Problem sets are due in the beginning of the class on the due
date. If a problem set is submitted at (or before) the next class meeting
after the due date, it is graded out of 3/4 credit. If it is submitted any
time after the next meeting (until the last class meeting), then it is graded
out of 1/2 credit.
Problem sets submitted more than 2 minutes after beginning of the class
are considered late.
A take-home exam must be submitted on time, otherwise it will not be graded.
Monday | Wednesday |
Thursday Lab |
Friday |
---|---|---|---|
Week 1: August 30 -- September 3 | |||
Course Structure. Intro to Data Structures Intro to Java Reading: Core Ch. 1, 2. |
Java: memory model, data types, variables Reading: Core, from Ch. 3: upto strings, skip bitwise operators, enumerated types; read Input/Output. Problem set 1: Stacks, Queues; Java variables, conditionals, loops. Due Wedn., Sept. 15th |
Java computing environment. Java variables. |
Stacks, queues Reading: CLRS 10.1 |
Week 2: September 6 -- September 10 | |||
Labor Day Holiday -- no class |
Java: conditionals, loops. Objects and methods. Reading: Ch. 3 strings, control flow (upto Arrays); examples on resources page. |
Conditionals, loops. Using objects and methods. |
Solving problems using stacks and queues. |
Week 3: September 13 -- September 17 | |||
Linked lists. Algorithm analysis (arrays, different types of linked lists) Reading: CLRS 10.2 |
Writing simple Java methods.static methods.Java arrays. Reading: Core Ch. 3 Arrays, Ch. 4 Static Fields and methods. Problem set 1 due Problem set 2: Linked lists, priority queues, heaps; Java methods, arrays. Due Wedn., Sept 29th |
Simple Java methods, arrays. | Heaps, Priority queues. |
Week 4: September 20 -- September 24 | |||
Trees, Binary Search Trees. |
Designing, implementing, and using a class in Java. Reading: Core Ch. 4 (except Packages) |
Designing, implementing, and using a class in Java. | Binary Search Trees and heaps. |
Week 5: September 27 -- October 1 | |||
Algorithms for sorting and searching. |
Mutable/immutable objects. Arrays of primitive types and of objects. Problem set 2 due Problem set 3: sorting and searching; designing classes. Due Fri., Oct 15th |
Reading data from a keyboard. Java classes String,
StringBuffer . Searching and sorting arrays of objects.
|
Algorithm efficiency, big-Oh notation (review). Comparison of sorting algorithms. |
Week 6: October 4 -- October 8 | |||
Midterm exam 1 (in-class) (40 minutes). Take-home exam 1 given out. |
Inheritance, type casting. | Inheritance. | Sorting and searching. |
Week 7: October 11 -- October 15 | |||
Sorting and searching. Take-home exam 1 is due |
Abstract classes, interfaces. Generic programming. |
Writing generic sorting routines. | AVL Trees, 2-3 Trees, AA Trees. Problem set 3 due. |
Week 8: October 18 -- October 22 | |||
Fall break -- no class. |
AVL Trees, 2-3 Trees, AA Trees. Problem set 4: inheritance; generic sorting routines. Due Wedn., Nov. 3rd | Working with Java libraries and APIs. | AVL Trees, 2-3 Trees, AA Trees. |
Week 9: October 25 -- October 29 | |||
AVL Trees, 2-3 Trees, AA Trees. |
Handling Java exceptions, working with files. |
Handling Java exceptions, working with files. | Hash tables |
Week 10: November 1 -- November 5 | |||
Hash tables |
Multi-dimensional arrays. Problem set 4 due. Problem set 5: trees (AVL, 2-3, AA), hash tables. Due Friday, Nov. 12th |
Multi-dimensional arrays. | Graph traversals. |
Week 11: November 8 -- November 12 | |||
Graphs |
Graphs implementation. | Graphs implementation. |
Graph algorithms. Problem set 5 due. |
Week 12: November 15 -- November 20 | |||
Minimum spanning trees. Exam review. |
Midterm 2 (in-class) 40 minutes. Take-home exam 2 given out. |
Java applets, graphics. |
Minimum spanning trees. |
Week 13: November 22 -- November 26 | |||
Shortest path. |
Shortest path. Take-home exam 2 due Problem set 6: graphs, solving problems using data structures. Due Wedn., Dec 15th |
Thanksgiving -- no lab |
Thanksgiving -- no class |
Week 14: November 29 -- December 3 | |||
Solving problems using graphs. |
Networks (introduction). | Java questions (please send me your questions beforehand!) | Solving problems using data structures. |
Week 15: December 6 -- December 10 | |||
Solving problems using data structures. |
A brief introduction to Java interfaces (swing), events. | Swing, Java events. |
Solving problems using data structures. |
Week 16: December 13 -- December 15 | |||
Catch up and discussion. |
Last day of classes Review and wrap up. Problem set 6 due |
||
Final exam: 8:30-10:30am Mon., Dec 20 |