Course:  Introduction to Computing Using MATLAB (4 credits) 
Instructor:  K.Y. Daisy Fan 
Website:  http://www.cs.cornell.edu/courses/cs1112/2014fa 
Alternative:  CS1110 (Python) 
Forbidden Overlap:  Credit is given for only one of CS 1112, CS 1114, CS 1115, and BEE 1510. Due to a partial overlap in content, students will receive 6 credits instead of 8 if they take CS 1112 and CS 1110. Students will receive 5 credits instead of 6 if they take CS 1142 and CS 1110. 

1  
2 
Instructor  
201  T  12:20PM  1:10PM  UPS B7 & HLS 314  Alex Maass 
202  T  1:25PM  2:15PM  UPS B7 & HLS 401  Danny Sperling 
203  T  2:30PM  3:20PM  UPS B7 & HLS 401  Tommy Ashmore 
204  T  3:35PM  4:25PM  UPS B7 & HLS 401  Alex Maass 
205  W  10:10AM  11:00AM 
UPS B7 & HLS 401 
Dana Warmsley 
206  W  11:15AM  12:05PM 
UPS B7 & HLS 401 
Dana Warmsley 
207  W  12:20PM  1:10PM 
UPS B7 & HLS 401 
Tommy Ashmore 
208  W  1:25PM  2:15PM  UPS B7 & HLS 401  Danny Sperling 
209  W  2:30PM  3:20PM  UPS B7 & HLS 401  Dana Warmsley 
210  W  3:35PM  4:25PM  UPS B7 & HLS 401  La Vesha Parker 
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:  Thomas Ashmore  tba24 at cornell.edu 
Alex Maass  am838 at cornell.edu  
La Vesha Parker  ldp47 at cornell.edu  
Daniel Sperling  dhs252 at cornell.edu  
Dana Warmsley  dw457 at cornell.edu 
See CS1112 > Staff for other course staff and office hours.
Optional software: MATLAB Student Version (2008 or later)
Items that count towards your course grade include homework (programming projects), discussion/lab exercises, quizzes, and exams (prelims and final).
Exercises (E)  =  4% (discussion exercises) 
Quizzes (Q)  =  1% (in lecture) 
Projects (P)  =  25% 
Prelim 1 (T1)  =  20% 
Prelim 2 (T2)  =  20% 
Final (F)  =  30% 
Exercises (E)  =  9% (discussion exercises) 
Quizzes (Q)  =  1% (in lecture) 
Projects 13 (P)  =  40% 
Prelim 1 (T1)  =  50% 
Your course grade will follow the "cutoff" 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+
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/26 T  Introduction 
Slides
Syllabus 
  Preface & Software sections 
2  8/28 Th  Programming basics 
Preview
Slides 
sphereArea.m, diffArea.m  1.1 
3  9/2 T  Conditionals 
Preview
Slides 
  1.2 
4  9/4 Th  Nested conditionals; logical operators 
Preview
Slides 
quadMin.m, quadMinGraph.m  1.2 
9/4 Th  Project 1 due  
5  9/9 T  Iteration: for 
Preview
Slides 
stickExp.m, showForLoop.m, ave10.m, mcPi.m  2.1 
6  9/11 Th  Iteration: while 
Preview
Slides 
areaCircle.m, Eg2_2.m from Insight, areaIndef.m DrawRect, DrawStar from Insight, DrawDisk.m drawDemo.m,  2.2, 3.2 
7  9/16 T  Developing algorithms; nested loops 
Preview
Slides 
DrawRect, DrawStar from Insight, DrawDisk.m drawDemo.m, nestedStars.m moreNestedStars.m, isItPrime.m, areTheyPrime.m, table.m  3.1 
8  9/18 Th  Userdefined functions 
Preview
Slides 
polar2xy.m, dotsInRings.m, randDouble.m, drawColorDot.m  5.1, 5.2 
9/18 Th  Project 2 due  
9  9/23 T  Executing a userdefined function 
Preview
Slides 
dotsInRings.m, randDouble.m, polar2xy.m  5.3 
10  9/25 Th  Probabilities and Averages; vectors 
Preview
Slides 
plotComparison2.m, rollDie.m, rollDieV1.m  6.1 
11  9/30 T  Simulation; vectors 
Preview
Slides 
RandomWalk2D.m, ShowRW.m, RandomWalk2D_v2.m, ShowRW2.m, Centralize_nonvec.m, Normalize_nonvec.m, Smooth.m, ShowSmooth.m  6.2, 6.3 
12  10/2 Th  Discrete vs. continuous; linear interpolation 
Preview
Slides 
xenoDisks.m, threeFadingDisks.m fadingXenoDisks.m, rowsOfXenoDisks.m  4.14.3 
Project 3 due  
13  10/7 T  2d Arraysmatrix 
Preview
Slides 
plotComparison.m, minInMatrix.m  7.1 
14  10/9 Th  Matrix examples 
Preview
Slides 
RandomLinks.m, CirclePoints.m, ShowRandomLinks.m Cheapest.m, ShowCheapest.m  7.2, 7.3 
10/11  10/14  Fall break  
15  10/16 Th  Working with Images 
Preview
Slides 
pictureFrame.m, pictureFrame2.m, pictureFrameV.m, showMirror.m, LawSchool.jpg, bwduck.jpg  12.1, 12.2 
10/16 Th  Prelim 1 at 7:30pm  
16  10/21 T  Working with Images 
Preview
Slides 
showToGrayscale.m, medVal.m, MedianFilter.m, showFilter.m, Edges.m, LawSchoolNoise.jpg  12.4 
17  10/23 Th  Characters and strings 
Recording Printable 
caps.m, toUpper.m removeChar_loop.m, censor.m, showCensor.m  9.1 
Project 4 due  
18  10/28 T  Cell arrays 
Recording Printable 
CardDeck.m, Deal.m, Shuffle.m RomanNum.m, RN2Int.m, matchIDs.m, ShowMatchIDs.m  8.1 
19  10/30 Th  Working with numeric/text data (file I/O) 
Recording Printable 
file2cellArray.m, cellArray2file.m proteinXYZData.m population.m, statePop.txt  9.2, 11.1, 11.2 
20  11/4 T  Structures and structure arrays 
Preview
Slides 
MakePoint.m, DrawLine.m, PickUpStix.m, CirclePoints.m, DrawPoints.m, DrawTriangle.m, LotsaTriangles.m,  10.110.3 
21  11/6 Th  Objects and Classes 
Preview
Slides 
ShowIndices.m, demoPlotObj.m   
11/6 Th  Project 5 due  
22  11/11 T  Class definitionproperties & methods 
Preview
Slides 
Interval.m, demoInterval1.m   
23  11/13 Th  Overloading, array of objects, constructor that handles variable number of args 
Preview
Slides 
Interval.m, intervalArray.m, biggestInterval.m, LocalWeather.m, ithacaWeather.txt   
11/13 Th  Prelim 2 at 7:30pm  
24  11/18 T  Why OOP? Private vs. public, Inheritance 
Preview
Slides 
Interval.m  OOP syntax summary 
25  11/20 Th  Inheritance 
Preview
Slides 
Die.m, TrickDie.m, demoDice.m   
26  11/25 T  Recursion 
Preview
Slides 
removeChar_loop.m, removeChar.m, removeChar2.m MeshTriangle.m, showMeshTriangle.m,  14.1, 14.2 
11/26  11/30  Thanskgiving Break  
27  12/2 T  Sorting and Searching 
Preview
Slides 
InsertionSort.m, ShowInsertionSort.m, InsertionSortIntervals.m, demoSortIntervals.m, see Interval.m and intervalArray.m from previous lectures. binarySearch.m, showBinarySearch.m  9.1, 9.2 
28  12/4 Th  Divide and Conquer: merge sort 
Preview
Slides 
mergeSort.m, merge.m, showMergeSort.m, comopareInsertMerge.m, insertSortInplace.m,  8.2, 9.3 
12/4 Th  Project 6 due  
TBA  Final Exam 