CS100M --> Syllabus
Course: Introduction to Computer Programming (4 credits)
Instructors: K-Y. Daisy Fan
Website: http://www.cs.cornell.edu/courses/cs100m/2005fa
Newsgroup: cornell.class.cs100m
Note: CS100 is not to be taken with CS211 concurrently or after CS211.

Course Description Learning Objectives Times & Places Staff Material Grades Schedule What To Do Now

Course Description

CS100 is an introduction to elementary computer programming concepts. The emphasis is on techniques of problem analysis and the development of algorithms and programs. CS100M starts with a seven-week introduction to programming in MATLAB. Iteration, functions, and arrays are introduced. During the second seven weeks of the course, students examine how these ideas are handled in the object-oriented framework provided by the Java programming language. Examples and assignments are chosen to give the student an appreciation for computational science and engineering. The pace of the course assumes that the student is comfortable with mathematics (at the level of one semester of calculus) and has some computing experience (e.g., spreadsheet computing) but has no prior programming experience.
CIS121 and EAS121 co-meet with CS100M for the first eight weeks of the semester (8/25 to 10/18) and share the MATLAB portion of the CS100M syllabus. CIS121/EAS121 will have the same lecture, section, homework, and prelims as CS100M during the first eight weeks of the semester.

Learning Objectives

In CS100, students will acquire the following skills:

Times & Places

Lecture
Days
Time
Room
Instructor
      1
TR
09:05am-09:55am OH 155
Fan
      2
TR
11:15am-12:05pm OH 155
Fan
Section
Days
Time
Room
Instructor
1
T
12:20-01:10pm
UP B7 Right & OH 245 Jeff Pang
2
T
01:25-02:15pm
UP B7 Right & HO 306 Michelle Li
3
T
02:30-03:20pm
UP B7 Right & HO 306 Jeff Pang
4    T
03:35-04:25pm
UP B7 Right & HO 206 Yisong  Yue
5 W
12:20-01:10pm
UP B7 Right & UP 205 Yisong  Yue
6
W
01:25-02:15pm
UP B7 Right & HO 306 Michelle Li
7
W
02:30-03:20pm
UP B7 Right & OH 165 Mateo Restrepo
8
W
03:35-04:25pm
UP B7 Right & HO 306 Mateo Restrepo

Upson B7 and Stimson G25 are computer labs. (UP B7 is split in half, we will use the right half). The first two weeks and then every other week, section will take place in the labs instead of the regular classrooms. The weeks during which you go to the lab are 8/28, 9/4, 9/18, 10/2, 10/16, 10/30, 11/13 and, 11/27. A reminder of the section location will be posted every Monday.

Staff

Instructors K-Y. Daisy Fan dfan@cs.cornell.edu
Teaching Assistants    
  Rohit Bansal rb294@cornell.edu
  Jeff Chin cp229@cornell.edu
  Jonathan Gong jg356@cornell.edu
  Michelle Li mml27@cornell.edu
  Yunpeng Li yuli@cs.cornell.edu
  Mateo Restrepo mateo@cam.cornell.edu
  Yisong Yue yyue@cs.cornell.edu
     
See CS100M --> Staff for other course staff and office hours.

Material

Required textbook:

Optional software:

Grades

You must adhere to the Code of Academic Integrity for all work.

Items that count towards your course grade include homework (exercises, 6 programming projects), lab exercises, quizzes, and exams (prelims, final exam).

  • Lab exercises are assigned and submitted in the lab sessions only. You may have two non-excused absences from the sections and labs (e.g., you added the course late, you fell asleep and missed the lab). For CS100M students, having more than two non-excused absences from the labs will result in a drop of a third of a letter grade in the course (e.g., from B to a B-). CIS121/EAS121 students may have one non-excused absence.
  • CS100M students are allowed to drop one project (e.g., you slept in and missed the deadline, you submitted the wrong file, your partner forgot to submit your joint work, your dog ate your hard disk, etc.). CIS121/EAS121 students may not drop any projects.
  • There will be bonus questions in some homework and/or exams. We consider bonus points only after we have assigned all letter grades at the end of the semester. Bonus points might raise your letter grade up to a third of a grade (e.g., C+ to B- but not C+ to B), so doing extra work always helps but never causes competition with fellow students.
  • CS100M uses the following weights to determine the course grade:
    Exercises (E)  =   5% (homework and lab exercises; in-class quizzes)
    Projects  (P)  =  25%
    Prelim 1  (T1)  =  10%
    Prelim 2  (T2)  =  20%
    Prelim 3  (T3)  =  20%
    Final     (F)  =  30%
    The above point distribution adds up to 110%. We will reduce the weight of your lowest exam by 10%. Therefore, your numeric grade has the following formula:

       Score = (0.05*E)+(0.25*P)+(0.1*T1)+(0.2*T2)+(0.2*T3)+(0.3*F)-(0.1*min(T1,T2,T3,F))

  • CIS121/EAS121 uses the following weights to determine the course grade:
    Exercises (E)  =  10% (homework and lab exercises; in-class quizzes)
    Projects  (P)  =  30%
    Prelim 1  (T1)  =  20%
    Prelim 2  (T2)  =  40%
    Prelim 2 serves as the final exam in CIS121/EAS121.

Your course grade will follow the "cut-off" structure given below. You need an overall score higher than 55 (of 100) to get a "D" ("marginal pass"). Note that your College (or Major) may require a "C-" to be a passing grade. After assigning your initial letter grade based on your overall numeric score, we might raise your grade if you have earned sufficient bonus points. We reserve the right to make adjustments both up and down based on our knowledge of each student.

    Overall score    Letter
       92-100        A-,A,A+
       80-88         B-,B,B+
       65-76         C-,C,C+

Schedule

You must write all exams at the scheduled times unless you have another exam officially scheduled at the same time (check exam schedules on http://cuinfo.cornell.edu/Academic/Class.html):
  • Prelim 1:   Monday, September, 26, 7:30-9:00pm
  • Prelim 2:   Tuesday, October 18, 7:30-9:00pm
  • Prelim 3:   Tuesday, November 15, 7:30-9:00pm
  • Final Exam:   Monday  December 12, 2:00 - 4:30 pm
An approximate schedule of course topics is given below. See CS100M --> Notes for topics covered in individual lectures.

Week Topic Week Topic
1 Introduction to CS100
Problem solving & algorithm
MATLAB Fundamentals
8 Java fundamentals
Conditionals
2 Conditionals
Elementary functions
Scripts
9 Iteration
3 Iteration 10 Classes, objects, methods
4 Arrays 11 Arrays
5 Functions 12 Classes, objects, methods
6 File input/output
Strings
Graphics
13 Inheritance
7 2-dimensional arrays
Graphics
14 Strings
2-dimensional arrays

What To Do Now

  • Review the descriptions of CS100M, CS100J, and alternative courses. Then pick a course!
  • Pick and attend a section that belongs to the course you have chosen.
  • Review the course website to learn the course policies.
  • Review the recent announcements on course web site.
  • Refer to Lecture Materials for assigned reading. Start reading.
  • Check prelim and final exam schedules for conflicts.
  • Check out the Association of Computer Science Undergraduates (ACSU): http://www.acsu.cornell.edu/.