XICA Logo           Mumbai Logo

Python for Big Data, Data Mining, and Data Science

This is an inverted class, to be given simultaneously at Marquette University, Milwaukee, Xavier Institute of Engineering, Mumbai, and St. Xavier's College (Autonomous), Ahmedabad. I'd be interested to collaborate with other institutions.


This is an inverted classroom experience. Students will listen to the presentation (about 10 minutes) before each class, engage in self-guided activities, take self-tests and solve an individual quiz. Each class starts with an individual quiz (known to the students) and a group quiz, to be answered by two or three students together. The bulk of the class consists in activities during which instructor help is available. Students will perform these activities in groups of two and be graded for some of them.

For the complete syllabus, click here.


Module 1: (August 30, 2019)

Getting started with Python. We learn how to install Python, how to use IDLE, and how to write very simple programs.

Module 2: (August 31, 2019)

Variables, types, and expressions.

Notice that both quizzes are given to you in advance.

Modules 3 (September 7) Conditional Execution.

First a brief repetition about algorithms. Then a short introduction to conditional execution. The new thing to learn is that Python uses white spaces instead of curly braces to creates blocks and nesting.

Modules 5 and 6 (September 13): For Loops.

The first presentation introduces Boolean operations. In contrast to languages like C and Java, Python gives the programmer more flexibility. The programmer can use English words or use the same symbols as C. We will later see that Python manages negations in a manner consistent with English grammar.

The second presentation introduces for loops. Python for loops are different from loops in Java and C as they are list-oriented. At this point, we only treat the case of lists generated by the range keyword. Range is very flexible, but it also introduces the first Python idiosyncrasy. If I want to list all integers between 1 and 100 (ends included), I say for i in range(1, 101). This is a poor design decision, but it is better than all the alternatives. It is also much more flexible than the C or Java construct for(int i = 1; i<=100; i++) that restricts the loop variable to one type and that uses a continuation criterion.

Modules 7 (September 20, 2019): While Loops.

Laboratory 1 (September 21, 2019)

Modules 8, 9 (September 27): Functions.

Module 10 (October 4): More on Functions.

Laboratory 2 (October 5)

Module 11 : Lists.

Module 12: Strings I.

Laboratory 3

Module 13 : Strings II.

Laboratory 4

Module 14: Files

Laboratory 5 and first Project

We are programming the game of "Hangman". There are many implementations of Hangman that you can get on the Internet, but they will do you no good. You are to hand in a Hangman project based on these particular instructions.

Module 15 : String Formatting.

Laboratory 6

Laboratory 7: Preparing Hangman for Turn-In

Module 16: More on String Formatting

Laboratory 8:

Examination Preparation:

Sample Examination: )

  • Laboratory 10 [click here]
  • Solution [click here]
  • Examination

    Module 17: Using the random module for fun and profit

    Module 18: Default arguments for functions and anonymous functions

    Module 19: Dictionaries

    Laboratory 11

    Module 20: More on Dictionaries

    Module 21: Exam Preparation

    Laboratory 12

    Week of Examinations (August 12 - August 19)

    Module 22: Tuples and Frozen Sets

    Laboratory 13

    Module 23: Comprehension

    Laboratory 14

    Module 24: Comprehension II

    Laboratory 15

    Module 25: Exception Handling

    Laboratory 16

    Module 26: Preparation CIA


    Python for Big Data II

    Module 1 : Strings II.

    Laboratory 4

    Module 2: Files

    Module 3: String Formatting.

    Laboratory 1

    Module 4: Using the random module for fun and profit

    Laboratory 2:

    Module 5: Default arguments for functions and anonymous functions

    Module 6: Dictionaries

    Laboratory 3

    Module 7: More on Dictionaries

    Laboratory 4

    Module 8: Tuples and Frozen Sets

    Laboratory 5

    Module 9: Comprehension

    Laboratory 6

    Module 10: Comprehension II

    Module 11: Exceptions

    Module 12: Classes and Objects I

    Module 13: Classes and Objects II

    Module 14: Classes and Objects III