Python for Fine Programmers
- Description:
This course will provide an introduction to programming using PythonTM for motivated students with a little 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.
- Lecturer:
Prof. Dr. Ernst W Mayr
- Teaching Assistant
Sandeep Sadanandan
- Module:
IN2206
- Area:
One lecture / Two hours per week in area III (Theoretical Computer Science).
- Time and Location:
Thursday 10:00 - 12:00
Room 03.09.014
- Exercises:
Along with the lecture.
- Audience:
Motivated first or second year students with interest in Algorithms.
- 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
Lecture Slides Problem Set Solution Set Lecture 1 Questions 1 Solutions 1 Lecture 2 Questions 2 Solutions 2 Lecture 3 Questions 3 Solutions 3 Lecture 4 Questions 4 Solutions 4 Lecture 5 Questions 5 bst.py, expr-eval.py, sets.py, Kth.py , reverse.py Lecture 6 Questions 6 [graph.py] urlmanager.py (for first two);; graphext.py (add this to the graph class - 3rd problem ;; Solution for the final problem is not explicitly published. Lecture 7 Questions 7 crawler.py;; Read the comments at the end of the file Lecture 8 Questions 8 ... Lecture 9 Questions 9 ... Lecture 10 Questions 10 Lecture 11 Questions 11
- 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
- Tools for computing - basic constructs, Exponents, Logarithm, Automata
- 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.
- Algorithms - by S Dasgupta, C H Papadimitriou, and U V Vazirani http://www.cs.berkeley.edu/vazirani/algorithms.html
- Python Tutorial http://docs.python.org/tutorial/