Course Syllabus - Introduction to Computer Programming
Intro to Computer Programming
New York University
Department of Computer Science
Course description
An introduction to the fundamentals of computer programming, which is the foundation of computer science. Students design, write, and debug computer programs. No knowledge of programming is assumed.
Credits
4 credits
Meeting pattern
Mondays/Tuesdays/Wednesdays/Thursdays 11:10-13:15
Prerequisites
None.
Fully online modality
This course is fully online, primarily via Zoom. A link to the online Zoom sessions and other hepful links will be shared via email prior to the first class.
- see the University’s helpful tips for using Zoom.
Learning objectives
Upon completing this course, students will be familiar with the fundamentals of computer programming in Python, a high-level programming language. Specific topics include:
- Introduction to Programming Languages - familiarity with the general concepts of programming, shared across many high-level programming languages
- Python basics - specific syntax and core features of the Python programming language
- Working with variables and operations - manipulating the data generated and stored in the memory of a program
- Control structures - using conditional statements and logic to control the flow of a program
- Repetition structures - using loops to repeat blocks of code
- Working with text - manipulating text using common string operations
- Functions and modules - how to make code more modular and reusable, with less repetition
- Lists - an aggregated data structure that groups together values and allows a programmer to perform batch operations on the group
- File input and output - writing and reading data to/from simple text files stored on the computer’s drive
- Dictionaries - mastery of another aggregate data structure that stores multiple key->value pairs
- Introduction to Object Oriented Programming - a light intro to the concepts of an object-orientated approach to programming
To achieve mastery in these topics, students will take quizzes and complete exercises corresponding to each lecture topic as well as a midterm and final exam.
Instructor
Amos Bloomberg
WWH 424
Department
This course is offered by the Computer Science Department. For department-related questions or concerns, please see the department’s contact information.
Textbooks
Optional
We do not teach directly from any textbook. If you do purchase a textbook, this is a recommended textbook for this course:
- Starting Out with Python (5th Edition), by Tony Gaddis. ISBN-13: 9780136912330
Additional helpful texts
- How to Think Like a Computer Scientist: Learning with Python 3
- Automate The Boring Stuff
- A Byte of Python - Swaroop C H.
- Companion Website to accompany Starting Out with Python, Third Edition by Tony Gaddis
Getting help
Help resources available to you are listed in order of urgency of your problem:
Messaging
Our course will use a message board (link to be distributed in class) as its main communication channel for announcements and discussion. This is a good place to ask questions that anyone - other students, graders, tutors, or the professor - can answer. This is a resource best used when the answer is not required urgently.
Tutoring
Tutors for this course are waiting to answer your questions, either on our message board or during dedicated tutoring hours. Use tutoring for more involved questions and when you prefer a more immediate answer.
Tutoring hours (all times in Eastern Time):
- TBD
Talk with the instructor
For any issues at all, contact the instructor:
- see me before class
- raise your hand or simply speak during class
- see me after class
- come to my open office hours (hours to be distributed in class)
Additional tutoring resources
Additional academic support is also available through the University Learning Center.
Attendance & participation
Attendance is mandatory and more than two absences may be penalized up to 10% of the total grade. In-class and online message board participation is encouraged. Anecdotally, students who do not attend class regularly and who do not participate in discussions tend to do poorly.
Required software and hardware
All students require access to a desktop or laptop computer on which they can write software using a specific set of applications.
Grading
You will receive a grade calculated mechanically on the following rubric.
- 20%: Assignments
- 20%: Quizzes
- 30%: Exam #1
- 30%: Exam #2
Attendance may be taken into account in the final grade.
Letter grades
The final class grade will be assigned as follows:
Grade Range | Letter Grade |
---|---|
93-100% | A |
90-92% | A- |
87-89% | B+ |
83-86% | B |
80-82% | B- |
77-79% | C+ |
70-76% | C |
60-69% | D |
0-59% | F |
Notification of grades
Students will be sent their complete individual grades via email approximately once per week.
Quizzes
Quizzes are completed outside of class. You must be logged into Google with your NYU Net ID account in Google in order to view the Quizzes.
Quizzes are submitted by submitting a Google Form.
Exercises
Exercises are completed outside of class. In general, there is one exercises for each main topic of lecture.
Most exercises include a set of automated tests that can be run when the student wishes to evaluate the correctness of their own work.
- We will cover how to set up and run these tests in class.
All exercises are submitted by pushing code to GitHub.
- we will cover how to use GitHub for this course, but the official GitHub Quickstart guide may be helpful.
- unless you have good reason to do otherwise, follow best-practices for all basic file names and file extensions
Late policy
All assigned work is due before class on the due date indicated on the schedule
- for every 24 hours that work is late, we apply a
10%
penalty on the grade, up to a maximum penalty of30%
. - after 72 hours, we will no longer accept the work.
Extensions
Students are automatically granted 2 late assignment extensions of up to 3 days late each, with the exception that all assignments must be submitted before the last day of regular classes before the final exam period.
- extensions must be used immediately upon submitting the work and cannot be retroactively applied later on.
- when submitting an assignment for which you would like to use one of these automatic extensions, you must notify the grader that you are using the extension, otherwise your assignment will be rejected.
- for any group work, each member of the group must use an extension (or lose points if none is available) for the entire group to submit work late.
- No additional extensions will be granted.
Regrade requests
If a student requests a regrade of any work, we will regrade the work in full, not just the part that the student believes has been mis-graded.
How to study
Everyone has their own style and way of learning. The following is a general study plan that is probably pretty good for most people but probably not perfect for anyone.
Come to class
- You can’t realistically expect to do well in a course if you don’t attend and know what is discussed.
Plan to spend significant time alone doing work for the course
- Do any required or suggested readings or video viewing, starting from the beginning
- Do all of the homework exercises yourself, starting from the beginning
- Complete 10 or more practice exercises at the end of each chapter of any of the recommended textbooks
Don’t move ahead until you’ve covered your behind:
- work progressively through the material
- only move forward once you have mastered the previous material
- get help from tutors or the instructor with specific problems you can’t solve or questions you can't answer
- try not to go to the tutors or the instructor before you have even tried to solve the problem yourself
Come to class and pay attention:
- Print out the class notes, if available, and bring them to class
- Write your own notes on this paper.
- Turn off your phone in class and when studying
- Turn off your computer in class and when studying
- Get out of the habit of Googling everything. Try to liberate yourself. Use the knowledge you have from lectures and required or suggested readings or videos to solve problems.
Review anything and everything:
- class notes
- any examples the instructor has supplied
- required or suggested readings or videos
- exercises
- quizzes
Disability disclosure statement
Academic accommodations are available for students with disabilities. Please contact the Moses Center for Student Accessibility (212-998-4980 or mosescsd@nyu.edu) for further information. Students who are requesting academic accommodations are advised to reach out to the Moses Center as early as possible in the semester for assistance.
Student wellness
In a large, complex community like NYU, it’s vital to reach out to others, particularly those who are isolated or engaged in self-destructive activities. Student wellness is the responsibility of all of us.
The NYU Wellness Exchange is the constellation of NYU’s programs and services designed to address the overall health and mental health needs of its students. Students can access this service 24 hours a day, seven days a week - wellness.exchange@nyu.edu; (212) 443-9999. Students can call the Wellness Exchange hotline (212-443-9999) or the NYU Counseling Service (212-998-4780) to make an appointment for Single Session, Short-term, or Group counseling sessions.
Academic Integrity
Working with others and leveraging all resources available to you is a prerequisite for success. This is different from copying, cheating, plagiarism, and mental laziness. All submitted work must be your own. There are very reliable systems we use to detect plagiarism in computer code, such as moss and compare50. If you submit any work that is not your own, you risk failure or worse.
Please read the Computer Science department’s policy on academic integrity and the University-wide policy which supercedes it.