cs111: course work

Course work in cs111 consists of exams and written homeworks. Also, you are required to attend weekly laboratory sessions.

Your final grade will be based on a weighted average of the following components:



Exam 1 (in class)


Exam 2 (take-home)


Final Exam (self-scheduled)


All homeworks are weighted equally.

At the end of the semester, we will compute a weighted average for each student and assign letter grades. In general, the mapping from numerical score to letter grades looks like this: >= 93.33 is an A, >= 90.00 is an A-, >= 86.67 is a B+, >= 83.33 is a B, >= 80.00 is a B-. >= 76.67 is a C+, >= 73.33 is a C, >= 70.00 is a C-, >= 60.00 is a D and < 60.00 is an F.

Depending on the overall performance of the class, we may adjust this mapping.


There will be three exams, all open book and open notes:

  1. An in-class exam on Thursday, February 27.
  2. A take-home exam from Tuesday, April 8 -- Tuesday, April 15.
  3. A self-scheduled final exam during the regular exam period.

Please mark these dates in your calendars. If you have any conflicts regarding the exam dates, please contact your instructor as soon as possible.


We will assign a weekly problem set intended to give you a working knowledge of the concepts presented in class. Assigments are due by 11:00 p.m. on Tuesdays. By that time, you should submit both (1) a hardcopy of your assignment to Elena Machkasova's office (SCI E127, in the mini-mini-focus) and (2) a softcopy (i.e., electronic copy) of all your code to the appropriate drop folder. See the Course Syllabus for assignments and due dates.

Instructions for turning in each assignment will be included with the assignment. We ask you to keep track of the time you spend on each problem to help us design problem sets for future semesters. Each problem set will come with a header sheet on which you can report the times you spent on the problems.

All assignments are intended to take the same amount of time, but the actual time varies from student to student and assignment to assignment. For many students, most assignments take roughly 10 hours.

In order for us to grade and return assignments promptly, we cannot accept late assignments. If you have not completed an assignment, you should still turn in whatever you have for partial credit. In extenuating circumstances (e.g., sickness, personal crisis, family problems, religious holidays), you may request an extension.

Many of the assignments will be challenging. Keep in mind that programming often consumes more time than you think it will. Start your problem sets early so that you have time to think about the the problems and ask questions if you hit an impasse. Waiting until the last minute is a recipe for disaster.

Also, keep in mind that computers do break down and that, outside of laboratory hours, you may have to compete with other students for a machine. Plan accordingly.


The mandatory weekly, 2-hour laboratory sessions consist of both written and online problem-solving exercises. The exercises provide hands-on practice with new material and with problems similar to the weekly homework assignments. In lab, students work at their own pace and can get help from the lab instructor and a teaching assistant. Although lab problems are similar to homework problem, lab is not a place to work on homework.