UMBC CMSC 201, Spring 2007

Syllabus

Lecturers

Dennis Frey
Office: ITE 209
Office Hours:Mon/Wed 11:30 - 12:30 and Tues 10:00 - 12:00 or by appointment
Telephone: 410-455-3540
E-mail: frey@cs.umbc.edu

Sue Evans
Office: ITE  207
Office Hours: Tu/Th 1:00 - 2:00 PM and Tu/Th 4:00 - 5:00 PM or by appointment
Telephone: 410-455-3964
E-mail: bogar@cs.umbc.edu

Lecture Times and Places

Sects 0101 - 0107: Mon & Wed 1:00 p.m. - 2:15 p.m., L.H. 7 Frey Sects 0201 - 0207: Tu & Th 5:30 p.m. - 6:45 p.m., L.H. 7 Evans

Textbook

The faculty, staff and students last semester agreed that the course lecture notes provided online are sufficient to do well in the course, so there is no longer a required text for the course. If you already have Problem Solving, An Introduction to Programming
the Custom Edition for UMBC by Pearson Custom Publishing, you can continue to use that text.

Recommended reference books are:

The C Programming Language, Kernighan & Ritchie, Prentice Hall
Recommended as a C programming reference

Learning the UNIX Operating System, Peek, Todino-Gonquet & Strang
O'Reilly Media; 5th edition (The Owl book)
Recommended as a UNIX reference for beginners

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 C language running under a UNIX operating system. The core material for this course includes functions, arrays, strings, pointers, structures, and files. Students are assumed to already know the basics of a modern high-level language such as C or Pascal (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 Prerequisite: MATH 150 and previous programming experience.

Objectives

The objectives of this course are:

Grading

There will be five projects each worth 8% of the final grade, for a total of 40%; 10 lab assignments each worth 1% of the final grade, for a total of 10%; a midterm and a final exam worth 25% each. 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.

Projects

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

For details and an Important Warning concerning Academic Integrity, see Project Submission and Grading Policy.

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.

Exams

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.