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.

Syllabus

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.

Modules

Week 1

Module 1: (June 18)

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

Module 2: (June 19)

Variables, types, and expressions.

Notice that both quizzes are given to you in advance.

Modules 3 and 4: (June 20) 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 (June 21): 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.

Week 2

Modules 7 (June 24): While Loops.

Modules 8, 9 (June 25): Functions.

Laboratory 1 (June 26)

Module 10 (June 27): More on Functions.

Laboratory 2 (June 28)

Module 11 (July 1): Lists.

Module 12 (July 2): Strings I.

Laboratory 3 (July 3)

Module 13 (July 3): Strings II.

Laboratory 4 (July 4)

Module 14 (July 8): Files.

Laboratory 5 (July 9 / 10) 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 (July 11): String Formatting.

Laboratory 6 (July 12)

Laboratory 7: Preparing Hangman for Turn-In (July 15)

Module 16: More on String Formatting (July 16)

Laboratory 8: (July 17)

Examination Preparation: (July 18)

Sample Examination: (July 19)

  • Laboratory 10 [click here]
  • Solution [click here]
  • Examination (July 24)

    Module 17: Using the random module for fun and profit (July 25)

    Module 18: Default arguments for functions and anonymous functions (July 26)

    Module 19: Dictionaries (July 29)

    St. Ignatius Day (July 31)

    Laboratory 11 (August 1)

    Module 20: More on Dictionaries (August 2)

    Module 21: Exam Preparation (August 5)

    Laboratory 12 (August 7)

    Week of Examinations (August 12 - August 19)

    Module 22: Tuples and Frozen Sets (Week of August 19-24 I)

    Laboratory 13 (Week of August 19-24 II)

    Module 23: Comprehension (Week of August 26-31 I)

    Laboratory 14 (Week of August 26-31 II)

    Module 24: Comprehension II (Week of September 2-7 I)

    Laboratory 15 (Week of September 2-7 II)

    Module 25: Exception Handling (Week of September 9-14 I)

    Laboratory 16 (Week of September 9-14 II)

    Module 26: Preparation CIA (Week of September 16-21 I)

    CIA (Week of September 16-21 II)

    Second Semester

    Module 1 Classes and Objects 1:

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

    Laboratory 1

    Module 3 Classes and Objects 3:

    Module 4 Classes and Objects 4:

    Project

    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 5: Classes in Action 1

    Laboratory 2 :

    Module 6 Classes in Action 2:

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

    Module 7 Decision Trees:

    Module 8 Tkinter 1 :

    Laboratory 3

    Module 9 Tkinter 2:

    Module 10 Tkinter 3

    Module 11 Tkinter 4: