CMSC 212 - Introduction to Low-Level Programming Concepts
Fall, 2005

NameOfficeEmailOffice Hours
Pete Keleher4157 AV Williamskeleher@cs.umd.eduTu 1-2, Th 2-3
Jan Plane1113 AV Williamsjplane@cs.umd.eduM 10-12,F 10-12

TAs (Office Hours)
Teaching TA 0101&0102Elena
Teaching TA 0201&0202Sorelle
Teaching TA 0301&0302Morgan
Grading TA 0101&0102Bhargav
Grading TA 0201&0202Prithviraj
Grading TA 0301Shomir
Grading TA 0302Saeed




Course Outline

This course introduces many of the concepts that lie behind software, such as hardware, memory layout, memory management, and operating systems. It explains how these concepts affect the design of software systems. This course provides a transition from the Java environment of the preceding two courses to programming in C.

Objectives: A good working knowledge of how to program in the C programming language. Understanding how write program with explicit memory allocation and de-allocation. An introduction of how to write systems programs.

Programming Projects:

Understanding programming concepts is a hands-on activity. This class will include several substantial programming projects that will require students to read and understand provided code, write new modules, and debug the resulting system. The instructors reserves the right to fail, regardless of overall numeric score, students who do not submit a good faith attempt to complete all programming assignments. All projects will be submitted to the submissions server at, either via the web or the submit212 command.

#HandoutFilesDue DateErrata
1)html, pdf ~/212files/p1.tar.gzSept 15, 8pm
2)html, pdf ~/212files/p2.tar.gzSept 30, midnight
3)html, pdf ~/212files/p3.tar.gzOct 14, midnight p3 errata
4)html, pdf ~/212files/p4.tar.gzNov 6, 11:59PM p4 errata
5)html, pdf ~/212files/p5.tar.gzNov 30, 11:59PM
6)html, pdf ~/212files/p6.tar.gzDec 13, 11:59PM


Midterm #1 Thursday, October 6, 2005, 5:45 - 7:00. Location: ARM 0135
Midterm #2 Thursday, November 3, 2005, 5:45-7:00. Location: ARM 0135
Final Thursday, December 15(4:00-6:00pm) Location: HJP 0226


  • Schedule Conflicts: If you have a schedule conflict with any exam, please contact your instructor by the end of the schedule adjustment period.
  • Re-grade policy. All requests to change grading of homework, programming projects, or exams must be submitted via the grades web system within one week of when the results of the assignment were made available. Requests to re-grade exams or quizzes must also include the exam booklet to your discussion section TA by the deadline. Requests must be specific, convincing, and explain why you feel your answer deserves additional credit. A request to re-grade an assignment can result in the entire assignment being re-evaluated and as a result the score of any part of the assignment may be increased or lowered as appropriate.
  • Cell phones: As a courtesy to your fellow classmates, pagers and cell phones must be off or on vibrate during class, discussion section, and exams. Having cell phones or pagers ring during course meetings can result in points being deducted from your semester grade.
  • Illness: Requests to makeup exams due to illness must be accompanied by a note from a medical doctor and include the doctor's phone number. This note must contain explicit dates of incapacitation (that you were unable to attend class or to work on the project at those times).
  • DSS: If you require any special accommodations, you must provide paperwork from DSS by the end of schedule adjustment period.

    Academic Integrity:

    All work that you submit in this course must be your own; unauthorized group efforts will be considered academic dishonesty. See the Undergraduate Catalog for definitions and sanctions. Academic dishonesty is a serious offense that may result in suspension or expulsion from the University. In addition to any other action taken, the grade "XF" denoting "failure due to academic dishonesty" will normally be recorded on the transcripts of students found responsible for acts of academic dishonesty. Sharing of code on programming assignments is a form of academic dishonesty.

    Late Policy:

    No late homework or programming assignments will be accepted. If you are unable to complete a programming assignment due to serious illness or family emergency, please see your instructor as soon as possible to make special arrangements.

    Office Hours and Email:

    We (the TAs and professors) are happy to answer questions during office hours, and by email. However, office hours and email are not intended as a replacement for lecture. As a result, we will only see people during office hours or respond to your email if you regularly attend class. Due to our own work schedules, we may not respond to email instantly. However, we will try to respond to your email by the next regularly scheduled office hour after you send it.