Syllabus
IST 356 - M003, Syracuse University, Spring 2026
Course info
Room: Hinds Hall 010
Time: M/W 2:15PM - 3:35PM
Instructor: Collin Capano
Email: cdcapano@syr.edu
Office hours: M/W 3:40PM - 4:40PM (immediately after class) in Hinds Hall 323G, or by appointment.
Course website: https://su-ist356-m003-spring-2026.github.io/course-home
Course Description
Approaches for building pipelines in data analytics using the Python programming language; data cleaning, extraction, wrangling, API’s, web scraping. Building data products. Programming experience required.
Additional Course Description
This course is a tour of programming techniques for building data pipelines for analytics. It will not just emphasize exploratory approaches, but also techniques to build extract-transform-load pipelines to run code in production. Throughout the course we will learn how to source data from a variety of sources (files, data streams, APIs, web scraping, etc.) and ultimately transform data as to prepare it for dashboards or machine learning. You will also learn some simple data visualization but that is not the primary emphasis of the course.
Prerequisites
This courses uses the Python programming language. Proficiency in any programming language is the only pre-requisite. Students should have a clear understanding of these concepts:
- Input, output, variables and data types
- Control flow statements (if, for, while)
- Functions (function definition, calling, parameters, return values)
- Data structures (lists, dictionaries)
- Using code in other libraries
Audience: IST256 or IST356?
This course is intended as a follow up course to IST256. It is also appropriate for students with prior experience with programming who have an interest in data analytics.
- IST256 is for students with little to no programming experience. The course content is 75% python fundamentals and 25% python for data analytics.
- IST356 is for students with prior programming experience. The course content is 25% python fundamentals and 75% python for data analytics.
Credits
3 credits
Course Fees
None
Learning Objectives
Upon completion of this course, students will be able to:
- Explain techniques for sourcing or transforming data, and be able to justify the choice of technique
- Solve data-oriented problems using programming techniques
- Evaluate different code modules and application programming interfaces for suitability
- Apply data transformational programming techniques to build a larger data pipelines
- Create production quality data pipelines from exploratory code
Textbooks And Supplies
Textbooks
There is no textbook you need to purchase for this course. This course website will primarily serve as your “textbook”. As we progress through the course, the tutorials and lecture material we go over in class will be added to the website. Most, if not all, the material you need will be on the website, with links provided to any additional resources. All of these resources will be available freely online. In many cases, the online sources are the most up-to-date references to the relevant course material.
That said, if you would like a traditional textbook on Python programming, you may find the following useful:
- Python Programming for Data Science, by T. Beuzen (2021) https://www.tomasbeuzen.com/python-programming-for-data-science/
Bring Your Own Device
You are expected to bring your computer to each class session. This class is very hands-on, and you will be programming in class often.
Software to install
This course requires you to install software on your computer. The intro section of this course provides detailed instructions.
- Visual Studio Code editor
- Git Source Code Managment
- Miniconda
Accounts
- We will use Github for assignment submission.
Course Requirements and Expectations
Attendance and Participation
In-class participation is the best way to learn and absorb the material. As such, you are expected to attend and participate in every class session. Your grade will be partially based on attendance (see below for details). If you must miss class, you are responsible for making up the work and catching up on what you missed. Lectures will be recorded and posted to the course website after the class.
Lecture recordings
All lectures will be recorded by the professor and made available to you to review when doing assignments/studying for exams. Recordings will primarily be of the professor’s screen as we walk through tutorials; any video will just be of the professor. The mic will mostly record the professor’s voice, although student voices may occassionally be picked up in the background.
Per university policy, if all students provide written permission to make recordings publicly available (I will circulate a permission letter), the lecture recordings will be made available through the course website.
Assignments
The assignments are programming / problem solving activities that you will complete outside of class. The assignment due dates are posted on the course schedule. Consider these assignments formative assessments - practice so you can get better at computational thinking, problem solving and writing code. It is important to reflect upon your work and take an honest assessment of your abilities as you complete each assignment.
Each Wednesday we will review the homework assignment. Students will be asked to contribute to the discussion.
Factors affecting your grade:
- Is the code working and correct?
- Were the instructions followed? (e.g. commit after each function is written)
- Good reflection: specific, uses terminology, actionable
- Handed in on time, so I only need to review submissions one time.
Exams
Exams are summative assessments. They are designed to test your knowledge of the material. The exams will be issued in class on the dates posted on the course schedule. Exams are closed-book but you may bring one 8.5x11 sheet of paper with your notes on it. Exams length is 60 minutes. They will be a mix of mix of multiple choice, short answer and code tracing and code writing.
Project
The project is your opportunity to demonstrate what you have learned in an experiential fashion. In your final project you will be expected to create a data pipeline of your choosing.
- The pipeline should incorporate techniques we learned in the course and the more techniques you incorporate correctly the higher your grade.
- It is expected that you will be able to explain your choices, and they will be appropriate for the problem.
- The pipeline should be first written exploratory, and then refactored into a production quality pipeline. Both pipelines should be submitted.
- There should be a simple data visualization or dashboard from the pipeline output as to demonstrate its usefulness.
Grading
| Assessment | Type | Learning Outcomes | Quantity | Points Each | Points Total |
|---|---|---|---|---|---|
| Attendance | Formative | 24 | 1 | 24 | |
| Assignments | Formative | 1, 2 | 8 | 3 | 24 |
| Exams | Summative | 3, 4 | 2 | 24 | 48 |
| Project | Summative | 5 | 1 | 24 | 24 |
| Total | 120 |
Grading Table
The following grading scale translates your total points earned into a letter grade to be submitted to the University registrar.
| Student Achievement | Total Points Earned | Registrar Grade | Grade Points |
|---|---|---|---|
| Mastery | 114 - 120 | A | 4.000 |
| 108 - 113 | A- | 3.666 | |
| Satisfactory | 102 - 107 | B+ | 3.333 |
| 96 - 101 | B | 3.000 | |
| 90 - 95 | B- | 2.666 | |
| Low Passing | 84 - 89 | C+ | 2.333 |
| 78 - 83 | C | 2.000 | |
| 72 - 77 | C- | 1.666 | |
| Unsatisfactory | 60 - 71 | D | 1.000 |
| 0 - 59 | F | 0.000 |
Use of AI in this Course
Based on the assignments in this course and our specified learning outcomes, the full use of artificial intelligence as a tool, with disclosure and citation, is permitted in this course. Students do not need to ask permission to use these tools before starting an assignment or exam, but they must explicitly and fully indicate which tools were used and describe how they were used.
Academic Integrity
As a pre-eminent and inclusive student-focused research institution, Syracuse University considers academic integrity at the forefront of learning, serving as a core value and guiding pillar of education. Syracuse University’s Academic Integrity Policy provides students with the necessary guidelines to complete academic work with integrity throughout their studies. Students are required to uphold both course-specific and university-wide academic integrity expectations such as crediting your sources, doing your own work, communicating honestly, and supporting academic integrity. The full Syracuse University Academic Integrity Policy can be viewed by visiting the Syracuse University Policies website.
Upholding Academic Integrity includes the protection of faculty’s intellectual property. Students should not upload, distribute, or share instructors’ course materials, including presentations, assignments, exams, or other evaluative materials without permission. Using websites that charge fees or require uploading of course material (e.g., Chegg, Course Hero) to obtain exam solutions or assignments completed by others, which are then presented as your own violates academic integrity expectations in this course and may be classified as a Level 3 violation. All academic integrity expectations that apply to in-person assignments, quizzes, and exams also apply online.
Students found in violation of the policy are subject to grade sanctions determined by the course instructor and non-grade sanctions determined by the School or College where the course is offered. Students may not drop or withdraw from courses in which they face a suspected violation. Any established violation in this course may result in course failure regardless of violation level.
Class Schedule
Note: schedule subject to change as we progress through the semester.
| Week | Dates | Topic |
|---|---|---|
| 1 | 1/12, 1/14 | Intro; CLI and Conda |
| 2 | 1/21 | Git & GitHub |
| 3 | 1/26, 1/28 | Python review - 1 |
| 4 | 2/2, 2/4 | Python review - 2 |
| 5 | 2/9, 2/11 | Writing scripts with Argparse; Streamlit |
| 6 | 2/16, 2/18 | Data wrangling - 1 |
| 7 | 2/23, 2/25 | Data wrangling - 2 |
| 8 | 3/2, 3/4 | Review (3/2) and Mid-term Exam (3/4) |
| – | 3/8 - 3/15 | Spring Break |
| 9 | 3/16, 3/18 | Web APIs - 1 |
| 10 | 3/23, 3/25 | Web APIs - 2 |
| 11 | 3/30, 4/1 | Web scraping - 1 |
| 12 | 4/6, 4/8 | Web scraping - 2 |
| 13 | 4/13, 4/15 | Data visualization - 1 |
| 14 | 4/20, 4/22 | Data visualization - 2; Review for Final Exam |
| 15 | 4/27 | Final Exam |
| 16 | 5/4 | Project due |
Important dates
| Date | |
|---|---|
| Mon. 1/12 | First day of class |
| Mon. 1/19 | Martin Luther King, Jr. Day: No class |
| Mon. 2/2 | Academic/Financial drop deadline; Religious observance notification deadline |
| 3/8 - 3/15 | Spring break - No class |
| Tues. 4/14 | Withdrawal deadline |
| Mon. 4/27 | Last day of class |