This is an inverted class, given in conjunction with similar classes at Xavier College (autonomous) in Ahmedabad, Gujarat, India, and Xavier Institute of Engineering in Mumbai, Maharashtra, India.
Syllabus
This is an inverted classroom experience. Students will listen to the presentation (about 10 minutes) before each class and then use their classroom time to learn by doing in groups of two equally strong students. There will be individual and group quizzes (taking up about 5 minutes each) for each class.
For the complete syllabus, click here.
Office Hours
- Niharika Jain, to be announced
- Thomas Schwarz, SJ, Monday, Wednesday, Friday: 14:00 - 15:00 Room 340B
Contents
Week 1
Module 1 (January 14, 2019): Getting started with Python. We learn how to install Python, how to use IDLE, and how to write very simple programs.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- Group Quiz [click here]
- Hello World Python sript[click here]
Module 2 (January 16, 2019): Variables, types, and expressions.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- Group Quiz [click here]
- Individual Quiz [click here]
Laboratory 1
- Laboratory I [click here]
- Zip file for Project 1 [click here]
Module 3 (January 18, 2019): Algorithms.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
Week 2
Module 4 (January 21, 2019): Conditional Statements.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
Laboratory 2
- Laboratory 2 [click here]
Module 5 (January 23, 2019): More on Conditional Statements.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- example.py [click here]
- example2.py [click here]
Module 6 (January25, 2019): For Loops.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
Week 3
Module 7 (January 28, 2019): While Loops.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
Laboratory 3
- Laboratory 3 [click here]
Module 8 (January 30, 2019): Functions.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
Week 4
Homework for Week 4
homework [click here]
Module 9: Population Models: While loops in action.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
Laboratory 4
- Laboratory 4 [click here]
Module 10: More on Functions.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
Module 11: Lists.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
Week 5
Homework for Week 5
- homework [click here]
- first.txt, a list with first names
[click here]
Laboratory 5
- Laboratory 5 [click here]
Module 12: A first look at String Processing.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
Module 13: More on Lists and Strings.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
Module 14: Interacting with Files.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- abq10001.txt [click here]
- abq10002.txt [click here]
- abq10003.txt [click here]
- alice.txt [click here]
- Iris.csv [click here]
Midterm 1
Tentative Midterm date is October 8 in class. A special review meeting for all
sections is tentatively scheduled on Friday, October 5, at 4:00 pm in CU101
to be repeated on Saturday, October 6 at 1:00 pm in CU101.
- Midterm Examination 1, Preparation 1
[click here]
- Midterm Examination 1, Preparation 2
[click here]
- Midterm Examination 1, Preparation 3
[click here]
- Final midterm 1 prep: Six easy pieces
[click here for pdf]
- Final midterm 1 prep: Six easy pieces, Solutions
[click here for py]
Review Session
- Midterm Examination 1, Review video 1
[click here for mp4]
- Slides 1
[click here for pdf]
- Midterm Examination 1, Review video 2
[click here for mp4]
- Slides 2
[click here for pdf]
Week 6
Homework for Week 6
- homework [click here]
- avocado.csv [click here]
Laboratory 6
- Laboratory 6 [click here]
- lawler.txt [click here]
- vocabulary.txt [click here]
Module 15: Python String Formatting.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
Module 16: More on String and File Formatting.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- Example.zip [click here]
- wisteria.txt [click here]
Module 17: The random module.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
Week 7
Laboratory 7
- Laboratory 7 [click here]
- countries.txt [click here]
- numbers.txt [click here]
Module 18: Functions with Default Arguments and Anonymous Functions.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- def_arg_ex.py [click here]
- function_examples.py [click here]
Module 19: Dictionaries.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- alice.txt [click here]
- counting.py [click here]
- mobydick.txt [click here]
- HIV.txt [click here]
Week 8
Since this is a half-week, laboratories are cancelled. The class on Wednesday
starts preparation for the second midterm. Students will have an opportunity to
make up for missed quizzes.
Module 20: More on Dictionaries.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- binomial.py [click here]
- largest.py [click here]
- largest2.py [click here]
Module 21: Midterm 2 Review
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- counter.py [click here]
Week 9
Project 1
The project deliverables are on paper the code to obtain the secret phrase, the
secret itself, a description of the plaintext, and the Python functions used to
obtain the secret. You can work in groups of up to three people. For full points,
submit the result to Thomas Schwarz before November 5.
- Project description (pdf)
[click here]
- Encrypted file cipher.txt
[click here]
- Encrypted file cipher.txt as a zip file
[click here]
- Python file project1.py
[click here]
Homework for Week 9
- homework [click here]
Laboratory 8: Encryption
- Laboratory 8 [click here]
- cipher.txt [click here]
Module 22: Tuples, Sets, and Frozen Sets
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- tuples.py [click here]
Module 23: List Comprehension 1
This module contains a self-test that you should take after listening to the lecture.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Selftest (pdf) [click here]
- Activities [click here]
Module 24: List Comprehension 2
This module contains a self-test that you should take after listening to the lecture.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Selftest (pdf) [click here]
- Activities [click here]
Week 10
Homework for Week 10
- homework [click here]
Laboratory 9: Frequency attacks on ciphers
- Laboratory 9 [click here]
- cipher.txt [click here]
Module 25: Exceptions
This module contains a self-test that you should take after listening to the lecture.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Selftest (pdf) [click here]
- Activities [click here]
- exc.py [click here]
- proust.txt [click here]
Module 26: Midterm 2 Preparation
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- loop.py [click here]
Midterm 2
Project 3
Project description will be made available before November 4, 2018.
Week 11: November 5 - November 9
Second Project
The second project is a project of data wrangling and analysis using the Titanic
passenger dataset.
- Project description (pdf)
[click here]
- The training set: train.csv
[click here]
- The testing set: test.csv
[click here]
Homework for Week 11
- homework [click here]
Laboratory 10:
- Laboratory 10 [click here]
- Babynames.zip [click here]
Module 27: Classes and Objects 1
This module contains a self-test that you should take after listening to the lecture.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Selftest (pdf) [click here]
- Selftest Solutions (py)
[click here]
- Activities [click here]
- complex.py [click here]
Module 28: Classes and Objects 2
This module contains a self-test that you should take after listening to the lecture.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Selftest (pdf) [click here]
- Selftest Solutions (py)
[click here]
- Activities [click here]
Friday -- November 9: Homework and Project 1 Help and Handin Day
In lieu of classes, you will have a last chance to present homeworks up to homework
11 and project 1 without loss of points. You can also receive help with said hand-ins.
Please come to CU 101 from
9:00 to 16:00.
Week 12: November 12 - November 16, 2018
Module 29: Classes and Objects 3
This module contains a self-test that is part of the presentation.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- address.py [click here]
- client.py [click here]
Module 30: Classes and Objects 4
This module contains a self-test that is part of the presentation.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- account.py [click here]
Module 31: Generators, Iterators, Else in Loops, Project 2
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- examples.py [click here]
- iris_student.py [click here]
Homework for Week 12
- homework [click here]
Laboratory 11:
- Laboratory 11 [click here]
Week 13: November 19, 2018
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- examples.py [click here]
- iris_student.py [click here]
Laboratories are cancelled
Module 32: Introduction to TKInter: Event-based programming
Make-up for missed quizzes
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- tkinter0.py [click here]
- tkinter1.py [click here]
- tkinter2.py [click here]
- tkinter3.py [click here]
- tkinter5.py [click here]
- python_milwaukee.gif [click here]
- python_milwaukee.png [click here]
Week 14: November 26, 2018 - November 30, 2018
Project 3
The Lunar Lander
- Project Description [click here]
- How to do it [click here]
Laboratory 12:
- Laboratory 12 [click here]
Module 33: Buttons and Event Handlers, Packing Widgets
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- button0.py [click here]
- button1.py [click here]
- button2.py [click here]
- button3.py [click here]
- button4.py [click here]
- shakespeare.gif [click here]
Module 34: Input and Output in TkInter Applications
- Presentation 1 (mpg) [click here]
- Presentation 2 (mpg) [click here]
- Presentation 3 (mpg) [click here]
- Presentation 4 (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- binding.py [click here]
- entry.py [click here]
- radio.py [click here]
Third Midterm: Classes (no Tkinter)
- Preparation 1 Midterm 3
[click here]
- Solution [click here]
- Preparation 2 Midterm 3
[click here]
- Solution [click here]
- Preparation 3 Midterm 3
[click here]
- Preparation 3 Midterm 3 Solution 1
[click here]
Project Demonstrations
Please demonstrate the project:<\p>
- Friday, November 30: 15:00 - 16:45 CU 420B
- Saturday, December 1: 15:00 - 17:00 CU 420B
- Monday, December 3: 14:00 - 17:00 CU 420B
Week 15: December 3, 2018 - December 7, 2018
Module 35: Animations
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- cells.py [click here]
- gol.py [click here]
- test.py [click here]
Laboratory: Building a simple game
- Laboratory 13 [click here]
- ball.py [click here]
- game.py [click here]
Module 36: Project Presentations and Questions
Module 37: Project Presentations and Questions
Project Presentation
Finals
You can move your final to a previous date. But please advise, because space
limitations might force us to turn you down. Also, if you missed a midterm, you can
get a make-up midterm on one of the final slots.
- Monday, 1:00pm - 3:00pm
- Tuesday, 8:00am-10:00am
- Wednesday, 10:30am - 12:30pm
- Thursday, 10:30am - 12:30pm
- Thursday, 1:00pm - 3:00pm
Finis
Module 9: Population Models: While loops in action.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
Laboratory 4
- Laboratory 4 [click here]
Module 10: More on Functions.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
Module 11: Lists.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
Week 5
Homework for Week 5
- homework [click here]
- first.txt, a list with first names
[click here]
Laboratory 5
- Laboratory 5 [click here]
Module 12: A first look at String Processing.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
Module 13: More on Lists and Strings.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
Module 14: Interacting with Files.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- abq10001.txt [click here]
- abq10002.txt [click here]
- abq10003.txt [click here]
- alice.txt [click here]
- Iris.csv [click here]
Midterm 1
Tentative Midterm date is October 8 in class. A special review meeting for all sections is tentatively scheduled on Friday, October 5, at 4:00 pm in CU101 to be repeated on Saturday, October 6 at 1:00 pm in CU101.
- Midterm Examination 1, Preparation 1 [click here]
- Midterm Examination 1, Preparation 2 [click here]
- Midterm Examination 1, Preparation 3 [click here]
- Final midterm 1 prep: Six easy pieces [click here for pdf]
- Final midterm 1 prep: Six easy pieces, Solutions [click here for py]
Review Session
- Midterm Examination 1, Review video 1 [click here for mp4]
- Slides 1 [click here for pdf]
- Midterm Examination 1, Review video 2 [click here for mp4]
- Slides 2 [click here for pdf]
Week 6
Homework for Week 6
- homework [click here]
- avocado.csv [click here]
Laboratory 6
- Laboratory 6 [click here]
- lawler.txt [click here]
- vocabulary.txt [click here]
Module 15: Python String Formatting.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
Module 16: More on String and File Formatting.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- Example.zip [click here]
- wisteria.txt [click here]
Module 17: The random module.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
Week 7
Laboratory 7
- Laboratory 7 [click here]
- countries.txt [click here]
- numbers.txt [click here]
Module 18: Functions with Default Arguments and Anonymous Functions.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- def_arg_ex.py [click here]
- function_examples.py [click here]
Module 19: Dictionaries.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- alice.txt [click here]
- counting.py [click here]
- mobydick.txt [click here]
- HIV.txt [click here]
Week 8
Since this is a half-week, laboratories are cancelled. The class on Wednesday starts preparation for the second midterm. Students will have an opportunity to make up for missed quizzes.
Module 20: More on Dictionaries.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- binomial.py [click here]
- largest.py [click here]
- largest2.py [click here]
Module 21: Midterm 2 Review
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- counter.py [click here]
Week 9
Project 1
The project deliverables are on paper the code to obtain the secret phrase, the secret itself, a description of the plaintext, and the Python functions used to obtain the secret. You can work in groups of up to three people. For full points, submit the result to Thomas Schwarz before November 5.
- Project description (pdf) [click here]
- Encrypted file cipher.txt [click here]
- Encrypted file cipher.txt as a zip file [click here]
- Python file project1.py [click here]
Homework for Week 9
- homework [click here]
Laboratory 8: Encryption
- Laboratory 8 [click here]
- cipher.txt [click here]
Module 22: Tuples, Sets, and Frozen Sets
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- tuples.py [click here]
Module 23: List Comprehension 1
This module contains a self-test that you should take after listening to the lecture.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Selftest (pdf) [click here]
- Activities [click here]
Module 24: List Comprehension 2
This module contains a self-test that you should take after listening to the lecture.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Selftest (pdf) [click here]
- Activities [click here]
Week 10
Homework for Week 10
- homework [click here]
Laboratory 9: Frequency attacks on ciphers
- Laboratory 9 [click here]
- cipher.txt [click here]
Module 25: Exceptions
This module contains a self-test that you should take after listening to the lecture.
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Selftest (pdf) [click here]
- Activities [click here]
- exc.py [click here]
- proust.txt [click here]
Module 26: Midterm 2 Preparation
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- loop.py [click here]
Midterm 2
Project 3
Project description will be made available before November 4, 2018.
Week 11: November 5 - November 9
Second Project
The second project is a project of data wrangling and analysis using the Titanic passenger dataset.- Project description (pdf) [click here]
- The training set: train.csv [click here]
- The testing set: test.csv [click here]
Homework for Week 11
- homework [click here]
Laboratory 10:
- Laboratory 10 [click here]
- Babynames.zip [click here]
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Selftest (pdf) [click here]
- Selftest Solutions (py) [click here]
- Activities [click here]
- complex.py [click here]
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Selftest (pdf) [click here]
- Selftest Solutions (py) [click here]
- Activities [click here]
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- address.py [click here]
- client.py [click here]
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- account.py [click here]
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- examples.py [click here]
- iris_student.py [click here]
- homework [click here]
- Laboratory 11 [click here]
Module 27: Classes and Objects 1
This module contains a self-test that you should take after listening to the lecture.
Module 28: Classes and Objects 2
This module contains a self-test that you should take after listening to the lecture.
Friday -- November 9: Homework and Project 1 Help and Handin Day
In lieu of classes, you will have a last chance to present homeworks up to homework 11 and project 1 without loss of points. You can also receive help with said hand-ins. Please come to CU 101 from 9:00 to 16:00.
Week 12: November 12 - November 16, 2018
Module 29: Classes and Objects 3
This module contains a self-test that is part of the presentation.
Module 30: Classes and Objects 4
This module contains a self-test that is part of the presentation.
Module 31: Generators, Iterators, Else in Loops, Project 2
Homework for Week 12
Laboratory 11:
Week 13: November 19, 2018
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- examples.py [click here]
- iris_student.py [click here]
Laboratories are cancelled
Module 32: Introduction to TKInter: Event-based programming
Make-up for missed quizzes
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- tkinter0.py [click here]
- tkinter1.py [click here]
- tkinter2.py [click here]
- tkinter3.py [click here]
- tkinter5.py [click here]
- python_milwaukee.gif [click here]
- python_milwaukee.png [click here]
Week 14: November 26, 2018 - November 30, 2018
Project 3
The Lunar Lander
- Project Description [click here]
- How to do it [click here]
Laboratory 12:
- Laboratory 12 [click here]
Module 33: Buttons and Event Handlers, Packing Widgets
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- button0.py [click here]
- button1.py [click here]
- button2.py [click here]
- button3.py [click here]
- button4.py [click here]
- shakespeare.gif [click here]
Module 34: Input and Output in TkInter Applications
- Presentation 1 (mpg) [click here]
- Presentation 2 (mpg) [click here]
- Presentation 3 (mpg) [click here]
- Presentation 4 (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- binding.py [click here]
- entry.py [click here]
- radio.py [click here]
Third Midterm: Classes (no Tkinter)
- Preparation 1 Midterm 3 [click here]
- Solution [click here]
- Preparation 2 Midterm 3 [click here]
- Solution [click here]
- Preparation 3 Midterm 3 [click here]
- Preparation 3 Midterm 3 Solution 1 [click here]
Project Demonstrations
Please demonstrate the project:<\p>
- Friday, November 30: 15:00 - 16:45 CU 420B
- Saturday, December 1: 15:00 - 17:00 CU 420B
- Monday, December 3: 14:00 - 17:00 CU 420B
Week 15: December 3, 2018 - December 7, 2018
Module 35: Animations
- Presentation (mpg) [click here]
- Presentation (pdf) [click here]
- Presentation (key) [click here]
- Activities [click here]
- cells.py [click here]
- gol.py [click here]
- test.py [click here]
Laboratory: Building a simple game
- Laboratory 13 [click here]
- ball.py [click here]
- game.py [click here]
Module 36: Project Presentations and Questions
Module 37: Project Presentations and Questions
Project Presentation
Finals
You can move your final to a previous date. But please advise, because space limitations might force us to turn you down. Also, if you missed a midterm, you can get a make-up midterm on one of the final slots.
- Monday, 1:00pm - 3:00pm
- Tuesday, 8:00am-10:00am
- Wednesday, 10:30am - 12:30pm
- Thursday, 10:30am - 12:30pm
- Thursday, 1:00pm - 3:00pm