TWiki> CS202 Web>Syllabus (revision 4)EditAttach


Prerequisites: Grades of C or better in CS 201

Deadlines for Registration/Add/Drop/Credit Change

Data structures and algorithms are among the most fundamental topics in Computer Science. You may find some of the material difficult, but hopefully it will be of lasting value and even fun (at least sometimes...)

In addition to data structures, this course also covers some discrete mathematics topics along the way – in particular, some combinatorics (trust me, it is necessary for studying data structures and algorithms)

This is not an introductory programming course. You are expected to be proficient in basic Java programming: you should be comfortable with pointers/references, recursion, file manipulation, reading command line arguments, etc. You are expected to be familiar with linked lists. You should also be at least somewhat familiar with the features of Java (classes, inheritance, abstract classes, interfaces, generics). Chapters 1-4 of Weiss do a good job giving an overview of this material.


Course Topics

Lecture Notes

Class Web-info


Programming Projects



How To Get The Most Out Of This Course


Discrete Mathematics and Its Applications (6th ed.) by Kenneth Rosen

Data structures and algorithms in Java (3rd ed.) by Adam Drozdek.

Here is the publisher's link to the previous edition with free student content.

There is a whole bunch of good discrete math and data structures texts that you may want to look at; it sometimes helps to have another voice say the same things a different way.

Course Topics:


Runtime Analysis

Recursion and Induction

Review of Linked Lists, Stacks and Queues

Trees: Tree traversals, binary search trees, balanced search trees

Heaps, Priority Queues

Sorting Algorithms

Hash Tables

Graphs and Graph Algorithms

Java-related programming practices (throughout term)

Lecture Notes:

The slides that will be available on the course website are a good starting point for the class' lecture notes. They do not include everything that I say in class or what the book covers. Hopefully, the books, the slides, my lectures, and the office hours will cover the concepts.

Class Web-info:

The class homepage is
This class also uses the UIC Blackboard system.
Most handouts and important information will be posted there ( here). Consequently, it is important that you become comfortable immediately using some WWW browser and familiarize yourself with Blackboard. See the TA for help in the event that this is all new to you.


There will be problem sets roughly every other week, usually released on a Wednesday, and due by the beginning of class the Wednesday two weeks later. In general, no late assignments will be accepted. Requests for an extension will almost always be denied, except for extenuating circumstances, which must be requested at least a day before the due date of the assignment. To compensate for this somewhat draconian measure, the lowest homework grade will be automatically dropped.

You can submit your homeworks in many ways:

Hand it in class

Give it to the TA or the instructor in person

Email it to the TA or the instructor

Leave it in the TA's mailbox (905 SEO) or the instructor's mailbox (1120 SEO)

Slide it under the instructor's office door (1136 SEO)

Whatever you do, make sure to submit your homework verifiably before the due time.

Cheating will not be tolerated.

Not only is cheating a violation of the campus code of integrity, which might incur a reduced grade, expulsion from the class or university, it is also a slight against the other students in the class who will give you dirty looks. Refer to the UIC Student Disciplinary Procedure guide on possible repercussion of academic dishonesty.

Please read the Guidelines for Written Homeworks before doing the first assignment.

Programming Projects:

There will be four programming projects. Programs will be written in Java and must be turned in on Blackboard; programs must work correctly on the cs system.

Any program that does not compile will likely receive a score of 0. Warning messages will not necessarily affect your grade (compilers can be a bit picky sometimes). If you use a makefile you must turn it in with with your source code.

Procedures for submitting programming assignments will be forthcoming.

MOSS: Sharing code with your classmates is not acceptable! All programs will be screened using the Moss (“Measure of Software Similarity”) system. From the Moss web page:

“Moss is an automatic system for determining the similarity of C, C++, Java, Pascal, Ada, ML, Lisp or Scheme programs. To date, the main application of Moss has been in detecting plagiarism in programming classes. Since its development in 1994, Moss has been very effective in this role. The algorithm behind Moss is a significant improvement over other cheating detection algorithms (at least, over those known to us).”


There will be two midterm exams, and one final exam. The midterm exams will be scheduled in class. You will be responsible for all material covered in lectures, homeworks, and assigned readings.

The time and location for the final (2 hour) exam will be announced shortly.

All exams will be closed book, closed notes, closed neighbor, no calculators, just a writing implement and your mind.


Tentative weighting scheme (the instructor reserves the right to make adjustments to these weights based on her a posteriori evaluation of the relative difficulty and fairness of the exams and homeworks).

Homeworks (~6)


Projects (4)


Midterm Exams (2)

30% (10+20)

Final Exam


The final grade is computed as follows:
(average of the homeworks)*.18 + (average of the projects)*.28 + low midterm*.1 + high midterm*.2 + final*.24

Grades will be posted online on the UIC Blackboad system.

If you have a question or complaint about the way a homework or exam problem was graded, then, within one week of the date the assignment is returned, you should either explain what it is on a separate piece of paper and give it to the TA along with the assignment or, better yet, come into office hours and get it straightened out then. We want everyone happy and satisfied, but we can't do much in the couple of minutes before and after class.

How To Get The Most Out Of This Course:

Attend lectures.

Read the books.

If you have trouble solving a homework problem, try doing some easier related problems first.

Go over the printed solutions when they become available, and make sure you understand them.

Do the projects

Go to the TA or instructor to discuss any misunderstandings you may have.

Think! A big part of this class is being clever, but in just the right way.

If you do the homeworks, understand them and the solutions, implement the projects, then you will probably do well on the exams and do well in the class. Your life will beautiful and fulfilled, you'll be forever happy and there will be peace on Earth.

(adapted from Lenny Pitt and Jeff Erickson)

Edit | Attach | Print version | History: r7 < r6 < r5 < r4 < r3 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r4 - 2011-08-21 - 10:18:20 - Main.tanyabw
Copyright 2016 The Board of Trustees
of the University of
Helping Women Faculty Advance
Funded by NSF