CMSC 201

CMSC 201
Computer Science I for Majors

Syllabus

Lecturers, Class Times and Locations

  Dawn Block Sue Evans
Office ITE  208 ITE  207
Office Hours Mon - Thur 2:30 - 3:30 PM
or by appointment
Tu/Th 1:00 - 2:00 & 4:00 - 5:00 PM
or by appointment
Telephone 410-455-8866 410-455-3964
Email dblock@umbc.edu bogar@cs.umbc.edu
Class Section 01 - Lecture Section 08 - Lecture
Class Times Mon & Wed 1:00 p.m. - 2:15 p.m. Tues & Thur 5:30 p.m. - 6:45 p.m.
Location L.H. 8 L.H. 4

Discussions

All Discussion Sections meet in ENG 104 A.
Although you may attend either lecture, you MUST attend the discussion section you are registered for in order to receive credit for the labs.

Textbook

The required 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.

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 Python language.
  • To learn how to use UMBC's UNIX system to create, test and execute Python programs.
  • To prepare for further study in Computer Science.

Grading

Item SubItem Weight Total Weight
Assignments      
  8 Homeworks 3% each
24%
  2 Projects 8% each
16%
Labs      
  best 10 out of 12 labs 1% each
10%
Exams      
  Midterm  
25%
  Final Exam  
25%

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.

Assignments

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 severly.

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:

  • Emailing code in whole or in part
  • Instant Messaging code in whole or in part
  • Posting or obtaining code in whole or in part on the web including but not limited to forums, newsgroups, etc...
  • Not taking the appropriate measures to protect your source code, including:
    • Placing your code in a public directory
    • Failing to lock your screen when away from your computer
    • Allowing someone to copy code from your monitor
    • Giving your password to another student

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.

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.