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:
- To develop problem-solving skills, especially in the
use of computers to solve real-world problems.
- To learn basic programming skills, especially
software development using the C language.
- To learn how to use UMBC's UNIX system to create,
test and execute C programs.
- To prepare for further study in Computer Science.
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.