Your browser is unsupported

We recommend using the latest version of IE11, Edge, Chrome, Firefox or Safari.


CS211 - Programming Practicum


Semester: Summer 2019 (Session 1)
Credit Hours: 2 Credits hours
Instructor: Mohammad Taha Khan
Office: SEO 1108
Office Hours: MTWR 3-4 pm, or by appointment
Class Details: MTWR 10am - 10:50am Lincoln Hall (LH) 312
Lab Details: 12:00pm - 1:50pm in SEL 2254 (Computer Science Lab)
Final Exam: 10:00am - 12:00pm on Friday, June 14, 2019 in LCE 101 (Lecture Center E)

Teaching Assistants

 AmirHossein Seyri
Office Hours: Wed 3pm - 5pm in SEO 809

Ashwini Naik
Office Hours: Tue/Thu 11am - 12pm in ERF 2028

Class Website:
Class Piazza:
Gradescope (For All Submissions):
Grading AmirHossein Seyri
Projects 2, 4 and 6
Labs on M/W

Ashwini Naik
Projects 1, 3 and 5
Labs on T/R


Course Overview Heading link

Programming Practicum is an introductory level course which focuses on software development tools and practices; debugging and testing; advanced language features; standard libraries; and code management.

  1. C Pointers section will include the use of pass-by-address parameters, dynamic arrays, and linked lists.
  2.  Tools and Techniques component will include the use of debuggers, version control, recursion, test case development and command line interfaces.
  3. Object Oriented Programming will explain concepts of classes in the C++ programming language.

Each section will last about the same amount of time. The concepts learned in the Tools and Techniques portion will get intermixed among the other 2 parts.

Required and Suggested Texts Heading link

Required textbooks:

Other interesting and helpful textbooks:

The books cab be accessed Safari Online website via the UIC Proxy Page. Login to the proxy using your ACCC ID and password.

Course Components and Evaluation Heading link

Students will be evaluated on the following course components:

Programming Projects 35%
Lab Exercises 35%
Code Review 6.5%
Midterm Exam 10%
Final Exam 15%


Programming Projects (35%)

There will be a total of  7 programming projects. The goal of the projects will be to allow students to independently incorporate the skills and concepts learned in class. As this will be a 4 week course, there will be two programming projects released at the start of each week. One of the projects will be due on the Thursday at 11:59pm of that respective week, and the other one will be due on Sunday at 11:59pm. For example, projects 1 and 2 will be released at the beginning of week 1, project 1 will be due on Thursday and project 2 will be due on Sunday. Details of the projects can be found under the Projects page.

Lab Exercises (35%)

There will be a total of 14 labs.  In each lab students will perform an implementation of a concept discussed in class. Students will have approximately 90 minutes to complete each lab. To receive credit, handouts must be handed over to the TAs/Instructor at the end of each lab session. Details of the labs can be found under the Schedules and Labs page.

Code Reviews (6.5%)

There will be a total of 7 code reviews. In this specific component, students will learn to present and explain their code to others, as well as, review code written by other individuals. In the last 15 minutes of the lab, students will take part in code reviews. Students will divide into divide into group of a maximum of 3 students. A student will present his/her code from a recent (or current) programming project to the other members of the group. The other members are to provide comments and feedback on the code presented. Each student must present code at least 2 occasions to earn full credit for this component. There will be 2 code reviews per week (except for the final week). Code reviews will be due at the end of the next day after being released. For more details on code reviews, read the Code Review page.

Midterm Exam (10%)

There will be one in-class midterm exam at the start for the third week. It will cover everything up covered in the first two weeks.

Final Exam (15%)

There will a course final exam which will be comprehensive. The final exam will be on Friday June 14, 2019.

Course Schedule Heading link

To view the course schedule, kindly visit the Schedule and Labs page.

Grading Criteria Heading link

The course will be graded on a fixed graded scheme mentioned below.

A 100%  – 90.0%
B 89.9% – 80.0%
C 79.9% – 70.0%
D 69.9% –60.0%
F  < 60%

Late Submission Policy Heading link

Programming Projects: Late programming projects will be allowed a late submission for up to 2 days after the deadline with a 15% deduction.

Lab Exercises: No late lab exercises will be allowed for this course. You must attend lab to get credit for the lab exercise.

Code Reviews: No late code reviews will be accepted for this course

In case of a medical emergency, students will be required to provide an official note and the new due date will be decided by the instructor.

Attendance Policy Heading link

Class attendance is not mandatory and up to the discretion of each student. However, students are highly encouraged to attend class as content covered is essential for lab exercises, programming projects and exams. If for some reason, students do miss class they should ask fellow classmates for missed information. Note that attendance in labs is required to receive credit for the lab exercises.

Academic Integrity Policy Heading link

As an academic community, UIC is committed to providing an environment in which research, learning, and scholarship can flourish and in which all endeavors are guided by academic and professional integrity.  All members of the campus community–students, staff, faculty, and administrators–share the responsibility of insuring that these standards are upheld so that such an environment exists.  While students are encouraged to have discussion will their peers within lab sessions and programming projects, each students is responsible of writing and submitting their own code. The following are some examples of academic misconduct:

  • Claiming someone else’s work as your own.
  • Searching for existing solutions to labs and projects.
  • Falsifying program output.
  • Discussing/talking during exams.
  • Sharing code or solutions with anyone other than the TA or instructor.

A first time cheating case on a programming project will result in a 0 on the project itself. If a student is caught cheating the second time, it will result in an F in the course. Cheating in a written exam will also result in failing the class. All instances of academic misconduct by students will be handled pursuant to the Student Disciplinary Policy. For more information read here.

Electronic Communication Heading link

The best way to reach out to for any logistical concerns is via e-mail and I will respond within 24 hours. For all course content related questions and discussions, please use Piazza. All questions will be responded within 24 hours by the instructor or the TAs.

Use of Electronic Devices Heading link

The use of electronic devices for any social media and electronic communication is prohibited in class. If students need to communicate with anyone not in the class, they can briefly step outside

Disability Accommodations Heading link

The University of Illinois at Chicago is committed to maintaining a barrier-free environment so that students with disabilities can fully access programs, courses, services, and activities at UIC. Students with disabilities who require accommodations for access to and/or participation in this course are welcome, but must be registered with the Disability Resource Center (DRC). You may contact DRC at 312-413-2183 (v) or 773-649-4535 (VP/Relay) and consult the following link here. 

Religious Holidays Heading link

Students who wish to observe their religious holidays shall notify the faculty member by the tenth day of the semester of the date when they will be absent unless the religious holiday is observed on or before the tenth day of the semester.  In such cases, the student shall notify the faculty member at least five days in advance of the date when he/she will be absent.  The faculty member shall make every reasonable effort to honor the request, not penalize the student for missing the class, and if an examination or project is due during the absence, give the student an exam or assignment equivalent to the one completed by those students in attendance.  If the student feels aggrieved, he/she may request remedy through the campus grievance procedure. For more information kindly refer to the following link.

Grievance Procedures Heading link

UIC is committed to the most fundamental principles of academic freedom, equality of opportunity, and human dignity involving students and employees. Freedom from discrimination is a foundation for all decision making at UIC. Students are encouraged to study the University’s “Nondiscrimination Statement”.  Students are also urged to read the document “Public Formal Grievance Procedures”. Information on these policies and procedures is available on the University web pages of the Office of Access and Equity.

**The syllabus is a statement of intent and serves as an implicit agreement between the instructor and the student. Every effort will be made to avoid changing the course schedule but the possibility exists that unforeseen events will make syllabus changes necessary.