CS100M --> Syllabus
Course: Introduction to Computer Programming (4 credits)
Instructors: K-Y. Daisy Fan & Paul Chew
Website: http://www.cs.cornell.edu/courses/cs100m/2006sp
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 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 HO B14
Fan/Chew
      2
TR
11:15am-12:05pm OH 155
Fan/Chew
Section
Days
Time
Room
Instructor
1
T
12:20-01:10pm
UP B7 Right & UP 207 Liviu Popescu
2
T
01:25-02:15pm
UP B7 Right & OH 216 Yisong Yue
3
T
02:30-03:20pm
UP B7 Right & OH 165 Milos Hasan
4    T
03:35-04:25pm
UP B7 Right & HO 110 Milos Hasan
5 W
10:10-11:00am
UP B7 Right & HO 320 Haim Bar
6
W
11:15-12:05pm
UP B7 Right & UP 207 Haim Bar
7
W
12:20-01:10pm
UP B7 Right & PH 307 Yisong Yue
8
W
01:25-02:15pm
UP B7 Right & UP 215 Liviu Popescu
9 W
02:30-03:20pm
UP B7 Right & SE 1150

Liviu Popescu

10 W
03:35-04:25pm
UP B7 Right & SE 1150 Yunpeng Li
11 W 07:30-8:20pm UP B7 Right & OH 216 Yunpeng Li
21 W 12:20:1:10p, ACCEL Blue rm & HO 401 Jaime Barrera
22 W
01:25-02:15pm
ACCEL Blue rm & PH 403 Jaime Barrera
CIS121 T 01:25-02:15pm ACCEL Blue rm & UP 215 Yunpeng Li

Upson B7 and ACCEL Blue Rm are computer labs. (UP B7 is split in half, we will use the right half. ACCEL is the computer lab in the Engineering Library in Carpenter Hall. The Blue Rm is on the main floor.) 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 1/22, 1/29, 12/12, 2/26, 3/12, 4/2, 4/16 and, 5/1. A reminder of the section location will be posted every Monday.

Staff

Instructors K-Y. Daisy Fan dfan@cs.cornell.edu
Teaching Assistants    
  Jad Atoui jma79@cornell.edu
  Rohit Bansal rb294@cs.cornell.edu
  Haim Bar hyb2@cornell.edu
  Jaime Barrera jhb12@cornell.edu
  Siavash Dejgosha sd82@cs.cornell.edu
  Nick Hamatake nh39@cornell.edu
  Milos Hasan mhasan@cs.cornell.edu
  Yunpeng Li yuli@cs.cornell.edu
  Liviu Popescu ltp3@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. In-class quizzes count as exercises.
  • 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. In class quizzes will count as exercises.
  • 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:   Thursday, February 23, 7:30-9:00pm 
  • Prelim 2:   Thursday, March 16, 7:30-9:00pm
  • Prelim 3:   Tuesday, April 18, 7:30-9:00pm 
  • Final Exam:  Thursday, May 11, 2:00-4:30pm
An approximate schedule of course topics is given below. See CS100M --> Lecture materials 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/.