Marquette University, view of Wisconsin Avenue  


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.


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.

Here is the complete syllabus. --Click here.--

Office Hours

  • Thomas Schwarz MWF 14:10 - 15:00 or by appointment.

Piazza Discussion Board

There is a piazza discussion board. Sign up at this link to the piazza website .


Week 1

Module 1 (August 26, 2019): Getting started with Python. We learn how to install Python, how to use IDLE, and how to write very simple programs. You should first listen to the presentation, then use the checklist and the home activities to insure that you understood the lesson. You should then take the Individual Quiz. You will have to fill out another one in class. For this module only, there is a Group Quiz that you can prepare. In future modules, the Group Quizzes will test the extent of the pre-class activities.

Module 2 (August 28, 2019): Variables, types, and expressions.

Laboratory 1

Module 3 (August 30, 2019): Algorithms.

Week 2

The power of a programming arises from different executions based on changing circumstances. We begin to study alternate paths of execution with the if-elif-else construct and start with loops.

Laboratory 2

Module 4 (September 4, 2019): Conditional statements

Module 5 (September 6, 2019): Conditional Statements 2.

Week 3

We have already seen how a program is able to react flexibly to the circumstances it encounters. Now we learn how to repeat certain blocks of statement or how to walk through a list of possibilities.

Module 6 (September 9, 2019): For loops.

The FuzzBuzz Interview Question

Here is a question that is used in interviews for entry programming level positions. You are to print all numbers between 1 and 100 (both included) on separate lines. However, if the number is divisible by three, instead of printing out the number print out "Fuzz", if the number is divisible by five, instead print out "Buzz", and if the number is divisible by both, print out "FuzzBuzz". If you just started programming, this is a non-trivial question and you should give yourself some time solving it. Here is my solution:

Laboratory 3 (September 10 and 12, 2019)

Module 7 (September 11, 2019): While loops.

Module 8 (September 13, 2019): Functions.

Week 4

Module 9 (September 16, 2019): Functions in Action.

Laboratory 4 (September 17 and 19, 2019)

Module 10 (September 18, 2019): More on Functions.

Module 11 (September 20, 2019): Lists

Week 5

First Midterm Preparation

Module 12 (September 23, 2019): String Processing.

Laboratory 5 (September 24 and 26, 2019): Lists and Strings

First Midterm Preparation

The last question is really too difficult to be on a midterm, but you might enjoy a challenge.

Module 13 (September 25, 2019): More on List and String Processing.

First Midterm Preparation

These are fairly easy questions.

First Midterm Preparation

These are more difficult questions.

Module 14 (September 27, 2019) Interacting with Files:

Project 1: Part 1

The first project consists of three different parts. In this first part, we create our own function for military time. Please note that you are not allowed to use "advanced" Python functions or classes for this. The second part will concern file processing.

Midterm Preparation Consultations

I will be in CU 101

  • Thursday 8:00 pm - 10:00 pm
  • Saturday 7:00 pm - 9:00 pm
  • Sunday 3:00pm - 5:00pm

for consultation and help with the sample problems.

Week 6

First Midterm , Monday, September 30, 2019

The first midterm will cover input/output, conditional execution, for loops, while loops, and string processing.

Laboratory 6: October 1 and October 3

Module 15 (October 2, 2019) String Formatting:

Module 16 (October 4, 2019) More on String and File Processing:

Project 1: Part 2

The second part consists of interacting with a dataset of crime in Denver, Co.

Week 7

Module 17 (October 7, 2019) The Random Module:

Laboratory 7: October 8 and October 10

Module 18 (October 9, 2019) Functions with Default Arguments:

Module 19 (October 11, 2019) Dictionaries:

Week 8

Module 20 (October 14, 2019) More on Dictionaries:


Because of the midterm break, the laboratory is shorter and only virtual. Please submit your solutions via D2L to your laboratory section.

Module 21 (October 16, 2019) Tuples, Sets, and Frozen Sets:

Week 9

Module 22 (October 21, 2019) Comprehension:

Laboratory 9: October 22 and October 23

Module 23 (October 23, 2019) Comprehension in Action:

Module 24 (October 25, 2019) Exception Handling:

Project 1 Due Date: October 31, 2019

To turn in the project, you need to demonstrate it to me. Please have a folder with all of your python files as well as the result csv ready for inspection. You can show the project to me in my office hour or when I visit the laboratories. Groups should turn in together.

Projects that contain an error or that miss the submission deadline can be resubmitted for 80\% of the points next week. After that, they can be resubmitted for 64\% the next week.

Week 10

Midterm Preparation: (October 28, 2019)

Laboratory 10: (October 29 and October 31, 2019)

Second Midterm: (October 30, 2019)

Module 25 (November 1 -- Hallowmass) Classes and Objects 1:

Week 11

Module 26 (November 4, 2019) Classes and Objects 2:

Laboratory 11: November 5 and November 7, 2019

Module 27 (November 6, 2019) Classes and Objects 3:

Module 28 (November 8, 2019) Classes and Objects 4:

Week 12

Project 2

This project builds on the work to be done in the following two modules. Tentative due date is in the labs on November 19 and November 21. As always, projects need to be demonstrated. The extra credit parts can be demonstrated anytime before the final examination. Up to three students can work on a project.

Module 29 (November 11, 2019): Classes in Action 1

Laboratory 12 : November 12 and November 14, 2019

Module 30 (November 13, 2019) Classes in Action 2:

  • This module has no presentation. Please review the previous presentation.
  • In-class Activities [click here]
  • Individual Quiz [click here]

Module 31 (November 15, 2019) Decision Trees:

Make-Up Midterm

The make-up midterm is scheduled on Tuesday, December 3, at 10:00 am at a location yet to be determined. In order to participate in the midterm, you need to have successfully completed the qualifier (below) and reserved a spot. 90% of your score on the make-up midterm will replace the worse score of your two midterm examination grades. This means that you can actually lower the score. If you pass the make-up midterm with 50% of the points, you will be imputed to have passed both midterms with 50%.