[pythonvis] Proposal: Syllabus for the meetings

  • From: Joseph Lee <joseph.lee22590@xxxxxxxxx>
  • To: pythonvis@xxxxxxxxxxxxx
  • Date: Thu, 08 May 2014 17:48:26 -0700

Hi,
One thing that came up during today's meeting was the pace of the course. We've discussed variables and functions today. However, some said the pace might be quite fast, so it was decided to post a proposed syllabus with some list of exercises that we can try.
My proposed syllabus is as follows:
Part 1: Introductory Python
1. Getting started: installing python, hello world and running scripts.
2.  Variables, comments and pass statement.
2.1. Variables as place holders for data (exercise: assign your name to a variable and print it).
2.2.  Writing comments as reminders and documentation.
2.3.  The pass statement.
3.  Speaking and be spoken to: print and input functions.
3.1.  Print function (exercise: print a string).
3.2. The input function (exercise: get two numbers, add them and print the result).
4.  Basic operators.
4.1.  The assignment operator (=).
4.2.  Basic math +, -, *, /, %).
4.3.  Logic (and, or, not).
5.  Conditions and loops.
5.1. If, elif and else (exercise: print if a number is even or odd).
5.2.  While loop (exercise: write first few sums).
5.3. For and range (exercise: print each individual character of a string).
6.  Welcome to functions.
6.1. What is a function (exercise: write an addition function that adds two numbers). 6.2. Pass versus return (exercise: return the maximum of two array).
6.3.  Calling different functions
6.4. Calling functions from different modules (exercise: call a function defined in another file).
7.  Basic data structures.
7.1.  Strings (exercise: print a string backwards).
7.2.  Lists and tuples (exercise: multiplication table).
7.3.  Dictionaries (exercise: basic phone book).
Part 2: Intermediate Python:
8.  Introduction to classes.
8.1.  Classes versus functions.
8.2. Defining class variables and methods (exercise: define a person class).
8.3.  The self keyword (exercise: writing a simle class method).
8.4. Constructing and assigning variables to classes (the init function).
9.  Operator overloading and classes.
9.1. Operators are functions (exercise: overloading the plus operator).
9.2.  List of overloadable operators.
10.  Inheritance: specialist objects.
10.1.  Classes are objects.
10.2. Inheritance (exercise: inheriting a worker class from a person class). 10.3. The super keyword (exercise: calling the superclass constructor before the child class).
10.4.  Multiple inheritance.
11.  Advanced goodies with functions.
11.1.  Functions as objects.
11.2. Map and reduce (exercise: building a table of lists using map).
11.3.  Recursion (exercise: factorial).
11.4.  using functions from libraries.
12.  Debugging, tracing and exceptions.
12.1.  Rules on debugging (exercise: indentation errors).
12.2.  Tracebacks and trace.
12.3.  Timeit.
12.4. Exceptions (exercise: throwing an exception after a string input).
13.  Files.
13.1.  Reading from a file.
13.2.  Writing to a file.
13.3.  Manipulating directory paths.
Part 3: Advanced Python:
14.  Comprehensions.
14.1.  List comprehension.
14.2.  Dictionary comprehension.
15.  Generators and concurrent runs.
15.1.  Generators.
15.2.  The yield keyword.
16.  More data structures:
16.1.  Trees.
16.2.  Stacks.
16.3.  Queues and priority queues.
16.4.  Hash tables.
16.5.  Graphs.
17.  Algorithms in Python:
17.1.  Sorting.
17.2.  Searching.
17.3.  Combining lists.
17.4.  Making it run faster.
That's all I can think of. If there are things to add or remove, please let us know (each chapter is about two weeks worth of audio sessions).
Cheers,
Joseph

Other related posts: