CS100M --> Syllabus
Course: Introduction to Computer Programming (4 credits)
Instructors: K-Y. Daisy Fan
Charles Van Loan
Website: http://www.cs.cornell.edu/courses/cs100m/2005sp/
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 (1/24 to 3/17) 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 and Van Loan
      2
TR
11:15am-12:05pm OH 155
Fan and Van Loan
Section
Days
Time
Room
Instructor
09
T
01:25-02:15pm
UP B7 & OH 216 Milos Hasan
10
T
02:30-03:20pm
UP B7 & UP 215 Charles Van Loan and Christian Bucila
11
T
03:35-04:25pm
UP B7 & HO 314 Mateo Restrepo
12    W
01:25-02:15pm
UP B7 & PH 307 Michelle Li
13 W
02:30-03:20pm
Stimson G25 & UP111 Charles Van Loan and Sandhya Dasu
14
W
03:35-04:25pm
Stimson G25 & PH 213 Leonid Meyerguz
15
T
12:20-01:10 pm UP B7 & HO 320 Mateo Restrepo
16
W
12:20-01:10 pm UP B7 & PH 307 Milos Hasan
17    W 10:10-11:00am UP B7 & SE 1150 Joe Dillman
18 W 11:15am-12:05pm UP B7 & SE 1150 Christian Bucila
19 W 7:30-8:20pm UP B7 & UP109 Leonid Meyerguz

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 1/23, 1/30, 2/13, 2/27, 4/3,4/17, 5/1. A reminder of the section location will be posted every Monday.

Staff

Instructors: K-Y. Daisy Fan dfan@cs.cornell.edu
  Charles Van Loan cv@cs.cornell.edu
Teaching Assistants Christian Bucila cristi@cs.cornell.edu
:   Sandhya Dasu sd265@cornell.edu
  Joe Dillman jdillman@cs.cornell.edu
  Milos Hasan mhasan@cs.cornell.edu
  Jerrin Kallukalam jmk227@cornell.edu
  Michelle Li missmichelle@gmail.com
  Leonid Meyerguz leonidm@cs.cornell.edu
  Mateo Restrepo mateo@cam.cornell.edu
  Aishwarya Venkatesan av223@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:   Thursday, February 24, 7:30-9:00pm
  • Prelim 2:   Thursday, March 17, 7:30-9:00pm
  • Prelim 3:   Tuesday, April 19, 7:30-9:00pm
  • Final Exam:   Friday, May 13, noon-2:30pm
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 Notes 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/.