CMSC 201
Computer Science I for Majors


Lecturers, Class Times and Locations

  Dr. Sadeghian Mr. Lupoli
Office ITE  208 ITE  209
Office Hours M 2:30 - 3:30 and 4:30 - 5:30
W 2:30 - 3:30 and 4:30 - 5:30
TH 12:30- 2:30
T: 4-5:30    R: 12:30-2:30
Telephone 410-455-8866 410-455-3964
Class Section 01 - Lecture
Section 17 - Lecture
Section 09 - Lecture
Class Times Mon & Wed 1:00 p.m. - 2:15 p.m.
Mon & Wed 9:00 a.m. - 10:15 a.m.
Tues & Thur 5:30 p.m. - 6:45 p.m.
Location 1-2:15 MW L.H. 7 (ITE 104)
9-10:15 MW (ITE 233)
L.H. 5  (ENG 027)


All Discussion Sections meet in ENG 104 A, ENG 104, ENG 122, or ENG 333. Please double check!!
You MUST attend the discussion section you are registered for in order to receive credit for the labs.


The recommended textbook for this course is Python Programming: An Introduction to Computer Science, John Zelle, Franklin, Beedle & Associates.

Course Description

An introduction to computer science through problem solving and computer programming. Programming techniques covered by this course include modularity, abstraction, top-down design, specifications, documentation, debugging, and testing. Selected topics in computer science are introduced through programming projects in the python language running under a UNIX operating system. The core material for this course includes functions, strings, loops, and files. Students are assumed to already know the basics of a modern high-level language such as Java (expressions, basic data types, arrays, and control structures). Students with no prior programming experience should take CMSC 104. This is the first course for students interested in pursuing further study in computer science. Note: credit will not be given for both CMSC 106 and CMSC 201 Prerequisites: MATH 150 and previous programming experience.


The objectives of this course are:


Item SubItem Weight Total Weight
  8 Homeworks 3% each
  2 Projects 8% each
  best 10 out of 12 labs 1% each
  Final Exam  

Make-ups for exams are given under only the most dire circumstances (almost never). Your final letter grade may be curved above the standard formula:

                    0 <= F < 60                 60 <= D < 70                 70 <= C < 80                 80 <= B < 90                 90 <= A <= 100 

Under no circumstances will the grades be curved downward. Your grade is based on timely work accomplished during the semester. Incomplete grades will only be given for medical illness or other such dire circumstances.


The critical programming skills cannot be learned simply by attending the lectures. You should budget enough time to work on the assignments as well. Assignments are due by midnight of the due date. Projects will be graded according to four parts: correctness, design, style, and documentation.

For details see Assignment Submission and Grading Policy.

Academic Integrity

All assignments must be completed by your own individual effort. You should never have a copy of someone else's assignment either on paper or electronically under any circumstance. Also, you should never give a copy of your assignment, either on paper or electronically, to another student. This also means that you cannot "work" on the assignment together. Cases of academic dishonesty will be dealt with severely.

If you need help with your assignment, see your instructor, any of the TAs , the Computer Science Help Center or tutors provided by the Learning Resource Center. You may NOT ask another student (whether they are taking CMSC201 or not) or anyone else for help.

The following is a non-exhaustive list of violations of academic integrity:

We will be using special software to check for cheating. The software is quite sophisticated and has "surprised" some students in the past. We will, of course, not release the details of the internal workings of this cheat-checking software, but you are forewarned that there is no difficulty in comparing every pair of projects --- even for projects submitted to other sections of this course.

Your homeworks/projects will be checked for similarities with all other student projects. If your homework/project is found to be "substantially similar" to that of another student, both you and the other student will receive a grade of 0 for that homework/project AND a reduction of one full letter grade in your final course grade. Furthermore, all parties concerned will have their prior homeworks/projects checked for cheating. A second incident will result in a grade of 'F' for the semester.

Any act of dishonesty may be reported to the University's Academic Conduct Committee for further action. Egregious cases of cheating will be written up as a "more serious" infraction. In this case, you will not be allowed to drop the course. Also, a "more serious" infraction would appear as a permanent part of your student record and would be seen by potential employers when they ask for an official copy of your transcript.

Lectures and Readings

You are expected to attend all lectures and your weekly discussion session. The lab assignments are to be done during your weekly discussion session, so attendance is mandatory. You are responsible for all material covered in the lecture, even if they are not in the course web pages. You are responsible for the material in the course web pages, even if they are not covered during lecture.

TAs' Office Hours

TAs hold their regularly scheduled office hours in ITE 240, which is a lab shared by several CS courses. That lab has a set of rules that need to be followed. If you schedule an appointment to see your TA outside of their normal hours, the appointment will take place in ITE 334, their shared office.

Reviewing Homework/Project Grades

The grading of homeworks is done by another group that are NOT the teaching staff (TAs or Instructors). If you wish to have a grade reviewed please:

1. Do not email your TA or Instructor. Kinda hard to fix and view via email.

2. Build your case BEFORE you visit a staff member.

3. Visit ANY staff member to review the grade with your evidence during office hours. (Visit where I can find help?) TAs DO NOT have access to the gradebook. They will email the instructor with a grade change report.


In general, the exams will be closed-book and closed-notes. The final exam will be comprehensive and cover the material from the entire course. You must take the exam from the same section you were assigned!!!