Overview
TECH-UB-0027: Half-semester 10/22/2025 - 12/10/2025, M-W 3:30 PM to 4:45 PM
Undergrad concentration: Computing and Data Science
This course is the recommended second course for undergrads who know the basics of Python and want to learn structured programming and algorithms.
Prerequisites
- TECH UB-25
- Since this is a hands-on course, you must bring your laptop to every class with sufficient battery charge. Make sure you can connect to NYU wi-fi. The laptop must be capable of running Anaconda. Check their website for requirements.
Grading
- Attendance: Please read about the penalty for missing classes below.
- Fifteen Homeworks (5% * 15 = 75%)
- Final exam (25%)
Late Assignment Submission Policy
Late submissions (even by 1 minute) will get a zero score because the answers will be posted immediately after the due date and time. No extensions will be granted except for medical or family emergencies. If you have any religious or personal conflicts, please submit the assignments beforehand since the related material will be covered well in advance of the due dates.
Penalty for missing classes and unapproved use of devices in class
Paper and pencil
Please bring paper and pen/pencil to take notes in class.
Unapproved device usage
Most of us are now addicted to devices, which impedes learning. You are allowed to use devices only when I ask you to use your computer in class. Otherwise, ALL device use is strictly prohibited, unless you have a qualified disability which allows you to use devices in class. Students using devices when not approved will be asked to leave the classroom. Each time you are asked to leave the class, you will be marked absent. This is very painful, awkward, and disruptive, and I hope I never have to do this, but I will not hesitate to enforce this policy.
Reasons for requiring attendance
Attendance is required for several reasons. First, you incorrectly assume you can catch up on a missed class by watching a recording (if available). Videos do not engage your brain as much as a live class. Second, less than 20% of you watch the recording (if available). You are then lost in class, which provides the wrong signals to me as an instructor. Third, your absence hurts class discussions. Fourth, you miss out on feedback if you do not work through the questions I pose in class. Fifth, I lose the feedback since there are fewer questions.
Attendance policy enforced after the add/drop period
The attendance policy below will be in effect only after the add/drop period.
Attendance sheet
After entering the class, please mark yourself present on the OneDrive sheet within the first 20 minutes (link posted on Brightspace after the add/drop period). You will be marked absent if you are more than 20 minutes late, unless it is due to factors beyond your control (traffic, subway delays, or interviews running late). You will also be marked absent if you leave the class early unless you have my permission or get it afterward. You will get an F in the course if you are caught cheating on the attendance sheet.
Mark yourself excused on the attendance sheet for excused absences
Without mandatory attendance, attendance is often below 50%. Therefore, though I dislike doing this, I penalize absences. If you anticipate being absent for good reasons, please email me well in advance. Please enter Excused on the attendance sheet described below to avoid the penalty if approved. You must update it; I will not mark you excused. If you miss a class due to emergencies and cannot tell me in advance, do not panic. Take care of the emergency first, and then email me. I will permit you to change the Absent to Excused. But if you miss a class without a valid reason, there is a penalty, as stated below.
Penalty for missing classes
For sections meeting in 150-190 minute sessions, you will lose one grade (A to A-, A- to B+, B+ to B, B to B-, and so on) for EVERY missed session unless you were explicitly excused via email. Thus, if you miss two class sessions, you will lose two grades, and so on.
For sections meeting in 75-80 minute sessions, you will lose one grade (A to A-, A- to B+, B+ to B, B to B-, and so on) for EVERY TWO missed sessions unless you were explicitly excused via email. Thus, if you miss four class sessions, you will lose two grades, and so on.
Seating and name tags
Please sit in the same seat in every class and display your name tags. For Zoom classes, you must keep your video on AT ALL TIMES. You must also have a good working headset or mic, as it is extremely rude to be inaudible and force me to ask you to repeat yourself.
NYU Stern Policies
Please read the NYU Stern Policies for this course.
Help and Office
- Me: dgode@stern.nyu.edu, 212-998-0021, Office: KMC 10-86.
- Teaching assistant: Please check NYU Brightspace.
Administrative and System Requirements
Videotaping
Classes are normally not videotaped, except for EMBA classes. If the class is videotaped, the link is posted to Brightspace by NYU Stern IT within a day.
Registered Students Only
Only registered students can attend classes. I cannot override this NYU Stern rule. We do not allow unregistered students to "audit" a class.
Albert and NYU Brightspace
You must be in Albert and NYU Brightspace before starting the first class. If you register late, there might be a delay of a day before you appear in these systems. If you cannot access these systems after a day, please contact the relevant REGISTRAR. I cannot add you to these systems regardless of what someone in IT tells you.
Computer Requirements
You need to bring a computer to every class. If you have any technical questions, please contact Stern IT at (212-998-0180) or servicedesk@stern.nyu.edu, or NYU IT at +1 (212) 998-3333 or askit@nyu.edu. I cannot help you with your computer issues.
Materials
- I use my materials. Therefore, no textbook is required, and you need not purchase anything.
Topics
Week 1: Review and Functions
Session 1: Review of Python Basics
- Variables, data types, control structures
- Loops: condition-controlled, count-controlled, nested loops
- Basic data structures (lists, dictionaries), multidimensional lists
Session 2: Functions in Depth
- Writing and using functions
- Function parameters and return values
Week 2: Debugging and Problem Solving
Session 1: Debugging Techniques
- Common errors and how to fix them
- Using print statements for debugging
- Basics of exception handling using try, except, finally blocks
- Common exceptions Learning to find code documentation
Session 2: Problem-Solving Strategies
- Breaking down problems into steps
- Pseudocode and planning
Week 3: Modules and Code Organization
Session 1: Introduction to Modules
- Importing and using modules
- Creating simple modules
Session 2: Structuring Code
- Organizing code into files
- Basic project structure
- Basics of version control system (Git)
Week 4: Introduction to Object-Oriented Programming
Session 1: Classes and Objects Basics
- Defining simple classes
- Creating and using objects
Session 2: Methods and Attributes
- Adding methods to classes
- Using attributes
Week 5: Basic Algorithms and Complexity
- Basic searching (linear search)
- Simple sorting (bubble sort)
- Introduction to algorithm complexity (Big O notation)
Week 6: Data Structures
Session 1: Advanced Lists and Dictionaries (Hash tables)
- Advanced list operations
- Dictionary methods and uses
Session 2: Trees Basics
- Introduction to binary trees
- Basic operations on binary trees
Week 7: Graphs
- Introduction to graphs
- Simple graph traversal algorithms (BFS, DFS)