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

Course Description Learning Objectives Academic Integrity 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:

Academic Integrity

Simply put, academic integrity is about respecting yourself and respecting others. You respect yourself by submitting work completed through your own effort; you respect others by acknowledging contribution from others when such external contribution is allowed, e.g., for group projects. When your individual effort is required, for exams or for in-class quizzes, you may neither seek nor accept help from others. You must read the complete Code of Academic Integrity as it applies to this course. Ignorance of the Code is not an acceptable excuse.

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 218 Sam Lee
2
T
01:25-02:15pm
UP B7 Right & OH 216 Ainur Yessanlina
3
T
02:30-03:20pm
UP B7 Right & OH 218 Ainur Yessanlina
4    T
03:35-04:25pm
UP B7 Right & UP 211 Xin Zheng
5 W
10:10-11:00am
UP B7 Right & UP 109 Abhishek Sharma
6
W
11:15-12:05pm
UP B7 Right & UP 211 Richard Yamada
7
W
12:20-01:10pm
UP B7 Right & HO 372 Leon Chen
8
W
01:25-02:15pm
UP B7 Right & OH 216 Abhishek Sharma
9 W
02:30-03:20pm
UP B7 Right & BD140 Richard Yamada
10 W
03:35-04:25pm
UP B7 Right & UP 205 Richard Yamada
11 W 7:30-8:20pm UP B7 Right & UP 109 Leon Chen
CIS/EAS 12
T
01:25-02:15pm
ACCEL Blue & HO 372 Sam Lee
20

W

12:20-01:10pm ACCEL Blue & HO 401 Woo Ram Youn
21

W

01:25-02:15pm ACCEL Blue & Snee 1150 Woo Ram Youn

Upson B7 is a computer lab. (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 1/21, 1/28, 2/11, 2/25, 3/11, 4/1,4/15, and, 4/29. A reminder of the section location will be posted every Monday.

Staff

Instructors: K-Y. Daisy Fan dfan@cs.cornell.edu
  L. Paul Chew chew@cs.cornell.edu
Teaching Assistants: Eric Breck ebreck@cs.cornell.edu
  Liang (Leon) Chen lc273@cornell.edu
  Sam Lee hl336@cornell.edu
  Abhishek Sharma aks47@cornell.edu
  Sebastian Stanescu pss36@cornell.edu
  Yin Wang yinwang@cs.cornell.edu
  Richard Yamada yamada@cam.cornell.edu
  Ainur Yessanlina ainur@cs.cornell.edu
  Woo Ram Youn wy46@cornell.edu
See CS100M --> Staff for other course staff and office hours.

Material

Required material:
  • "Starting Out with Java 5: Control Structures to Objects " by Tony Gaddis
  •  iClicker system responder keypad (clicker)
  • Notes on MATLAB will be available on the course website

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 22, 7:30-9:00pm 
  • Prelim 2:   Thursday, March 15, 7:30-9:00pm
  • Prelim 3:   Tuesday, April 17, 7:30-9:00pm 
  • Final Exam:  Monday, May 14, 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 (after the first lecture)

  • 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/.