Course Syllabus

Course:  CS 1112 Introduction to Computing Using MATLAB (4 credits)

Instructor: K.-Y. Daisy Fan

Co- or Pre-requisite: MATH 1110, MATH 1910, or equivalent. Assumes student is comfortable with mathematics (at level of one semester of calculus) but has no prior programming experience.

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.

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.

Expected Outcomes

In CS1112, students will acquire the following skills:

  • Be fluent in the use of procedural statements--assignments, conditional statements, loops, function calls--and arrays.
  • Be able to design, code, and test small MATLAB programs that meet requirements expressed in English. This includes a basic understanding of top-down design.
  • Have knowledge of the concepts of object-oriented programming as used in MATLAB: classes, subclasses, properties, inheritance, and overriding.
  • Have knowledge of basic sorting and searching algorithms.
  • Have knowledge of basic vector computation.
  • Have a working familiarity with graphics tools in MATLAB.

Times & Places

  • Lecture:  TuTh 2:40 - 3:30pm Hollister Hall B14 Morrison Hall 146 (starting Sept 2)
  • DiscussionBring a laptop to DIS 203, 204, 205, 206, which take place in regular classrooms without computers.  DIS 201 and 202 take place in a computer lab; therefore you can, but don't have to, bring a laptop. 
    • 201 W 10:10AM - 11:00AM Upson Hall 225 (computer lab)
    • 202 W 11:20AM - 12:10PM Upson Hall 225 (computer lab)
    • 203 W 12:25PM - 1:15PM Hollister Hall 401 (classroom--bring a laptop)
    • 204 W 1:30PM - 2:20PM Hollister Hall 401 (classroom--bring a laptop)
    • 205 W 2:40PM - 3:30PM Upson Hall 152 Phillips Hall 307 (classroom--bring a laptop)
    • 206 W 3:45PM - 4:35PM Upson Hall 152 (classroom--bring a laptop)

Office and Consulting Hours

Office Hours and Consulting Hours will start on Sept 1.  Times and modality to be announced.  

Communication

Course announcements and materials will be posted on Canvas.  Assignment submission and feedback will be managed by CMS. If you have a question about course material, post it to Ed Discussion (online forum); public posts are preferred so that others can benefit from the discussion (posts can be anonymous to other students). If you need to request special accommodation or discuss something one-on-one with the instructor, please use office hours or email.

Material

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.  Refer to the University Code of Academic Integrity for further information. Ignorance of the Code is not an acceptable excuse.

Community of Learning

Cornell supports an inclusive learning environment where diversity and individual differences are respected, appreciated, and recognized as a source of strength. It is expected that students in this class will respect differences and demonstrate diligence in understanding how other peoples' perspectives, behaviors, and worldviews may be different from their own.  By participating in this course, all students and staff commit to contribute positively to our community of learning:

  • Recognize that everyone will start from different bases of knowledge. Be respectful and constructive while being critical.
  • Listen to one another and, especially during group work, actively encourage everyone to contribute.
  • Help build a lively and active learning environment:
    • Discuss questions with fellow students in lecture and discussion section--talk and listen
    • Outside of class meetings, ask and answer questions on our Ed Discussion forum, always remembering to be respectful and constructive.

Assessment

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

This course is not intended to be a competition between students, which is why we do not curve to a letter grade. Instead, our letter grades have a specific meaning:

  • A: Student has mastered the material (can become a consultant and may be recommended by the instructor to join research groups on campus seeking new students with MATLAB computing experience).
  • B: Student is strong enough to continue in further computing courses, including CS 2110, and in the CS major.
  • C: Student has adequate foundation in scientific and engineering computation but should consult with their advisor before enrolling in more advanced CS courses.

Grades of D and F are rare and typically result from missing work.

We do not set or announce hard grade boundaries. We will say that, historically, any course total over 93 is in the A range (A-, A, A+), a course total over 80 is at least in the B range, and a course total over 65 is at least in the C range.

Items that count towards your course grade include assignments (programming projects), exercises, and exams (two prelims and a final), and in-lecture questions and surveys.

  • Exercises are short programming tasks that give you practice on the topics of the week. They are assigned weekly and you get help and additional instructions on them during your discussion section. Exercises are "graded" mostly on effort. You are encouraged to collaborate with discussion section classmates but you will submit your work as an individual.
  • Projects are medium-size programming assignments through which you synthesize the knowledge gained in recent weeks. For most projects you may work individually or with one partner (you may have a different partner on different assignments). 
    • You may drop your lowest project score provided that you scored at least 50% on that project. This helps accommodate an unusual, difficult situation without having to justify the circumstances to the instructor, so long as the submission still reflects a reasonable amount of effort. Submissions will be accepted one day late with penalty.
  • Exams:  You must write the exams at their scheduled times unless University-allowed accommodations have been granted and discussed with the instructor at least two weeks before the exam in question.
  • In-lecture questions 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" (after Sept 9th).

Your course score is computed using the following weights:

Exercises 4%
Projects 30%
Prelim 1 20%
Prelim 2 20%
Final Exam 25%
Other (lecture questions, surveys) 1%

With the "S/U" grade option, you need a "C-" or better (determined as stated above) in order to receive an "S".

Accommodation

For Students with Disabilities: Your access in this course is important to us. Please request your accommodation letter early in the semester, or as soon as you become registered with Student Disability Services (SDS), so that we have adequate time to arrange your approved academic accommodations.

  • Once SDS approves your accommodation letter, it will be emailed to both you and the instructor. Please follow up with the instructor to discuss the necessary logistics of your accommodations.
  • If you are approved for exam accommodations please consult with the course instructor at least two weeks before the scheduled exam date to make the alternative testing arrangements.
  • If you need an immediate accommodation, please contact the course instructor by email and SDS at sds_cu@cornell.edu.
  • If you have, or think you may have a disability, please contact Student Disability Services for a confidential discussion: sds_cu@cornell.edu, 607-254-4545, https://sds.cornell.edu/.

For Physical and Mental Health: If your physical or mental health prevents you from completing required work, email the course instructor as soon as possible to make an alternative arrangement for the missed work.  (Remember: you can drop one low project score so long as you made a good attempt given your condition).

Schedule and Topics (subject to change)

    • Weeks 1-3: Fundamentals and procedural programming: variables & assignment, conditionals, loops
    • Weeks 4 & 5: Developing algorithms, user-defined functions, and memory
    • Weeks 6-8: Simple data structure and application: single and multi-dimensional arrays, image processing
    • Weeks 9 & 10: Special types and application: text character, cell, manipulating text data files
    • Weeks 11-13: Object oriented programming: custom type through class definition, array of objects, introduction to inheritance
    • Weeks 13 & 14: Recursion; algorithms for sorting and searching, including divide-and-conquer

    Alongside the above topics, throughout the course we will practice the skills of problem analysis and decomposition as well as testing and debugging.

Copyright Notice

All materials distributed in this course are copyrighted and may not be distributed further.  They are intended for your sole use and may not be posted on any public or private website, or by any other sharing method (e.g. fraternity/sorority exam files).

Copyright © 2021 K.-Y. Daisy Fan