Introduction to Programming in Python
Spring 2025
Office Location:
Duke Hall #209
Phone: 909-748-8630
E-Mail: joanna_bieri@redlands.edu
(Email or Teams are my preferred contact methods)
Programming Lab:
TBA
-
Link to our Canvas - for submitting work and checking grades
-
Important Course Documents
Course Syllabus
Schedule of Topics Updated 2/11
NOTE: as the semester progresses we may change up the schedule a bit to suit our class pace and interests. The most recent schedule will be posted here.
-
Daily Assignments - Reading - Handouts
-
Day 1 - Wednesday - 1/8 - Click Here
To be successful in programming it is important to not give up. Sometimes there are really annoying errors in the code and you have to persist in finding them. There is also often a very steep learning curve, but once you get it, it's amazing!
PRE-CLASS:None
CLASS TIME:Talk about syllabus and class expectations
AFTER CLASS:
Hello World! - your first program - Practice 1
Daily practice problems and explorations will be done using an Interactive Python Notebook (.ipynb). In notebooks you can run one line of code at a time. These are great for learning and experimentation. Anaconda is a big software packages that contains LOTS of useful apps. I usually use Jupyter Lab to interact with my Interactive Python Notebooks: Download Python/Anaconda
When submitting more professional code, we use a Python script (.py). This is a single file that contains all your code. You run all the lines of code at the same time and see the output. Usually we use a IDE to interact with and run our code. What is an IDE? Integrated Development Environment. Anaconda comes with Spyder, but you can use any IDE you like. For example" You might try PyCharm
Google Colab is a cloud based version of Jupyter Lab/Notebook. If you plan to use Python in the future I would suggest NOT using colab. Link to Google Colab This is where you can collaborate on a cloud based Jupyter Notebook or where you can find a working Python Notebook if your computer is giving you trouble. Sign up for a free account. You should still have Anaconda on your computer.
Start Prepping for Day 2
-
DAY 2 - Monday 1/13
PRE-CLASS:Following Chapter 2 of our book:
CLASS TIME:
Video: Introduction to Python and Data Types
Video: Jupyter Notebook - Practice 2 - Walk Through
Lecture Notes
Practice 2 Assigned - you should work on this before class!Variables - The building blocks of programming
AFTER CLASS:
Operations - Hey computer, do math!
Comments - What does this code do?
InClassProblemsProgramming Assignment 1 Assigned - due 1/17
Prep for Day 3
EXTRA:Using PyCharm to run Python
Using a terminal window to run Python
-
DAY 3 - Wednesday 1/15
PRE-CLASS:Following Chapter 3 of our book:
CLASS TIME:
Video: Introduction to Lists
Video: Jupyter Notebook - Practice 3 - Walk Through
Video: The Zen of Python
Lecture Notes
Practice 3 Assigned - you should work on this before class!Lists - really cool lists!
AFTER CLASS:
InClassProblems
Take the lab time survey! Please enter all times when you would be able to attend lab. I hope lab is a time when people debug code and get their weekly programming assignments done.
Programming Assignment 1 Assigned - due 1/17
Prep for Day 4
EXTRA:Let me know what videos you want!
- No Class - 1/20/25 - Martin Luther King Jr. Holiday
-
DAY 4 - Wednesday 1/22
PRE-CLASS:Following Chapter 4 of our book:
CLASS TIME:
Video: Introduction to Loops, Slicing, and Tuples
Video: Jupyter Notebook - Practice 4 - Walk Through
Lecture Notes
Practice 4 Assigned - you should work on this before class!Loops - really cool loops!
AFTER CLASS:
InClassProblems
Programming Assignment 2 Assigned - due 1/24
Prep for Day 5
-
DAY 5 - Monday 1/27
PRE-CLASS:Following Chapter 5 of our book:
CLASS TIME: ONLINE - TEAMS
Video: Introduction to Conditionals, If and Else
Video: Jupyter Notebook - Practice 5 - Walk Through
Lecture Notes
Practice 5 Assigned - you should work on this before class!
Conditionals, Booleans, If, and Else
AFTER CLASS:
Programming Assignment 3 Assigned - due 1/31
Prep for Day 6
Check in - How are things going?
-
DAY 6 - Wednesday 1/29
PRE-CLASS:Following Chapter 5 of our book:
CLASS TIME: ONLINE - TEAMS
Video: Jupyter Notebook - Practice 6 - Walk Through - if-elif-else
Lecture Notes
Practice 6 Assigned - you should work on this before class!
More of if-elif-else
AFTER CLASS:
What does this code do? How does it work?Programming Assignment 3 Assigned - due 1/31
Prep for Day 7
-
DAY 7 - Monday 2/3
PRE-CLASS:Following Chapter 6 of our book:
CLASS TIME:
Video: Dictionaries
Video: Jupyter Notebook - Practice 7 - Walk Through
Lecture Notes
Practice 7 Assigned - you should work on this before class!Dictionaries
AFTER CLASS:
What does this code do? How does it work?
In Class Challenge ProblemCHOOSE ONE:
Programming Assignment 4 Assigned - due 2/7
Programming Assignment 4 Advanced Option - due 2/7
If you are planning to do a level 3 final project, you should start challenging yourself now. I am happy to help you work on the Advanced option! It is a hard, but fun, challenge.
Prep for Day 8
- Wednesday 2/5 - Sick Day - Boo!
-
DAY 8 - Monday 2/10
PRE-CLASS:Following Chapter 7 of our book:
CLASS TIME:
Video: User Inputs
Video: While Loops
Video: Jupyter Notebook - Practice 8 - Walk Through
Lecture Notes
Practice 8 Assigned - you should work on this before class!User Inputs and While Loops
AFTER CLASS:
In class challenge problems.
In class solution
CHOOSE ONE:
Programming Assignment 4 Assigned - due 2/14
Programming Assignment 4 Advanced Option - due 2/14
If you are planning to do a level 3 final project, you should start challenging yourself now. I am happy to help you work on the Advanced option! It is a hard, but fun, challenge.
Prep for Day 9
-
DAY 9 - Wednesday 2/12
PRE-CLASS:Start Studying for the exam!
CLASS TIME:
Practice 9 Applied Data Analysis - Exam Practice - you should work on this before class!Exam Review
AFTER CLASS:
No NEW - programming assignment due this week.
CHOOSE ONE:
Programming Assignment 4 Assigned - due 2/14
Programming Assignment 4 Advanced Option - due 2/14
If you are planning to do a level 3 final project, you should start challenging yourself now. I am happy to help you work on the Advanced option! It is a hard, but fun, challenge.
Prep for Day 10 - Exam 1 - Practice Exam 1
posted on canvas
-
DAY 10 - Monday 2/17 - Exam 1
PRE-CLASS:Re-watch videos
CLASS TIME: AFTER CLASS:
MaKe sure you can do all the practice problems without the help of AI or your peers. These will not be available.
Try out the practice exam: Practice Exam 1
Prep for Day 11
-
DAY 11 - Wednesday 2/19
PRE-CLASS:Video: Reading and Writing Data
CLASS TIME:
Video: Jupyter Notebook - Practice 11 - Walk Through
Video: Writing Files in COLAB
Practice 11 Assigned - you should work on this before class!Reading and Writing Data
AFTER CLASS:
Continue using and understanding: Loops, Data Types, Conditional Statements, and Inputs.
Programming Assignment 5 Assigned - due 2/24 at 11:59pm
Programming Assignment 5 - DATA - save to a file
Prep for Day 12
-
DAY 12 - Monday 2/24
PRE-CLASS:Video: Introduction to Pandas!
CLASS TIME:
Practice 12 Assigned - you should work on this before class!Work on using Pandas for Data Analysis
AFTER CLASS:
Programming Assignment 6 Assigned - due 2/28 This time the assignment is part of an exploratory Colab Notebook - There is an Advanced "Challenge" problem at the end of this assignment. Everyone should do the exploratory analysis, but if you are planning to do a level 3 final project, you might also try the challenge problem.
Prep for Day 13
Start thinking about final project ideas.
-
DAY 13 - Wednesday 2/26
PRE-CLASS:No New Video to Watch - please review past videos as needed. Make sure that you are comfortable with all the ides in Practice 13. Come get help if you need it!
CLASS TIME:
Practice 13 Assigned - you should work on this before class!Review the class material so far
AFTER CLASS:
Programming Assignment 6 Assigned - due 2/28 This time the assignment is part of an exploratory Colab Notebook - There is an Advanced "Challenge" problem at the end of this assignment. Everyone should do the exploratory analysis, but if you are planning to do a level 3 final project, you might also try the challenge problem.
EXAM RETAKES and PYTHON REVIEW
Start thinking about final project ideas - initial proposals due: 3/10.
Initial Project Proposal Information
Start Prepping for Day 14 - After Spring Break!If you would like to retake Exam 1 after spring break you should do the problems in the Mid Semester Review. Even if you don't want to retake the exam you are still welcome, and encouraged, to try and submit these review problems.
MidSemester Review - due 3/9 - if you want to redo Exam 1
- Spring Break 3/3-3/7
-
DAY 14 - Monday 3/10 - Initial Project Proposals Due!
PRE-CLASS:Video: Introduction to Functions!
CLASS TIME:
Video: Jupyter Notebook - Practice 14 - Walk Through
Practice 14 Assigned - you should work on this before class!Functions!
AFTER CLASS:
CHOOSE ONE:
Programming Assignment 7 Assigned - due 3/14
Programming Assignment 7 Advanced Option - due 3/14
If you are planning to do a level 3 final project, you should start challenging yourself now. I am happy to help you work on the Advanced option! It is a hard, but fun, challenge.
Prep for Day 15
-
DAY 15 Wednesday 3/12
PRE-CLASS:Video: Jupyter Notebook - Practice 15 - Walk Through
CLASS TIME:
Review 0:00-16:20
New Stuff 16:20-29:30
Google Colab - BEWARE Modules can be DELETED
Practice 15 Assigned - you should work on this before class!Review Data Types, Conditionals, Loops, and Functions
AFTER CLASS:
Functions: Arbitrary Arguments and Modules
CHOOSE ONE:
Programming Assignment 7 Assigned - due 3/14
Programming Assignment 7 Advanced Option - due 3/14
If you are planning to do a level 3 final project, you should start challenging yourself now. I am happy to help you work on the Advanced option! It is a hard, but fun, challenge.
Prep for Day 16
-
DAY 16 Monday 3/17
PRE-CLASS:Video: Jupyter Notebook - Practice 16 - Walk Through
CLASS TIME:
Practice 15 Assigned - you should work on this before class!Proper Function Styling
AFTER CLASS:
Try-Except
Programming Assignment 8 Assigned - due 3/21
Prep for Day 17
-
DAY 17 Wednesday 3/19
PRE-CLASS:Video: Jupyter Notebook - Practice 17 - Walk Through
CLASS TIME:
Practice 17 Assigned - you should work on this before class!Introduction to Web Scraping
AFTER CLASS:
Ethics in Web Scraping
Programming Assignment 8 Assigned - due 3/21
Prep for Day 18
-
DAY 18 Monday 3/24
PRE-CLASS:THREE OPTIONS:
CLASS TIME:
You can choose which idea you are more interested in OR which helps support the learning you most need to practice.
1. Submit a list of questions that you really need help with from the lectures last week. Re-watch the videos from last week as a review.
2. Pandas Web Scraping and Data Analysis - more of a review:
Video: Jupyter Notebook - Practice 18 - Pandas
Practice 18 - Pandas Assigned - you should work on this before class!
3. More Advanced Web Scraping with Beautiful Soup and Selenium:
Video: Jupyter Notebook - Practice 18 - More Advanced Scraping
Practice 18 - Advanced Web Scraping Assigned - you should work on this before class!
Answers questions about:
AFTER CLASS:
- Functions
- Function Styling
- Web Scraping and Ethics
- Pandas Data Analysis
- Beautiful Soup
We will likely break into three groups in class based on interests.CHOOSE ONE:
Programming Assignment 9 Assigned - due 3/28
Programming Assignment 9 - Challenge Assigned - You will need to download this and run it in Jupyter or PyCharm- due 3/28
Prep for Day 19
-
DAY 19 Wednesday 3/26
PRE-CLASS:Video: Jupyter Notebook - Practice 19 - Walk Through
CLASS TIME:
Practice 19 Assigned - you should work on this before class!Python for Spatial Data - GeoPandas
AFTER CLASS:
CHOOSE ONE:
Programming Assignment 9 Assigned - due 3/28
Programming Assignment 9 - Challenge Assigned - You will need to download this and run it in Jupyter or PyCharm- due 3/28
Prep for Day 20
-
DAY 20 Monday 3/31
PRE-CLASS:NO NEW VIDEO - Today we are working through a notebook that will help us put our ideas together.
CLASS TIME:
Practice 20 - you should work on this before class!
Putting Python ideas/operations together
AFTER CLASS:
Prep for the exam!
-
DAY 21 Wednesday 4/3 - Exam 2
PRE-CLASS:Study for Exam 2
CLASS TIME: AFTER CLASS:
Prep for Day 22
-
Final Project Proposals - Due 4/4
Final Project Proposals Due - Submit on Canvas!
These should include:
- An introduction to your final project including why you find it interesting and references you might use.
- An outline of what you hope to achieve including what you have done so far, specifications for the code you hope to write, and a timeline for completing each component.
- A comment about what level you will achieve with the project
- These should be typed, single spaced, and take 1-3 pages.
- If you have code started you should submit this with your proposal for me to see.
-
DAY 22 Monday 4/7
PRE-CLASS:Video: Jupyter Notebook - Practice 22 - Walk Through OOP - old day 23
CLASS TIME:
Practice 22 Assigned - you should work on this before class!Object Oriented Programming
AFTER CLASS:
Talk about Final Projects
OPTIONAL - your choice to do this or Assignment 11 - should be completed by students in GIS!
Programming Assignment 10 Assigned - due 4/11
OPTIONAL - your choice to do this or Assignment 10 - should be completed by students interested in advanced programming and data science
Programming Assignment 11 Assigned - due 4/11
Prep for Day 23
You should be working on your final projects
-
DAY 23 Wednesday 4/9
PRE-CLASS:Video: Jupyter Notebook - Practice 23 - old day 24
CLASS TIME:
Practice 23 Assigned - you should work on this before class!Object Oriented Programming and Inheritance
AFTER CLASS:
OPTIONAL - your choice to do this or Assignment 11 - should be completed by students in GIS!
Programming Assignment 10 Assigned - due 4/11
Prep for Day 21
OPTIONAL - your choice to do this or Assignment 10 - should be completed by students interested in advanced programming and data science
Programming Assignment 11 Assigned - due 4/11
Prep for Day 24
You should be working on your final projects!
-
DAYS 24 and 25 - Work on Final Projects
We are done with the main content of the class. Use the class time to come get help with programming your final projects.
Make sure to check you grades on Canvas
-
Final Projects Due - 4/21 at 6pm
You will submit your final projects on Canvas. The project should include three submitted files:
An Executive Summary - ReadMe
Code - either a .py file or a document with a link to your .ipynb
Self Reflection
Here is more information about the Final Project
Each day I will post the lecture videos, homework, additional reading, and other information. Make sure to check here for each day of class. -
Day 1 - Wednesday - 1/8 - Click Here
-
Homework Solutions - Exam Review
HW 1 - Introduction to Python SOLN
All Practice Problems and Programming Assignment solutions are available on Canvas
Link to the Book