You are responsible for knowing the information in this document and the complete list of policies on the course website.
- name: COM S 99: Fundamental Programming Concepts
- semesters offered: fall, summer
- credit hours: 2
- prerequisites: none
- grade option: S/U
- course website: http://www.cs.cornell.edu/courses/cs99/2002fa/
- course newsgroup:
Computer Science is not about computers, any more than astronomy is about telescopes -- Edgar W. Dijkstra
This course is designed for students who intend to take COM S 100 but are not adequately prepared for that course.
Basic programming concepts and problem analysis are studied. An appropriate high-level programming language (MATLAB) is used.
Students with previous programming experience and students who do not intend to take COM S 100 should not take this course.
At the conclusion of this course, students should have learned how to do the following:
- Adapt the writing process (brainstorm, research, outline, write, rewrite, polish)
as a problem-solving strategy.
- Develop an algorithm from a word problem, using pseudocode.
- Identify the language elements of a programming language.
- Use MATLAB's help facility.
- Perform arithmetic and other fundamental mathematical operations with variables, operators, and values.
- Write programs that solve problems with control structures (selection and repetition statements).
- Modularize programs with functions to remove redundancy.
- Use MATLAB's built-in ability for arrays.
- Test and debug code by tracing.
- Maintain good style and appropriately document code.
To help you develop these skills, you will work on a sequence of lab exercises and homework assignments, culminating in a final
project that incorporates concepts learned throughout the semester.
The following is a summary of the staff for CS99. Refer to Staff
link from the course website for an updated and complete listing of names, locations, and office hours:
Professor David I. Schwartz
Address: 5137 Upson Hall
Office Hours: TBA
- Teaching Assistants:
We have one TA assigned to CS99. The TA will teach lab and handle most grading.
for information about other "early" programming courses if you need help in deciding whether or not to take CS99.
You are expected to attend all lectures on Mondays:
|622-748||LEC 01||Mon||9:05-9:55 AM||PH 219||Schwartz|
CS99 has two scheduled lab sessions. You must attend one per week. They start on September 3:
|622-637||SEC 01||Tue||9:05-9:55 AM||Upson B7||TBA
|622-666||SEC 02||Tue||10:10-11:00 AM||Upson B7||TBA
You are responsible for attending all classes and monitoring messages that we will post on the website and newsgroup. Look
here for help on accessing the newsgroup.
To demonstrate mastery of course objectives, you will have about one homework assignment due each week at the beginning of lab.
These assignments will usually involve individual effort. We strongly encourage you to start early so that you have enough
time to seek help if you have questions.
- Assignments are due by the posted due dates and times, which are generally at the beginning of lab.
- You must submit your work via the on-line submission system. Since our system is new and might exhibit bugs,
you must also submit a PC-formatted floppy disk/CD with the same files in lecture the day the assignment is due.
- Late penalities: We do not accept late work.
If you miss an assignment due date because of illness or another university-excused conflict, you must contact the
instructor and provide documentation.
Regrades are due one week after the assignment grades are posted. We are going to attempt an on-line
regrade system. If that system does not work, we will a post a form for you to print, fill out, attach to
a hardcopy of your work, and submit in lecture.
For each assignment, you must do the following:
We use a numerical scale to rate your work:
- 6: surpasses the objectives.
- 5: meets all of the objectives.
- 4: sufficiently meets the objectives.
- 3: meets some of the objectives.
- 2: meets a few of the objectives.
- 1: meets none of the objectives.
- 0: not submitted.
To demonstrate that you have acquired the desired skills for the course, you will have a final project to complete, which is due
at the end of the semester. This project uses many of the skills that earlier assignments helped to develop. The final project
also provides an opportunity to make up for missed points on other work.
To encourage practice of newly learned concepts, you will need to complete an exercise for each lab, which is due at the end of the
lab session. We do not grade exercises other than to check that you made an attempt to complete the problem sets. Often we will
assign teams of students to work together.
You are required to take two prelims:
See Exams for more details.
- Prelim 1: Tuesday, October 22, 7:30-9:00 PM, Upson 205
- Prelim 2: Tuesday, November 19, 7:30-9:00 PM, Upson 205
We distribute graded prelims in lecture and lab.
- You must submit your request within one week of the exam date, unless otherwise posted.
- Fill out a regrade form, which you will find outside of 303 Upson.
- Staple the form to the front of your prelim and submit in lab.
- Ensure that the consultant on duty logs your request.
What if you have a known university-excused conflict, like a prelim scheduled at the same time?
You must first try rescheduling the event conflicting with the CS99. If you have exhausted other means for rescheduling your
conflict, you must contact David I. Schwartz two weeks before the exam. You must explain the nature of the conflict and
provide documentation. You might be eligible to take an early prelim offering at 5:45-7:15 PM. We do not offer exams at any
- Special Needs:
If you have official documentation concerning special needs for exams, you must contact David I. Schwartz and provide copies
of the documentation.
What happens if you miss one prelim because of illness? You will have a significantly larger final project to complete. We
suggest that you make both exams.
All students must follow the Code of Academic Integrity (A.I.) at all times. Each assignment will specify whether
or not you may work with others and, if so, how many. For assignments that allow partners, only one assignment with
all names must be submitted. Exams must always be done individually. The penalty for any violation of the code is severe.
Refer to the rules for A.I. that are posted on the website.
We calculate your raw numerical grade based on points for homework and exams.
The CS99 homework and exams have the following distribution that help determine your grade:
Exercises = 20%
Homework = 30%
Final Project = 20%
Prelim 1 = 10%
Prelim 2 = 20%
To pass CS99, you need an approximate score of 75%. However, demonstrating that you have met the
objectives of the course will ultimately dictate whether or not you pass.
You may purchase books from the campus book store. We also place copies of
our books on reserve at the engineering library.
CS99 requires that you program in MATLAB. You do not have to purchase a copy, but if you choose to do so, ensure that you are
getting version 6.0 or higher. Many computer labs on campus support the software. See below for more information.
The CS99 website has many links to assist with learning about programming with MATLAB:
- Labs: Links to CIT and other labs on campus that have MATLAB.
- MATLAB: Company links, free tutorials and examples, and style guides.
- Programming: General references, many informative and some humorous, about the nature, science, art, and culture of
- Mathematics: Related mathematical software and general references.
We have provided links to many Cornell resources that help with tutoring, learning, health, and other help. See the
Help! link on the course website.
What To Do First
Do the following tasks as soon as possible: