Welcome to CHIP 490, Introduction To Programming!
In this course, we will learn the basics of programming and collaborative coding in a health informatics environment. We will learn the Python programming language, though the basics of programming is transferable to many other languages as well.
We will learn by doing. Expect to read and write code in every class, and to have applicable exercises and small projects working with synthetic and real-world data.
Programming is something you do, not something you know. Expect to spend time outside of class learning by doing, including learning new libraries and solving problems in your day to day life. Assignments may require you to read documentation and learn new libraries, developing your own knowledge of tools in the world of Python.
Please look at our Canvas page to find a directory of links. This class will take place on Zoom, and we will use Canvas to submit assignments and receive grades. Additionally, we will use Piazza to ask questions and collaborate.
Please be as on time as possible for lectures. Repeated absences will be penalized. I'm happy to speak about any extenuating circumstances - feel free to email me/set up office hours to discuss. I understand that participation in a remote course can be difficult, so when considering participation for final grades, I will also take participation via the class Piazza forum into account.
Lecture recordings and slides will be posted to Canvas within 24 hours of each lecture.
Assignments are due by the start of class the day they are due. Assignments will be submitted via Canvas. Late assignments will be penalized 10% for each calendar day they are submitted post due date, and will not be accepted more than three calendar days late.
Assignments will be graded out of 10. Assignments will receive 8 (eight) points for successfully meeting listed acceptance criteria, and up to 2 (two) points for code readability and quality.
There are three types of assignments in this course:
Your final grade for the course will be weighted as follows:
It is expected that students have a modern computer capable of running Zoom, a web browser, and the Python programming language (which we will install in class).
There are no paid materials required for this course. We will however use the following free, online, interactive version of Think Python (3rd Edition). If you would prefer a physical copy, see the author's website for links to purchase. All software used for this course will be free and open-source.
All assignments and exams are to be completed individually except where otherwise specified. All students must adhere to the UNC Honor Code.
Please use any AI assistant tools such as ChatGPT and Copilot effectively. The use of AI assistants to write code is an increasingly powerful skill, and one that you will likely use to great effect in your career. However, using AI assistants to complete assignments or copy/paste code is a great way to not actually learn from this course. Our textbook readings will make frequent suggestions on how to frame questions to AI assistants. Generally speaking, treat AI assistants like you would a fellow student or an assistant professor - ask questions and explanations of the AI, but don't ask for answers to assignments or for it to generate code. And if using code created by generative AI, cite your sources and be prepared to explain how it functions.
When using any online resources (such as W3Schools, StackOverflow, or Generative AI), please provide links to these resources in comments in your code. As programmers, searching the web for answers is a major part of our workflow. Citing our sources is as well.
This table lists the course schedule for this semester. Please complete all readings and videos in the "Pre-Read" column before each lecture.
This schedule is tentative and subject to change over the course of the semester as needed.Date | Topic | Pre-Read | Assigned | Due |
---|---|---|---|---|
08/19 (Mon) | Course Overview, Introduction To Programming | Assignment 01 | ||
08/21 (Wed) | Working With Python, Environment Setup, Navigating the Textbook | |||
08/26 (Mon) | Coding Basics And The Building Blocks Of Code |
Chapter 1
(Programming as a way of thinking)
Chapter 2 (Variables and Statements) |
Assignment 02 | Assignment 01 |
08/28 (Wed) | Decision Structures | Chapter 5: Conditionals and Recursion You can omit the section on recursion. |
||
September: Python Basics | ||||
09/02 (Mon) | Labor Day | |||
09/04 (Wed) | Lists and Iteration: Pt. 1 | Chapter 9: Lists | Assignment 02 | |
09/09 (Mon) | Lists and Iteration: Pt. 2 | Chapter 7: Iteration and Search | ||
09/11 (Wed) | Lab Day: Battleship | Assignment 03 | ||
09/16 (Mon) | Functions |
Chapter 3: Functions
Chapter 6: Return Values |
||
09/18 (Wed) | Dictionaries | Chapter 10: Dictionaries | Assignment 03 | |
09/23 (Mon) | Well-Being Day | |||
09/25 (Wed) | Errors and Exceptions | Geeks For Geeks: Errors and Exceptions In Python | Assignment 04 | |
09/30 (Mon) | Working with Files |
OS Module in Python
File Handling in Python JSON, Python JSON Working with csv files in Python |
||
October Advanced Python | ||||
10/02 (Wed) | Check-In Day 1 | Milestone 01 | Assignment 04 | |
10/07 (Mon) | Dates and Times |
Python datetime module (GFG)
Python datetime (W3S)
Python datetime (Python)
|
||
10/09 (Wed) | Environments and Packages |
Python Modules and Packages
Installing Packages Guide |
||
10/14 (Mon) | Object Oriented Programming, Pt. 1 |
Chapter 14: Classes and Functions
Chapter 15: Classes and Methods Chapter 16: Classes and Objects Chapter 17: Inheritance |
Milestone 01 | |
10/16 (Wed) | Object Oriented Programming Pt 2 - Lab Day: Pokemon | Assignment 05 | ||
10/21 (Mon) | Guest Lecture 1: Daniel Brannock | |||
10/23 (Wed) | Guest Lecture 2: John McCarthy | |||
10/28 (Mon) | Retrieving Web Data |
What is HTTP?
What is a REST API? |
Assignment 05 | |
10/30 (Wed) | Lab Day: data.cdc.gov | |||
November Data Analysis and Visualization | ||||
11/04 (Mon) | Check-In Day 2 | Milestone 02 | ||
11/06 (Wed) | Notebooks for Data Analysis |
How To Use Juypter Notebooks
Working With Jupyter Notebooks in VSCode |
||
11/11 (Mon) | Introduction to Source Control |
What Is Git?
What Is Git? (Github) Source Control in VS Code |
||
11/13 (Wed) | Dataframes |
Pandas: What Is It And Why Does It Matter?
10 Minutes To Pandas |
Assignment 06 | |
11/18 (Mon) | Static Data Visualization |
MatPlotLib Quickstart Guide
Pandas Plotting Guide Seaborn Introduction |
||
11/20 (Wed) | Data Storytelling and Interactivity |
Data Storytelling
Mastering Dashboard Design |
||
11/25 (Mon) | Data Visualization Lab Day | |||
11/27 (Wed) | Thanksgiving Recess | Assignment 06 | ||
December Final Project | ||||
12/02 (Mon) | Putting It All Together: Final Project Review Session 01 | |||
12/04 (Wed) | Putting It All Together: Final Project Review Session 02 | |||
12/13 | Final Due Date | Milestone 02 |
The University of North Carolina at Chapel Hill facilitates the implementation of reasonable accommodations, including resources and services, for students with disabilities, chronic medical conditions, a temporary disability or pregnancy complications resulting in barriers to fully accessing University courses, programs and activities. Accommodations are determined through the Office of Accessibility Resources and Service (ARS) for individuals with documented qualifying disabilities in accordance with applicable state and federal laws. See the ARS Website for contact information: https://ars.unc.edu or email ars@unc.edu.
CAPS is strongly committed to addressing the mental health needs of a diverse student body through timely access to consultation and connection to clinically appropriate services, whether for short or long-term needs. Go to their website: https://caps.unc.edu/ or visit their facilities on the third floor of the Campus Health Services building for a walk-in evaluation to learn more.
Any student who is impacted by discrimination, harassment, interpersonal (relationship) violence, sexual violence, sexual exploitation, or stalking is encouraged to seek resources on campus or in the community. Please contact the Director of Title IX Compliance (Adrienne Allison – Adrienne.allison@unc.edu), Report and Response Coordinators in the Equal Opportunity and Compliance Office (reportandresponse@unc.edu), Counseling and Psychological Services (confidential), or the Gender Violence Services Coordinators (gvsc@unc.edu; confidential) to discuss your specific needs. Additional resources are available at safe.unc.edu.