This page describes the official course syllabus. It does not include all policies for every possible situation or answers to common questions students have about the syllabus. For both of those purposes, please see the FAQ.

Meeting Times

Lectures

Section Day Time Location
AL1 MWF 11-11:50am 1002 Electrical & Computer Engineering Building
AL2 MWF 1-1:50pm 1404 Siebel Center for Comp Science

Labs

Grad TAs for labs are in bold.

Regular sections

All regular sections are in Siebel 0224

Section Day Time TAs/CAs
AYB Wed 07:00pm – 08:50pm Avinash Ahuja, Tristan Gurtler, Yisong Yue
AYC Thu 09:00am – 10:50am Pallavi Srivastava, Justin Miron, Aadhya Gupta
AYD Thu 11:00am – 12:50pm Pallavi Srivastava, Justin Miron
AYE Thu 01:00pm – 02:50pm Chaitanya Datye, Edward Chen
AYF Thu 03:00pm – 04:50pm Chaitanya Datye, Kevin Wang, Alvin Jou
AYG Thu 05:00pm – 06:50pm Chaitanya Datye, Assma Boughoula, Rohan Seth, Aashna Makkar
AYH Thu 07:00pm – 08:50pm Avinash Ahuja, Nathan Beauchamp, Sonia Mohanlal
AYI Fri 09:00am – 10:50am Srihita Vatsavaya, Justin Miron
AYJ Fri 11:00am – 12:50pm Srihita Vatsavaya, Aadhya Gupta, Nihal Shah
AYK Fri 01:00pm – 02:50pm Kanika Narang, Sylvia Haas, Kevin Wang
AYL Fri 03:00pm – 04:50pm Banu Muthukumar, Rohan Seth, Peter Ivanov

Laptop sections

A laptop is required at these sections.

All laptop sections are in Siebel 1302

Section Day Time TAs/CAs
AYN Thu 01:00pm – 02:50pm Assma Boughoula, Quan Wan
AYO Thu 03:00pm – 04:50pm Banu Muthukumar, Victor Mouschovias
AYP Thu 05:00pm – 06:50pm Bo Teng, Mike Peretz, Rohit Mukerji
AYQ Fri 09:00am – 10:50am Kanika Narang, Milan Dasgupta
AYS Fri 01:00pm – 02:50pm Bo Teng, Alvin Jou

Office Hours

Please see the Calendar for our Open-Lab and Pen-N-Paper (PNP) office hours.

Office hours are held in the basement of Siebel. To add yourself to the office hours queue, go to Chara. Make sure to include which room you are in so the TA on duty can find you.

Course Theme

This course teaches a variety of ways to store collections of data in a computer program and discusses the advantages and disadvantages associated with the different methods. You will learn how to build various data-storage structures, and you’ll discover why you might prefer one over another in a particular situation. The combined arts of design, analysis and justification are the substance of the class.

The first 3–4 weeks of the course will be a crash-course in some C++. We will cover many of the major ideas of the language, and you will have had a great deal of practice with the most important features of the language by the end of the semester. Our focus will be on features that introduce computing concepts that may be new to you - most prominently, generic programming, object-oriented programming, and manual memory management.

While this is not a C++ course, keeping up with the class during the C++ portion will be important to your success later on, where the focus will shift from how to do things in C++ to what to do. In order to communicate these ideas for MPs and exams, you’ll need to be familiar with C++. Also, the first exam will cover primarily C++ topics. That said, knowing C++ alone is not sufficient to do well in CS 225 - if you’re already familiar with C++, we encourage you to learn ahead and make sure you follow along with the data structure discussion later.

Prerequisites

See also the FAQ about prerequisites.

Textbooks

Coding Spellbook (optional)

Coding Spellbook: Data Structures by Jack Toole

Download and setup instructions available at http://www.codingspellbook.com/setup.

Physical Textbook (optional)

Data Structures and Algorithm Analysis in C++ (3rd Edition)

This textbook is the physical textbook previously recommended for the course. If you prefer reading a textbooks for most of your courses, and are looking for a supplementary book to read for this course, this is a good choice. There will be no required readings in this book, and most students will probably not purchase it. It should be available in campus libraries, however.

C++ reference

A good C++ reference is a necessity. Here are some suggestions:

You are welcome to use any alternative references you prefer.

Communication

Course Website

All course announcements, including MP extensions, will be announced on the front page of the course website. Please plan to check this page often.

Piazza

The most important forum for communicating in this class is been the course’s Piazza site. Piazza is like a newsgroup or forum — you are encouraged to use it to ask questions, request clarifications, express opinions, give advice. We will give you enrollment instructions at the first lab meeting (it’s not hard). The Piazza site for this class is: https://piazza.com/illinois/spring2016/cs225 . You are welcome to sign up, and you can do so directly if you use your @illinois.edu email address. Doing so exposes you to the possibility of limited promotional material from Piazza, but you WILL be able to maintain your privacy within the system by posting private messages. If you are concerned about privacy, and you do not want to use your @illinois.edu account, send Cinda an alternative account and we’ll prompt Piazza to send you an invitation.

We expect that you will be courteous and post only material that is somehow related to cs225 (however slightly). The posts will be lightly moderated.

Piazza will be a great place to post most questions regarding assignments - both the course staff and other students are allowed to answer your questions. Please try to avoid asking questions that have already been asked and answered. Also, do not post code!!! Finally, try to avoid emailing the instructor or TAs if your question can be posted to Piazza.

Note that private posts to Piazza can be used for things like conflict requests, or for letting us know that you have that sinking feeling—anything you don’t really want to share with our small community of 600 learners.

Grading

All MP, lab, and exam scores will be published to your SVN repository.

Point breakdown

Category Weight Notes
Programming Assignments 13% 0.5% for MP1; 0.5% for HW0; 2% for the rest of the MPs
Laboratory Assignments 10% 1% each
Midterms 45% 15% each
Final Exam 32%

Usual cutoffs

Points Minimum Grade
[88, 100] A-
[76, 88) B-
[64, 76) C-
[52, 64) D
[0, 52) F

We might lower these cutoffs; for example, perhaps 63 points will turn out to be enough for a C-; however, we won’t raise them. (In recent semesters these cutoffs have not moved significantly from these targets.)

We do not assign letter grades for individual scores. We also do not ever curve individual exam or assignment scores. If an exam or assignment should turn out to be significantly harder than we meant it to be, we would announce a lowering of the expected cutoffs above for the various letter grades, in effect lowering the percentage needed for a grade and curving the grades.

Extra credit

There is an opportunity for significant extra credit in this course. Points for extra credit work will be assigned after grade cutoffs are determined, so they are a true bonus to your score. The total points you can achieve typically correspond to a half letter grade.

MP extra credit via early submission

All MPs except MP1 are broken into two parts. The first part can be submitted by an early deadline for one percent of extra credit toward your final course grade. The result of consistent early submission is 6 percentage points toward your final course score, or approximately half a letter grade. Note that this is REAL extra credit. The extra points are granted after the final grade cutoffs are determined.

Partial extra credit is available; if you score an 80% on an early submission, you will get 0.8% extra credit.

Lab extra credit

Your overall lab score is computed out of a maximum of 10%; anything above 10% is counted as extra credit.

MPs and Labs

Machine Problems

There will be 7 machine problems (MPs). They are of increasing difficulty and sophistication, and we consider them to be the meat and cheese of the course.

The MPs you will be doing in this class will serve many purposes:

You are given approximately two weeks for each MP (after MP1, which is just 1 week). Exact MP due dates will be announced in lecture and on the MP specification page.

Labs

There will be approximately 14 lab sections during the semester, of which 13 will feature graded lab assignments. See the top of this page for meeting times and locations. Lively discussion and collaboration with course staff and fellow students during the 2 hour labs should result in significant progress, though some labs may be more challenging than others.

The purpose of labs is to help improve your programming abilities and reinforce concepts taught in lecture. Exact lab formats may change week-to-week, but a usual lab will consist of about 20 minutes of discussion over the material covered in lecture, and about 90 minutes of coding.

Grading for lab assignments will be broken into 2 parts: 23 of your score will be based on the performance of your solution code on test cases, and 13 will be attendance credit. Section meetings are an efficient time for you to focus on the lab assignments, and and efficient time for us to offer you assistance, so we’re giving you grade incentive to attend. You will be required to attend the lab section for which you are enrolled.

Lab assignments will be released for all students before 7pm on Wednesday, and will be due the following Sunday at 11:59pm.

Machines and EWS

Your MP and lab solutions MUST compile and execute on the EWS Linux machines (the Linux computers present in Siebel basement labs and other College of Engineering buildings). If you are a student in the College of Engineering, you automatically have an account on those machines. Just use your NetID and AD password to get in. If you discover that you do not have an account on the EWS machines, first try resetting your AD password, and if that doesn’t work, then ask your lab TA to set one up for you, or post a private message to Piazza and we’ll take care of it.

You are welcome to log in to the EWS machines remotely. Instructions are available from the Resources page. However, we invite you to get out of your room and join your classmates and course staff in 0224 Siebel :-) . Open lab office hours can be seen on the Calendar page.

Distribution and Hand-in

Each of you has been given space in the CS 225 SVN repository. Code for each of the MPs will be distributed there for you to check out. Simultaneously, the MP writeup will go live on the course web site. The writeup will contain all specifications you need for the assignment, including due dates and submission instructions. All submissions will be taken from the SVN repository at the MP deadline, so you should commit appropriately.

We are very strict about the deadline, and no late assignment will be accepted.

Exam Policies

See the Exams page.

Academic Integrity

For a more detailed description of our Academic Integrity Policy, please see Academic Integrity. You are responsible for the content there, but as an overview: