CS1112 --> Syllabus
Course: CS1112 Introduction to Computing Using MATLAB (4 credits)
Instructor: K.-Y. Daisy Fan
Website: http://www.cs.cornell.edu/courses/cs1112/2016fa
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.

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. NO programming experience is necessary; some knowledge of Calculus is required.
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

Lecture
Days
Time
Room
Instructor
      1
T, Th
9:05am-9:55am
Hollister B14
Fan
      2
T, Th
11:15am-12:05pm
Gates G01
Fan
Discussion
Days
Time
Room
Instructor
201 T 12:20PM - 1:10PM HLS 464 (lab) & HLS 401 Rohit Biswas
202 T 1:25PM - 2:15PM HLS 464 (lab) & HLS 401 Mandy Mengqi Xia
203 T 2:30PM - 3:20PM HLS 464 (lab) & HLS 401 Jeannie Fu
204 T 3:35PM - 4:25PM HLS 464 (lab) & HLS 401 Jeannie Fu
205 W 10:10AM - 11:00AM HLS 464 (lab) & HLS 401
Hassan Haseeb
206 W 11:15AM - 12:05PM HLS 464 (lab) & HLS 401
Sara Venkatraman
207 W 12:20PM - 1:10PM HLS 464 (lab) & HLS 401
Mandy Mengqi Xia
208 W 1:25PM - 2:15PM HLS 464 (lab) & HLS 401 Sara Venkatraman
209 W 2:30PM - 3:20PM HLS 464 (lab) & HLS 401 Wayne Uy
210 W 3:35PM - 4:25PM HLS 464 (lab) & HLS 401 Rohit Biswas

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.

Staff

Instructor: K.-Y. Daisy Fan dfan at cs.cornell.edu
     
Teaching Assistants: Rohit Biswas rb625 at cornell.edu
  Jeannie Fu jf586 at cornell.edu
  Hassan Haseeb hbh47 at cornell.edu
  Wayne Isaac Uy wtu4 at cornell.edu
  Sara Venkatraman skv24 at cornell.edu
  Mandy Mengqi Xia mx83 at cornell.edu

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

Material

Required material:

Optional software:   MATLAB Student Version (2008 or later)

Grades

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).

  • Homework projects
    • CS1112 students may drop one project for the purpose of course grade calculation provided that they scored at least 50% on that project. A project score below 50% cannot be dropped.
      Rationale: Dropping a poor project score helps deal with an unusual, difficult situation, e.g., you have an extraorinarily busy week that results in your giving less effort than usual on a homework project. However, in order to discourage students from simply skipping a project or just doing a superficial job on it, a project must reflect a reasonable amount of effort--defined for this purpose as 50%--in order to be eligible to be dropped.
      Example 1: Your six project scores (each out of 10) are 9, 10, 9, 5.2, 9, and 8. Then your average project score for final grade calculation is 45/5=9.0--the lowest score, which is at least 50%, is dropped.
      Example 2: Your six project scores (each out of 10) are 9, 10, 9, 2.2, 9, and 8. Then your average project score for final grade calculation is 47.2/6=7.9--the lowest score is not dropped.
    • CS1142 students may not drop any projects.
    • You may submit a homework project up to 24 hours late with a small penalty; see the Projects page for details.
  • Discussion exercises are assigned and checked in discussion. 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 2.
  • 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.

     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 the missed 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 T Introduction Slides
Syllabus
Recording
- Preface & Software sections
2 8/25 Th Programming basics Preview
Slides
Recording
sphereArea.m, diffArea.m 1.1
3 8/30 T Conditionals Preview
Slides
Recording
- 1.2
4 9/1 Th Nested conditionals; logical operators Preview
Slides
Recording
quadMin.m, quadMinGraph.m 1.2
  9/1 Th Project 1 due
5 9/6 T Iteration: for Preview
Slides
Recording
stickExp.m, showForLoop.m, ave10.m, mcPi.m 2.1
MatTV: Troubleshooting Loops
6 9/8 Th Iteration: while Preview
Slides
Recording
areaCircle.m, Eg2_2.m from Insight, areaIndef.m DrawRect, DrawStar from Insight, DrawDisk.m drawDemo.m,   2.2, 3.2
7 9/13 T Developing algorithms; nested loops Preview
Slides
Recording
nestedStars.m moreNestedStars.m, isItPrime.m, areTheyPrime.m, mTable.m 3.1
8 9/15 Th User-defined functions Preview
Slides
Recording
nestedLoops.m, polar2xy.m, dotsInRings.m, randDouble.m, drawColorDot.m 5.1, 5.2
  9/15 Th Project 2 due
9 9/20 T Executing a user-defined function Preview
Slides
Recording
dotsInRings.m, randDouble.m, polar2xy.m 5.3
10 9/22 Th Probabilities and Averages; vectors Preview
Slides
Recording
plotComparison2.m   6.1
11 9/27 T Simulation; vectors Preview
Slides
Recording
rollDie.m, rollDieV1.m, RandomWalk2D.m, ShowRW.m, RandomWalk2D_v2.m, ShowRW2.m, Centralize_nonvec.m, Normalize_nonvec.m, Smooth.m, ShowSmooth.m   6.2, 6.3
12 9/29 Th Discrete vs. continuous; linear interpolation Preview
Slides
Recording
xenoDisks.m, threeFadingDisks.m fadingXenoDisks.m, rowsOfXenoDisks.m   4.1--4.3
  10/3 M Project 3 due
13 10/4 T Vectorized computation, 2-d Arrays--matrix Preview
Slides
Recording
plotComparison.m, minInMatrix.m   7.1
14 10/6 Th Matrix examples Preview
Slides
Recording
RandomLinks.m, CirclePoints.m, ShowRandomLinks.m Cheapest.m, ShowCheapest.m   7.2, 7.3
  10/8 - 10/11 Fall break
15 10/13 Th Working with Images Preview
Slides
Recording
pictureFrame.m, pictureFrame2.m, pictureFrameV.m, bwduck.jpg     12.1, 12.2
  10/13 Th Prelim 1 at 7:30pm
16 10/18 T Working with Images Preview
Slides
Recording
Application: edge finding  
showToGrayscale.m, medVal.m, MedianFilter.m, showFilter.m, Edges.m, LawSchoolNoise.jpg   12.4
17 10/20 Th Characters and strings Preview
Slides
Recording
caps.m, toUpper.m, removeChar_loop.m   9.1
  10/24 M
10/26 W
Project 4 due
18 10/25 T Cell array, file input/output Preview
Slides
Recording
Extra file i/o example
censor.m, showCensor.m, CardDeck.m, Deal.m, Shuffle.m   8.1, 11.1, 11.2
19 10/27 Th Working with numeric/text data (file I/O) Preview
Slides
Recording  
population.m, file2cellArray.m, cellArray2file.m, statePop.txt   9.2, 11.1, 11.2
20 11/1 T Structures and structure arrays Preview
Slides
Recording
MakePoint.m, DrawLine.m, PickUpStix.m, CirclePoints.m, DrawPoints.m, DrawTriangle.m, LotsaTriangles.m   10.1--10.3
21 11/3 Th Objects and Classes Preview
Slides
Recording
ShowIndices.m, demoPlotObj.m   Optional viewing: MATLAB plot object (recording)
  11/3 Th Project 5 due
22 11/8 T Class definition--properties & methods Preview
Slides
Recording
Interval.m, demoInterval0.m   -
23 11/10 Th Overloading, array of objects, constructor that handles variable number of args Preview
Slides
Recording
Interval.m, intervalArray.m, biggestInterval.m, guessingGame.m   -
  11/10 Th Prelim 2 at 7:30pm
24 11/15 T Why OOP? Private vs. public Preview
Slides
Recording
LocalWeather.m, ithacaWeather.txt, Interval.m   OOP syntax summary
25 11/17 Th Inheritance Preview
Slides
Recording
Die.m, TrickDie.m, demoDice.m   -
26 11/22 T Recursion Preview
Slides
Recording 1
Recording 2 (Recording failed during lecture: Recording 1 was 2/3 of the lecture captured on 11/22. Recording 2, edited from another semester, shows the part not captured on 11/22.)
removeChar_loop.m, removeChar.m, removeChar2.m MeshTriangle.m, showMeshTriangle.m   14.1, 14.2
  11/23 - 11/27 Thanskgiving Break
27 11/29 T Sorting and Searching Preview
Slides
Recording
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/1 Th Divide and Conquer: merge sort Preview
Slides
Recording
mergeSort.m, merge.m, showMergeSort.m, comopareInsertMerge.m   8.2, 9.3
  12/1 Th Project 6 due
  12/7 W Final Exam for BOTH Lec1 AND Lec 2 (Date given in Student Center for Lec2, 12/15, is wrong)