CS1112 --> Syllabus
Course: Introduction to Computing Using MATLAB (4 credits)
Instructor: K.-Y. Daisy Fan
Website: http://www.cs.cornell.edu/courses/cs1112/2012fa
Alternatives: CS1110 (Python), CS1114 (Matlab + Robotics, Spring only), CS1115 (Matlab + GUI, Fall only).

Course Description Expected Outcomes Academic Integrity Times & Places Staff Material Grades Special Accommodation Schedule

Course Description

4 credit hours. S/U Optional. Programming and problem solving using MATLAB. Emphasizes the systematic development of algorithms and programs. Topics include iteration, functions, arrays and vectors, strings, recursion, algorithms, object-oriented programming, and MATLAB graphics. Assignments are designed to build an appreciation for complexity, dimension, fuzzy data, inexact arithmetic, randomness, simulation, and the role of approximation.
CS1142 co-meets with CS1112 for the first seven weeks of the semester. CS1142 will have the same lecture, discussion, homework, and prelims as CS1112 during the first seven weeks of the semester. CS1142 carries 2 credits.

Expected Outcomes

In CS1112, 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 and 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

Hollister B14
Hollister B14
201 T 12:20PM - 1:10PM UPS B7 & HLS 314 Peter Greenberg
202 T 1:25PM - 2:15PM UPS B7 &HLS 314 Hyundo Reiner
203 T 2:30PM - 3:20PM UPS B7 & HLS 401 Andrew Robbins
204 T 3:35PM - 4:25PM UPS B7 & HLS 401 Andrew Robbins
205 W 10:10AM - 11:00PM UPS B7 & HLS 401
Chen Wang
206 W 11:15AM - 12:05PM UPS B7 & HLS 401
Chen Wang
207 W 12:20PM - 1:10PM UPS B7 & HLS 401
Wenceslaus Lee
208 W 1:25PM - 2:15PM UPS B7 & HLS 401 Michael Flashman
209 W 2:30PM - 3:20PM UPS B7 & HLS 314 Danny Sperling
210 W 3:35PM - 4:25PM UPS B7 & HLS 314 Michael Flashman

Upson B7 is a computer lab. (UPS B7 is split in half; we will use the right half.)  The first two weeks and then every other week, discussion will take place in the lab instead of the regular classrooms. A reminder of the section location will be posted every Monday.


Instructor: K.-Y. Daisy Fan dfan at cs.cornell.edu
Teaching Assistants: Michael Flashman mtf53 at cornell.edu
  Peter Greenberg prg53 at cornell.edu
  Wenceslaus Wen-Hao Lee wwl45 at cornell.edu
  Hyundo Reiner hpr6 at cornell.edu
  Andrew Robbins abr74 at cornell.edu
  Chen Wang cw636 at cornell.edu
  Bin Xu bx55 at cornell.edu

See CS1112 --> Staff for other course staff and office hours.


Required material:

Optional software:   MATLAB Student Version (2008 or later)


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

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

  • CS1112 students are allowed to drop one project (e.g., you added the course late, you submitted the wrong file, your partner forgot to submit your joint work, your dog ate your flash drive, etc.). CS1142 students may not drop any projects.
  • Discussion exercises are assigned and checked in discussion only. CS1112 students may have two non-excused absences; CS1142 students may have one non-excused absence.
  • In-class quizzes usually are done using clickers. For each question,
    • earn one point for submitting an answer
    • earn another point for getting the correct answer
    You will get full credit (1% of course grade) if you earn half of the maximum possible number of quiz points. We will start counting the questions as quiz questions after the "Add deadline," end of week 3.
  • CS1112 uses the following weights to determine the course grade:
    Exercises (E)  =   4% (discussion exercises)
    Quizzes   (Q)  =   1% (in lecture)
    Projects  (P)  =  25%
    Prelim 1  (T1)  =  20%
    Prelim 2  (T2)  =  20%
    Final     (F)  =  30%

  • CS1142 uses the following weights to determine the course grade:
    Exercises    (E)  =   9% (discussion exercises)
    Quizzes      (Q)  =   1% (in lecture)
    Projects 1-3 (P)  =  40%
    Prelim 1     (T1)  =  50%
    Prelim 1 is the only exam in CS1142.

Your course grade will follow the "cut-off" structure given below. You need an overall score higher than 55 (out of 100) to get a "D" ("marginal pass"). Note that your College (or Major) may require a "C-" to be a passing grade. We reserve the right to make adjustments both up and down based on our knowledge of each student.

     Overall score    Letter grade
        > 93           A-, A, A+ 
        > 80           B-, B, B+
        > 65           C-, C, C+

Special Accommodation

You must write all prelims and the final exam at their scheduled time unless your request for special accommodation (medical reason, disability-related, or exam conflicts as posted on the University exam schedule) has been approved beforehand. Any request for exam-taking accommodation must be made at least two weeks before the exam, with documentation from Student Disability Services if appropriate. If you have an illness that prevents you from completing required work, email the course instructor as soon as possible to make an alternative arrangement for submiting or making up the work.

Schedule and Lecture Materials

Topics and the course schedule are given below. Selected lecture slides and example code will be posted after each lecture. These posted files are not complete transcripts of the lectures. You are expected to attend lecture and to take notes for yourself. Topics and dates are subject to change.

No. Date Topics Lecture Slides Program Examples Reading (Insight)
1 8/23 R Introduction Selected slides - Preface & Software sections
2 8/28 T Programming basics Preview
Selected slides
sphereArea.m, diffArea.m 1.1
3 8/30 R Conditionals Preview
Selected slides
- 1.2
4 9/4 T Nested conditionals; logical operators Preview
Selected slides
quadMin.m, quadMinGraph.m 1.2
5 9/6 R Iteration: for Preview
Selected slides
stickExp.m, showForLoop.m, ave10.m, mcPi.m 2.1
  9/6 R Project 1 due
6 9/11 T Iteration: while Preview
Selected slides
areaCircle.m, areaIndef.m   2.2, 3.2
7 9/13 R Developing algorithms; nested loops Preview
Selected slides
DrawRect, DrawStar from Insight, DrawDisk.m drawDemo.m, nestedStars.m moreNestedStars.m, isItPrime.m, areTheyPrime.m, table.m 3.1
8 9/18 T User-defined functions Preview
Selected slides
polar2xy.m, dotsInRings.m, randDouble.m, drawColorDot.m 5.1, 5.2
9 9/20 R Executing a user-defined function Preview
Selected slides
dotsInRings.m, randDouble.m, polar2xy.m 5.3
  9/20 R Project 2 due
10 9/25 T Probabilities and Averages; vectors Preview
Selected slides
rollDie.m, rollDieV1.m 6.1
11 9/27 R Simulation; vectors Preview
Selected slides
Twinkle.m, RandomWalk2D.m, ShowRW.m, RandomWalk2D_v2.m, ShowRW2.m, Centralize.m, Normalize.m,   6.2, 6.3
  10/1 M Project 3 due
12 10/2 T Discrete vs. continuous; plotting Preview
Selected slides
xenoDisks.m, threeFadingDisks.m fadingXenoDisks.m, rowsOfXenoDisks.m   4.1--4.3
13 10/4 R 2-d Arrays--matrix Preview
Selected slides
plotComparison.m, minInMatrix.m, RandomLinks.m, CirclePoints.m, ShowRandomLinks.m 7.1
  10/4 R Prelim 1 at 7:30pm
  10/9 T Fall Break
14 10/11 R Matrix examples Preview
Selected slides  
Cheapest.m, ShowCheapest.m   7.2, 7.3
15 10/16 T Working with Images Recording 1.1
Recording 1.2
Recording 1.3
Username: cs1112student
Password: cs1112video Printable
pictureFrame.m, pictureFrame2.m, pictureFrameV.m, showMirror.m, showToGrayscale.m, LawSchool.jpg, bwduck.jpg 12.1, 12.2
16 10/18 R Working with Images Recording 2.1
Recording 2.2
Username: cs1112student
Password: cs1112video Printable
medVal.m, MedianFilter.m, showFilter.m, Edges.m, LawSchoolNoise.jpg 12.4
  10/22 M Project 4 due
17 10/23 T Characters and strings Preview
Selected slides
caps.m, toUpper.m 9.1
18 10/25 R Cell arrays, working with numeric/text data (file I/O) Preview
Selected slides
censor.m, showCensor.m, file2cellArray.m, cellArray2file.m   9.2, 11.1, 11.2
19 10/30 T Cell arrays Preview
Selected slides
Extra file i/o example
CardDeck.m, Deal.m, Shuffle.m RomanNum.m, RN2Int.m, matchIDs.m, ShowMatchIDs.m, population.m, statePop.txt   8.1
20 11/1 R Structures and structure arrays Preview
Selected slides
MakePoint.m, DrawLine.m, PickUpStix.m, CirclePoints.m, DrawPoints.m, DrawTriangle.m, LotsaTriangles.m, ShowIndices.m 10.1--10.3
  11/1 R Project 5 due
21 11/6 T Objects and Classes Preview
Selected slides
demoPlotObj.m, Interval.m, demoInterval1.m    
  11/6 T Prelim 2 at 7:30pm
22 11/8 R Class definition--properties & methods, overloading Preview
Selected slides
Interval.m, demoInterval2.m    
23 11/13 T Array of objects, constructor that handles variable number of args Preview
Selected slides
Interval.m, intervalArray.m, biggestInterval.m, LocalWeather.m, ithacaWeather.txt  
24 11/15 R Why OOP? Private vs. public, Inheritance Preview
Selected slides
Interval.m, Die.m, TrickDie.m, demoDice.m  
25 11/20 T Recursion Preview
Selected slides
removeChar_loop.m, removeChar.m   14.1, 14.2
  11/22 R Thanksgiving Break
26 11/27 T Sorting and Searching Preview
Selected slides
InsertionSort.m, ShowInsertionSort.m, InsertionSortIntervals.m, demoSortIntervals.m, see Interval.m and intervalArray.m from previous lectures   8.2
27 11/29 R Divide and Conquer Preview
Selected slides
binarySearch.m, showBinarySearch.m, mergeSort.m, merge.m, showMergeSort.m 9.1, 9.2, 9.3
  11/29 R Project 6 due
  12/7 F Final Exam at 9am