| CMSC 114 | Computer Science I | Spring 2004 |
| Fawzi Emad | James Maybury |
| 010x sections | 020x sections |
| 1109 AV Williams Bldg. | 1119 AV Williams Bldg. |
| 301-405-8411 | 301-405-2672 |
| fpe@cs.umd.edu | jmaybury@umd5.umd.edu |
The topics covered by this course are the following: file I/O, dynamic memory allocation, object-based programming, recursion, searching algorithms, sorting algorithms, and data abstraction. You will learn the essentials of the C++ Programming language required to study the above topics. For further details, see the last page of this document.
Prerequisite: CMSC 106 (Introduction to C Programming) Corequisite: MATH 141
Course materials (e.g., projects, assignments, office hours, etc.) will be made available in the public course posting accounts. Directions for obtaining course materials from the posting accounts will be discussed in class. Many course materials will be posted on the class webpage, which is: http://www.cs.umd.edu/class/spring2004/cmsc114/
The Instructors' and TAs' office hours will be provided in lecture and available in the class posting accounts.
The Instructors' emails are supplied so you can contact us when necessary in emergency situations, but we regret that we have insuffiencent resources to debug students' projects via email. Additionally, email is a bad medium for holding a discussion. If you have any problems with your projects then stop by during the instructors' office hours or the TAs' office hours. Office hours or personal communication during or after class (if time permits), are the preferred means for asking us questions about the course material.
| Quizzes (announced): | Approximately seven | 10% |
| Midterms: | two midterms | 30% (15% of the total course grade each) |
| Programming projects: | seven coding assignments | 35% |
| Project #0 - 1% (of the total course grade) | ||
| Project #1 - 3% | ||
| Project #2 - 4% | ||
| Project #3 - 4% | ||
| Project #4 - 4% | ||
| Project #5 - 8% | ||
| Project #6 (Required)- 8% | ||
| Project #7 - 3% | ||
| Final exam: | will be comprehensive | 25% |
The final course grades may be curved, if necessary, based on each
student's total numeric score for all coursework at the end of the semester.
You must provide a working version of your Project #6 in order to pass the course. A working version of a project is one that satisfies the primary output as specified in the project description. ANY STUDENT WITHOUT A WORKING VERSION OF PROJECT #6 WILL RECEIVE AN F IN THE COURSE. For example, if a student has a 100 in every project, exam, and quiz, but does not have a working version of Project #6, then the student will receive an F in the course.
All projects will be due at the time and date indicated on each project assignment. All projects will be graded out of 100 points. After the deadline for a project, you have two extra days to submit a working version of your project. Only the last project submission you provide will be graded; it will supercede any earlier submissions you may have made. For example, if a student has both an on-time as well as a two-day late submission then only the last (two-day late) submission will be graded. The penalties for each day late are as follows:
1 day late -> -15 points (you can get a maximum of 85 points)
2 days late -> -25 points (you can get a maximum of 75 points)
If after the third day you have not provided a working version of your project (except for Project #6) then you will receive 0 points for the project. Project #6 is the only exception to this rule. We will accept Project #6 submissions after the second day late, and until 11:59 PM on Friday May 7th. Versions of Project #6 submitted after second day late and before 11:59 PM on Friday May 7th will receive a maximum of 10 points.
Under no circumstances will any emailed project, or a project submitted by any means other than that specified on the assignment be considered. There are no extensions on project deadlines unless there are extraordinary circumstances.
Exams will be held on the dates below unless a change is necessary to accommodate lecture topics. In that case the revised date will be announced in lecture. The final exam date, however, is fixed. IF YOU HAVE A SITUATION THAT PREVENTS YOU FROM TAKING THE FINAL EXAM AT THE SCHEDULED DATE IT IS YOUR OBLIGATION TO INFORM YOUR INSTRUCTOR DURING THE FIRST TWO WEEKS OF CLASS, IN ORDER TO MAKE THE APPROPRIATE ARRANGEMENTS.
Exam 1: Monday March 8 during your Lab session.
Exam 2: NEW Wednesday April 14th during your Lab session (and not the 12th as originally posted).
Final Exam: Friday, May 14th from 4:00 to 6:00. Location to be announced.
Submission of Project #6 working version: 11:59 PM, Friday May 7.
If you are experiencing difficulties in keeping up with the academic demands of this course, contact the Learning Assistance Service, 2201 Shoemaker Building, 301-314-7693. Their educational counselors can help with time management, reading, note-taking and exam preparation skills.
Students with disabilities must inform the instructor of their needs at the beginning of the semester.
Many students in this course believe that because the size of the class is so large, we will not check that each project has been implemented individually. We want to inform you that we do check. We have software tools that allow us to compare every student project against every project across all the sections of the course. Some students believe that by changing variable names, adding/removing comments, etc., they can transform one program into a different one; this is not true. Even with those modifications we are able to recognize one project as a modified version of another project and we will report this as an academic integrity situation. Our advice to you is to do all your projects by yourself.
Every semester we have taught we have caught students cheating on project assignments. Student's academic careers have been ruined by their decision to cheat.
Please carefully read and consider the Computer Science Department policy regarding the use of computer systems, and the Academic Instructional Technology Services' policy regarding acceptable use of computer accounts provided for instructional use, in the Fall 2001 issue of the departmental newsletter, CS Tid-Bits, handed out with this syllabus. Note in particular the penalties for impermissible cooperation on programming projects, which is a violation of the University's Code of Academic Integrity. Any evidence of unacceptable use of computer accounts or unauthorized cooperation on exams or projects will be submitted to the appropriate authorities or to the Student Honor Council, which could result in an XF for the course, suspension, or expulsion from the University.
NOTE SPECIFICALLY that projects are to be done INDIVIDUALLY. For academic honesty purposes, projects are to be considered comparable to an extended take-home exam. That is, any cooperation or exchange of ideas which would be prohibited on an exam is also prohibited on a project assignment. Working IN ANY WAY with another student will be considered a violation and WILL BE REPORTED to the Honor Council. Students may not discuss pseudocode, design of a program or of individual functions, coding of individual functions, or any high-level code with anyone except the instructors and teaching assistants. Should you have difficulty with a programming assignment you should see your instructor or the teaching assistants in office hours, NOT solicit help from anyone else in violation of these rules. Students are welcome to study together or to receive help in learning the course concepts from any others, but quizzes, exams and projects are to be solely and entirely each student's own work.
VIOLATIONS OF ACADEMIC HONESTY INCLUDE:
IT IS THE RESPONSIBILITY, UNDER THE UNIVERSITY'S HONOR POLICY, OF ANY
STUDENT WHO LEARNS OF AN INCIDENT OF ACADEMIC DISHONESTY TO REPORT IT
TO THEIR INSTRUCTOR.
This list may vary according to the pace of lecture topics.
| Topics | |
| Week 1 | Introduction, review, intro to I/O, reference parameters, passing arguments |
| Week 2 | Review, namespaces, continue basic I/O |
| Week 3 | File I/O, BNF, review pointers |
| Week 4 | Dynamic memory allocation |
| Week 5 | Program organization, makefiles, preliminaries for learning about ``classes'' |
| Week 6 | Intro to classes |
| Week 7 | Continue classes |
| Week 8 | Continue classes |
| Week 9 | Spring break |
| Week 10 | Finish classes, including discussion of ``objects inside objects'' |
| Week 11 | Linked Lists and recursion |
| Week 12 | Continue linked lists, iterator model |
| Week 13 | Operator overloading |
| Week 14 | Searching and sorting |
| Week 15 | Other topics, as time permits |
This document was generated using the LaTeX2HTML translator Version 2K.1beta (1.61)
Copyright © 1993, 1994, 1995, 1996,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999,
Ross Moore,
Mathematics Department, Macquarie University, Sydney.
The command line arguments were:
latex2html -show_section_numbers -split 0 -no_navigation -no_footnode syllabus.tex
The translation was initiated by James J. Maybury on 2004-02-12