CSC 210 Data Structures and Algorithms
Winter 2018

Course Description

CSC 210 Data Structures and Algorithms(3.00)
Structures, techniques, and algorithms for managing data. Topics include variations of linked lists; binary trees, B- trees, and other types of search trees; advanced searching and sorting algorithms; graphs and graph algorithms; and analysis of algorithms. Programming required.

Instructor Accessibility

My office is in Wentz SC 150. Winter term office hours are Mondays and Wednesdays 4-6 pm, and Fridays 10:30-11:50. You can stop by in person, or call my office at 630-637-5174. If I am not at the office and you need immediate attention, you can call me at home at 630-759-2110. You can email me at

I can also see you by appointment.

Course Textbook

We will use the Gaddis-Muganda text book (GM), which you should already have from CSC 161:
Gaddis and Muganda: Starting out with Java: From Control Structures through Data Structures, 3rd Edition.
In later parts of course, we will refer to the book:

Course Outline

This weekly schedule is tentative and is subject to change as the term progresses.

Chapter Course Topics Reference
1 Function Interfaces and Lambda Expressions Chapter 19.1
2 Comparable and Comparator Interfaces, Equality of objects, Sorting via Library classes
3 Analysis of algorithms and Big O notation Chapter 17.3
4 Recursion, binary search, quicksort, and mergesort Chapter 16
5 Java Collection Classes: Maps, Sets, and Lists. Chapter 19.2-19.5
6 Java's Stream API, Linked Lists, Stacks and Queues. Chapter 19.6
7 Graphs and Graph Algorithms: DFS, BFS, Backtracking, Shortest Paths. Morin: Chapter 12
8 Binary Trees, Binary Search Trees, Heaps, HeapSort. Chapter 22
9 Red Black Trees, Skip lists Morin: Chapters 4 and 9
10 Selected topics, Course Review.

Schedule of In-class Quizzes and Tests

Class Event Date Percent Weight
Quiz 1 Friday Week 2 5%
Quiz 2 Friday Week 3 5%
Midterm Test 1 Friday Week 5 12.5%
Midterm Test 2 Wednesday Week 8 12.5%
Final Exam Week 11 25%

In addition to the tests, there will be a number of homework/ programming assignments. These will account for 40% of the course grade. They will be designed to help you understand course concepts and prepare you for the in-class quizzes and tests. Some of the tests and quizzes may involve writing short programs based on the concepts covered in lectures and in the programming assignments.

Project Submission

All submissions must be done by uploading the project to your space on the K drive.

Late Policy

All assignments and projects should be turned in by midnight on the day due. A 10% penalty will be assessed on projects turned in late, but in general this penalty will not be levied if the assignment is turned in before I have completed grading the batch of assignments to which it belongs. No assignment/project turned in after the due date for the next assignment/project will be graded.

Policy on Missed Quizzes and Tests

In-class tests and quizzes missed without a legitimate excuse cannot be made up. If you have to miss quiz or test (for some legitimate reason) please let me know at least a week before and I will make arrangements for a make up. In the event some unexpected reason beyond your control prevents you from being in class on the day of a test, contact me as soon as possible by phone or email to arrange a make up.

Ethics Policy / Academic Dishonesty.

No student should turn in for grading work that has been done by someone else, or work on which they have received help but which they do not understand. Any work turned in by a student will be considered to have been plagiarized if the student can not explain it when requested to do so by the instructor. It will also be considered to have been plagiarized if there is clear evidence that the work has been copied from another source, even if the student can explain it.