Python for Fine Programmers

  • Description:

    This course will provide an introduction to programming using PythonTM for motivated students with some or no prior experience in programming.
    The course will cover the main problem-solving/algorithm strategies and give training in Python by implementing the strategies discussed in the lecture.

    As it is said that one can become a fine programmer either by:
    (i) Years of programming OR (ii) Doing some programming along with an algorithm course.
    This course lets the students choose the latter option.

    The course would not only give an idea about the language, but also would help in giving a feel for better programming practices along with developing some nice programs.

    History of the Course
    The very same course was offered in Summer Semester 2009 and it contained the basic and important things in python along with some mini-projects of realistic nature. (The basic structure of a search engine was developed through a series of weekly assignments).

    For any questions/queries/clarifications, contact: sadanand@in.tum.de
  • Lecturer:
    Prof. Dr. Ernst W Mayr

  • Teaching Assistant
    Sandeep Sadanandan

  • Module:

  • Area:
    One lecture / Two hours per week in area III (Theoretical Computer Science).

  • Time and Location:
    The classes will take place on every Thursday, 12:15–13:45 @ MI 02.09.014
  • Exercises:
    Along with the lecture.

  • Audience:
    Motivated students with interest in Algorithms or learning a language which is used in great projects like StarWars.

  • ECTS: 3 points

  • Prerequisites:
    Basic idea about algorithms and programming would be helpful but not necessary.

  • Recommended for:
    Students of initial 4 semesters.

  • Lecture Notes
    To appear here as the lectures take place.
    Slides Problem Set Solutions Extra/Trivia
    Lecture 1 Questions 1 Solutions 1 http://slashdot.org/
    Programming Pearls
    Physics for future Presidents
    Lecture 2 Questions 2 Why Python by Eric S Raymond
    The Socratic Method
    Lecture 3 Questions 3
    Lecture 4 Questions 4
    Lecture 5 Questions 5 TED
    Do watch at least the 'mathemagic' talk by Benjamin Arthur.
    Lecture 6 Questions 6 Steve Yegge
    Lecture 7 Questions 7
    Lecture 8

  • Contents:
    • Tools for computing - basic constructs, Exponents, Logarithm, Automata
      • Python - basic types, operators, if/while, Lists
    • Programming strategy - Recursion
      • Python - Functions, Recursion, for loops, Functions
    • Divide and Conquer, Basic data types
      • Python - Classes, Object oriented programming
    • Regular expression, Hashing
      • Python - Regular expressions and dictionaries
    • Dynamic Programming
      • Python - Strings, String operations.
    • Operating system interface, file operations
      • Python - file i/o, pickling, shelves
  • References:
    Contents of this course are essentially covered by the following books/locations:
    • Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ron L. Rivest, Clifford Stein.