[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 submitted electronically (by e-mail) and are usually due at 8pm on the due date. Please see the Assignments page for guidelines and specific due dates.
A take-home exam must be submitted on time, otherwise it will not be graded.
Monday | Wednesday |
Thursday Lab |
Friday |
---|---|---|---|
Week 1: January 18 -- January 21 | |||
Martin Luther King Jr's day -- no class |
Course Structure. Intro to Data Structures Intro to Java: memory model, data types, variables Reading: Core Ch. 1, 2, 3 (upto string). |
Java computing environment. Java variables. |
Stacks, queues Reading: CLRS 10.1 |
Week 2: January 24 -- January 28 | |||
Working with stacks and queues. Problem set 1: Stacks, Queues; Java variables, conditionals, loops. Due Monday, Feb. 7th. |
Java: objects and methods, conditionals, loops. Reading: Core, from Ch. 3: upto arrays, skip bitwise operators, enumerated types |
Conditionals, loops. Using objects and methods. |
Solving problems using stacks and queues. |
Week 3: January 31 -- February 4 | |||
Solving problems using stacks and queues. |
Java arrays. Reading: Core Ch. 3 Arrays |
Simple Java methods, arrays. |
Linked lists. |
Week 4: February 7 -- February 11 | |||
Linked lists, priority queues Problem set 1 due Problem set 2: Linked lists, priority queues, heaps; Java methods, arrays. Due Mon., Feb. 21st Reading: Core Ch. 4, upto Packages (p. 135): you may skip GregorianCalendar example (pp. 102-108) if you find it confusing; skip Static fields and methods (pp. 117 - 120), overloading (p. 127) Calling Another Constructor (p. 131), initialization blocks (pp. 131-134), and 'finalize' method (p. 135) CLRS: Ch. 6.5 Priority Queues, p. 138 only! |
Designing, implementing, and using a class in Java, writing simple
methods Static Fields and methods. |
Designing, implementing, and using a class in Java. | Linked list implementation |
Week 5: February 14 -- February 18 | |||
Priority queue Reading: CLRS Ch. 6.5 |
Linked lists. |
Priority queue (implementation) |
|
Week 6: February 21 -- February 25 | |||
Problem set 2 due Review for the midterm. |
Midterm exam 1 (in-class) (40 minutes). Take-home exam 1 given out. |
TBA |
Priority heap implementation. |
Week 7: February 28 -- March 4 | |||
Binary Search Trees.
|
String, StringBuffer classes. Take-home exam 1 is due Problem set 3: Binary Search Trees. Due Wedn., March 23rd. |
String, StringBuffer classes. |
Binary search tree implementation. |
Week 8: March 7 -- March 11 | |||
Inheritance, type casting. |
Recursion in java. Abstract classes, interfaces. Generic programming. |
Recursion. | Sorting and searching. |
|
|||
Week 9: March 21 -- March 25 | |||
Sorting and searching. |
More on generic programming. Problem set 3 due. Problem set 4: sorting and searching, inheritance. Due Wedn. April 6th. |
Java Inheritance. | AVL Trees. |
Week 10: March 28 -- April 1 | |||
AVL Trees. |
Java exceptions. |
Java exceptions. |
Hash tables |
Week 11: April 4 -- April 8 | |||
Hash tables |
Multi-dimensional arrays.
Problem set 4 due. |
Multi-dimensional arrays. |
Exam review. |
Week 12: April 11 -- April 15 | |||
Midterm 2 (in-class) 40 minutes. Take-home exam 2 given out. |
Graphs (introduction) |
TBA |
Graph implementations. |
Week 13: April 18 -- April 22 | |||
Graph traversals and other
graph algorithms. Take-home exam 2 due Problem set 5: AVL trees, graphs, hash tables. Due Wedn., May 4th |
Graph algorithms. Shortest path. |
TBA |
Minimum spanning trees |
Week 14: April 25 -- April 29 | |||
Minimum spanning trees |
File input/output. | File input/output. | Networks (introduction). |
Week 15: May 2 -- May 6 | |||
Solving problems using data structures. |
A brief introduction to Java graphical interfaces (swing), events. | Swing, Java events. |
Review for the final and wrap up. |
Final exam: 11 am - 1 pm Friday May 13 |