Please contact NYU IT (, 212-998-3333) or NYU Stern IT (, 212-998-0180) for all Zoom/email/NYU Brightspace/Admin/CapitalIQ issues. Please do not copy/contact me. Brightspace and NYU groups send all emails to the (not address, while Stern class mail lists send emails to You must check BOTH emails and use the correct browser profile. Please contact IT to figure this out.


Fall 2023:

TECH-UB-0023 003: M-W 2:00 PM to 3:15 PM

TECH-UB-0023 004: M-W 3:30 PM to 4:45 PM

Undergrad TECH-UB-0023 concentration: Computing and Data Science

Undergrad tracks:

Based on the outline of the course taught by Prof. Panos Ipeirotis

This course is the recommended first course for undergrads who 1) want to work in the rapidly growing fields of data science and data analytics or 2) who want to acquire the technical and data analysis skills needed in other disciplines such as finance and marketing. The course provides an introduction to programming (using Python) and covers the collection, storage, organization, management, and analysis of data, both structured (record-based) and unstructured (such as text).

Course Objectives

At a very high level, the course will teach you Python and SQL, plus a few Unix tools that are useful for everyday data handling and processing. At the completion of this course, you should:

Software that we will not use or cover

Help and Office


Projects follow-up course

There is a follow-up course titled “Projects in Programming for Data Science”, which covers the topics covered here in more depth as well as additional topics, such as web crawling, text analysis, regular expressions, background processing, visualizations, network analysis, etc. Those interested in deepening and broadening their programming experience are highly encouraged to take the follow on course.



Important Information

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.

Attendance and penalty for missing classes

Requiring attendance is necessary 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 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.

The policy below will be in effect only after the add/drop period.

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 I approve. 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.

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.

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. After entering the class, please mark yourself present in the first 20 minutes on the OneDrive sheet (link posted on Brightspace). You will be marked absent if you are more than 20 minutes late unless it is because of factors beyond your control (traffic, subway, 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.


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.


I will distribute Jupyter notebooks. There is required textbook for the course, but the following books are a useful reference for some of the material that I will be covering in class.

Course policies

Unless otherwise noted, we follow the default Stern Policies. Classes are videotaped and a link is posted to NYU Brightspace under the MediaSite tab.

Frequently Asked Questions

Tentative Timeline

Module Topic
  • Introduction and setup: Setting up an EC2 instance

    1. Elastic IP, shutdown & restart
    2. Sync notebooks / Upgrade libraries
    3. Download and upload data

    Running the first Python program

  • Primitive Data Types: Variables, and Numerics
  • Strings and String formatting: Special characters, indexing, slicing, basic functions
  • Strings and String formatting (cont)
  • Booleans and “if-then-else” control flow statements
  • Lists
  • Sets and dictionaries
  • Control Flow statements: while loops, for loops
  • Control Flow statements: while loops, for loops
  • Interacting with Files
  • Functions
  • Interacting with Files
  • Functions
  • Entity-Relationship model: Entities, keys, attributes, relations, ER examples
  • Entity-Relationship model: ER diagrams to SQL Tables
  • SQL 1: Select statements
  • SQL 2: LIKE, IS NULL, and Inner Join queries
  • SQL 3: Inner Join II and Outer Join
  • SQL 4: Aggregation / GROUP BY queries
  • SQL 5: Subqueries / Python and SQL
  • Database integrative class practice
  • Intro to Numpy
  • Intro to Numpy
  • Intro to Pandas and Plotting
  • Intro to Pandas and Plotting
  • Intro to Pandas and Plotting
  • Intro to Pandas and Plotting
  • Final review