CS-UY 1114 Fall 2020 Syllabus
CS-UY 1114 Fall 2020 Syllabus
CS-UY 1114 Fall 2020 Syllabus
Fall 2020
Email Address
Callahan ejc369@nyu.edu
Reeves dr3218@nyu.edu
Office Hours:
Office Hours
Callahan By appointment, please contact via email
Reeves Tuesdays 2pm - 5pm and by appointment
Course Description This course introduces problem-solving and computer programming and is for
undergraduate Computer Science and Computer Engineering majors who have limited prior experience in
programming in any language. The course covers the fundamentals of computer programming and its
underlying principles using the Python programming language. Concepts and methods introduced in the
course are illustrated by examples from various disciplines. In addition to the lectures, you must be
registered for one of the course lab sections.
Course Objectives - By successfully completing this course, you will be able to demonstrate
an ability to identify, formulate, and solve complex engineering problems by applying principles of
engineering, science, and mathematics
an ability to apply engineering design to produce solutions that meet specified needs with consideration
of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic
factors
an ability to develop and conduct appropriate experimentation, analyze and interpret data, and use
engineering judgment to draw conclusions, and
an ability to recognize ethical and professional responsibilities in engineering situations and make
informed judgments, which must consider the impact of engineering solutions in a global, economic,
environmental, and societal context
Course Structure
This course includes 2 weekly lecture sections and a weekly lab section.
Readings
The required text for the course is: How to Think Like a Computer Scientist, Interactive Edition, 2020, by
Miller et. al.
This interactive, web-based textbook developed by Runestone Interactive LLC will be used in the course for
this semester. You will receive an email invitation to create an account in order to access and use this
resource. Referenced in Reading section as thinkcspy.
The first 3 weeks of class will focus on an introduction to programming using Karel the Robot developed at
Stanford University to teach programming to beginner programmers. The course reader for Karel is: Karel
the Robot Learns Python, 2019, by Piech and Roberts, Department of Computer Science, Stanford
University. The text can be accessed here. Permission to use this material has been provided by the
document's authors. The readings assigned from this course reader are not required to be completed but
completion prior to class is strongly recommended. Referenced in Reading section as karel.
An (optional) textbook that has been used in previous semesters is: The Practice of Computing Using
Python, 3rd Edition, 2016, by Punch and Enbody, Pearson Inc, ISBN 0-13-437976-4
Resources
Required software for this course: You will need a Python editor (PyCharm is recommended for this course)
and interpreter (Python 3). The first assignment (Assignment 0) will guide you through setting up a
programming environment for use in this course.
The Student Response System (SRS) will be heavily utilized in this course. Every student should have a
subscription. It is recommended that you activate your account prior to the first class meeting. Your
participation in using the Student Response System is completely voluntary. However, using this system
as a student in this class helps to make lecture sessions more interactive, reinforces understanding of the
course material, and allows your professor to monitor understanding of the course material. Therefore,
participation in this portion of the course instruction is highly recommended. If you are having any trouble
with setting up or accessing your SRS account, please contact tandonSRS@nyu.edu.
Course Assessments
Reading: 10% - Readings assigned from thinkcspy (with the exception of the suggested reading for
the first class meeting on September 2nd) are required to be completed by the end of the day for
which the reading is assigned. Required reading for a given class meeting will be posted to the
Course Schedule at least one week prior to the scheduled class. Readings from thinkcspy will not
be required before September 21st. The required readings will be evaluated for completion but it is
in your best interest to give your best effort on the questions encountered in the reading. This effort
will only serve to help your understanding of the course material.
Lab: 15% - Weekly lab assignments are given each week. You will have 24 hours to complete the lab
assignment once released to your section. Teaching assistants will be available to provide
assistance at scheduled times during the 24-hour period. You may discuss your work with other
students and with teaching assistants. Your grade is based on completion and effort. All lab grade
disputes must be addressed no later than two weeks following the lab in question or the date of the
final exam, whichever comes first.
Highest exam: 10% - Note that your most successful exam carries more weight toward
your final grade than the other exams.
Tutoring
In addition to help from the course TAs, you may wish to seek tutoring help from the
Polytechnic Tutoring Center (PTC). Free, unlimited tutoring will be offered to
Tandon students starting on September 14th. PTC is a student-centered, walk-in tutoring
center. The PTC schedules for this semester is shown below. This is a great resource that you
should utilize for additional help in the course. Details on how the PTC will operate this semester
can be found here.
thinkcspy: Ch. 1
9/2 Introduction to Course and Karel
karel: Ch. 1
karel: Ch.
9/9 Karel - Functions/Control structures
2,3,4,6,7
Assignment #1
9/14 Karel - Function decomposition karel: Ch. 8
Out
Karel - Program style/Advanced control
9/16
structures
9/21 Input/Output, Variables, Values
Date Topic Reading Assignment
9/23 Types, Operators, and Expressions
Assignment #1 Due (9/25)
Assignment #2
9/28 Turtle and for loops
Out
9/30 Function parameters and The return statement
10/5 Sequence types/Strings 1
10/7 Strings II
Assignment #2 Due (10/9)
Assignment #3
10/12 Using modules and Variable scope
Out
10/14 Lists and Tuples I
10/19 Lists and Tuples II
Midterm 1 (10/20)
10/21 Type conversion
Assignment #3 Due (10/23)
Assignment #4
10/26 Command-line arguments
Out
10/28 Files, File I/O, and Exceptions I
11/2 Files, File I/O, and Exceptions II
11/4 Dictionaries I
Assignment #4 Due (11/7)
Assignment #5
11/9 Dictionaries II
Out
11/11 Binary representation and other number systems
11/16 Object-Oriented Programming
Midterm 2 (11/17)
11/18 OOP: Classes and objects I
Assignment #5 Due (11/20)
Assignment #6
11/23 OOP: Classes and objects II
Out
11/25 OOP: Attributes and methods
11/30 Sets I
12/2 Sets II
12/7 Comprehensions
12/9 Beyond CS 1114
Assignment #6 Due (12/11)
Moses Center Statement of Disability
If you are a student with a disability who is requesting accommodations, please contact
New York University’s Moses Center for Students with Disabilities (CSD) at
212-998-4980 or mosescsd@nyu.edu. You must be registered with CSD to receive
accommodations. Information about the Moses Center can be found at
www.nyu.edu/csd. The Moses Center is located at 726 Broadway on the 3rd floor.
NYU School of Engineering Policies and Procedures on Academic Misconduct –
complete Student Code of Conduct here
2. Fabrication: including but not limited to, falsifying experimental data and/or citations.
5. Duplicating work: presenting for grading the same work for more than one project or
in more than one class, unless express and prior permission has been received from
the course instructor(s) or research adviser involved.
6. Forgery: altering any academic document, including, but not limited to, academic
records, admissions materials, or medical excuses.
NYU School of Engineering Policies and Procedures on Excused Absences – complete policy here
A. Introduction: An absence can be excused if you have missed no more than 10 days of
school. If an illness or special circumstances cause you to miss more than two weeks of
school, please refer to the section labeled Medical Leave of Absence.
1. Medical reasons
The last day of the final exam period is December, 21st 2020. Final exam dates for
undergraduate courses will not be determined until later in the semester. If you have
two final exams at the same time, report the conflict to your professors as soon as
possible.
Also, please pay attention to notable dates such as Add/Drop, Withdrawal, etc. For
confirmation of dates or further information, please contact Susana Garcia-Henriquez
sgarcia@nyu.edu
Additional Policies
Communication
We may occasionally use email to make class announcements. It is your responsibility to check
your NYU email account regularly. Assignments will typically be posted on NYU Classes. It is your
responsibility to check NYU Classes for assignments and to submit your work there in a timely
manner.
Final Exam
Final exams will be held during the week of December 15th - 21st. Exact times will be announced by
NYU at a later date. We are unable to provide earlier final exams. If you have another final exam that
conflicts with this exam, please notify your instructor ASAP.
Late Policy
In general, we do not accept late assignments and do not offer substitute times for exams.
Documented special cases may be considered.