Fundamental Programming Concepts
Summer 2003

Course Information

The final project is due today. Make sure to hand in a paper copy and email me your code!.

Class Resources
Syllabus Lecture Notes
Labs Lab Solutions
Homeworks Homework Solutions
Matlab Primer Exams
Final Project  


Course Description
CS 99. 2 credits. S-U grades only. 

Students with previous programming experience or students who do not intend to take CS 100 should not take CS 99. 

In CS 99, basic programming concepts and problem analysis are studied. An appropriate high-level programming language (MATLAB) will be used. 

Course Goals
At the conclusion of this course, students should have learned how to do the following:
  • 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, functions, and values.
  • write programs that use control structures (selection and repetition statements) to solve problems
  • modularize programs with functions to remove redundancy
  • use MATLAB's built-in ability for arrays.
  • test and debug code by tracing.
  • know how to maintain good style and appropriately document code.
Teaching Staff
You can contact the course staff via email, but be sure to include “CS99” in the Subject line. 

Name Title Email Office Office hours
Marcel Blais Instructor mblais@cam.cornell.edu 657 Rhodes M 4:15 - 5:15

W 5:15 - 6:15

Tara Small Teaching Assistant tsmall@cam.cornell.edu 657 Rhodes T  5:15 - 6:15
Praveen Sethupathy Teaching Assistant  praveensethupathy@hotmail.com W249 Mudd Hall Th 5:15 - 6:15

All office hours are held in Upson B7.

Meeting Times
Lectures will be held on Monday and Wednesday of each week. Monday's lecture will be in Olin Hall 216; Wednesday's lecture will be held in the class laboratory, Upson B7.  Labs will be held on Tuesday and Thursday of each week in Upson B7. 

Section 1 will meet from 10:00-11:00am, and section 2 will meet from 11:30-12:30pm.


Homeworks are programming assignments where you will put into practice the concepts introduced in lecture.  Students may not work with partners; work is to be completed outside of class time.  You may review the department's policy on academic integrity to see what comprises acceptable collaboration.

There will be 9 homework assignments.  In total, they are worth 40% of your final grade.  Students are recommended to do them all.

After the first week, homework assignments will be posted online every Monday and Wednesday evening and also handed out in lecture that day. Homework posted Monday is due at the beginning of lab on Thursday; homework posted Wednesday is due at the start of the following Tuesday's lab.


Labs also allow students to practice concepts from lecture, but at a less challenging level than the homework.  For labs only, students may work in groups of two and may discuss the problems with others.  The teaching assistants will be on hand to answer questions and to help with any problems students may have, conceptual or otherwise.

There will be 8 laboratory assignments.  In total, they are worth 10% of the final grade.

Labs are designed to be completed in an hour.  They are handed out at the beginning of each lab session and are expected to be returned at the end of the same session.

Attendance is mandatory for labs, as new material will be introduced in them.

You will want to purchase either several floppies or a ZIP disk.  You will need these for storing your programs and perhaps for email.  Work from earlier labs may come in handy for later ones.


There will be some occasional in-lecture quizzes, dates determined at the instructor's discretion.

The quizzes are worth 2% of the final grade..

Class Participation

We firmly believe that you'll get more out of the course and will likely enjoy it more, the more you participate in the class.. This does not necessarily mean that you must participate in class by asking questions or volunteering answers. There are other ways you can participate: by actively attending office hours, providing feedback on the course (questions about content, suggestions for improvement) via email to the instructor or TAs, etc or otherwise be 'engaged' with the class.  

Class participation is worth 5% of your final grade.

For full credit, students must attend laboratory sessions and lecture and may not miss any of the quizzes.

CS 99 requires that you program in MATLAB.

Official course text:

  • MATLAB: Programming for Engineers, Second Edition, by Stephen J. Chapman (Brookes-Cole, 2001).  On reserve at Carpenter Library. This is also one of the texts for CS100, so it's a good investment. 
Other texts you might find helpful:

Reserve Reading:

If you want to work on programs at home, you may purchase MATLAB from the Campus Store (approx. $120).  However, the course staff is not responsible for helping you to work from home, including installing software and submitting labs.


Web Resources
All course materials will be available at: http://www.cs.cornell.edu/courses/cs99/2003su

You should get into the habit of checking your email and the course web page on a regular basis (at least once a day). For printing in the labs and checking your Cornell email, you will need to have a Cornell NetID and password. If you do not have these yet, you need to go to the CIT helpdesk in the CCC building. While you're there, you can also pick up a Bear Access CD. This has the software you'll need to access these resources from your own computer.

The Mathworks.com has a handy Matlab help page at: http://www.mathworks.com/access/helpdesk/help/techdoc/matlab.shtml

There will be two preliminary exams. Exams will be in-class and closed-book. They will cover material from readings, lectures, and labs.
Course assignments will be weighted as follows:


Assignment Weight
Prelim 1
Prelim 2
Final Project
Class Participation

There will be 8 labs, and 9 homework assignments.  The final project may be thought of as a more difficult homework assignment.  Collectively, the labs, programming assignments, and final project are worth 65% of the final grade. The exams are worth 28% of the final grade.

Pursuant to university regulations, a grade of C- or above will become an S grade, and a grade of D+ or below will become a U grade.

Late policy: No late assignments will be accepted. There is no room for error in the relentless pace of a six-week course. All assignments are due at the beginning of class. 

If you foresee difficulty in submitting a project on time, or anticipate missing a prelim, due to a serious illness or death in your immediate family, notify us as soon as possible and we will do our best to work with you.

Regrade policy: You may submit an assignment for a regrade within 72 hours of when it was handed back to the class. When you do so, you must attach a statement detailing what you believe was graded incorrectly. Your assignment will then be regarded, and your grade adjusted. The adjustment may be up or down! In particular, frivolous requests will be treated harshly. 

Academic integrity: CS99 students must adhere to the department’s policy on academic integrity. In particular, you can talk to one another about how to use the computing environment or about high-level ideas for solutions, but you may not show one another your code, work together on writing code, or share code with one another. If you are unsure of an action, ask a member of the course staff for clarification. So long as you are honest in presenting your work, you are not in violation of academic integrity.

Special Needs: If you require special accommodations for test-taking conditions or for attending lectures, please let the instructor know as soon as possible.

last updated 7/31/2003