[pythonvis] Proposal: Syllabus for the meetings

  • From: "Al B" <ablazik@xxxxxxxxxxx>
  • To: <pythonvis@xxxxxxxxxxxxx>
  • Date: Sat, 10 May 2014 11:51:28 -0400

Hail Pythonvis list members!

I don't think that a syllabus has any place in an open discussion meeting. An 
agenda would be better to control the "fast pace of the course" which could be 
better described as a  "free for all"!

Agenda proposal: first 30 minutes(variable)  for Python beginners and second 30 
minutes(variable) for experienced Python programmers. I would also ask that 
responders to novice questions, hopefully experienced Python users, would be 
very specific and concise in their answers and not volunteer any unnecessary 
information. Likewise, problems submitted by experienced Python programmers 
will be more complex than syntax or semantics problems and will probably need 
follow-up emails to show actual code that produces the problem.
  
Course instruction is totally the responsibility of the individual. It may be 
any of the several tutorials that have been suggested on the list, a formal 
college level computer science  course or any other form of instruction. 
However, I would like to see one, preferably several , members compose and 
issue a "basic instruction ..." email weekly  that will be archived and 
available for future list members. A good example of this would be the email 
from Jet (Jeffrey Thompson) titled "How I program in Pythonn" submitted this 
week  after our 3rd chat room meeting. 
I encourage all moderators to offer information on joining the Pythonvis 
mailing list.  

Comments, criticisms, additions and refinements are sought for this proposal. 
Al B





----- Original Message ----- 
From: "Joseph Lee" <joseph.lee22590@xxxxxxxxx>
To: <pythonvis@xxxxxxxxxxxxx>
Sent: Thursday, May 08, 2014 8:48 PM
Subject: [pythonvis] Proposal: Syllabus for the meetings


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: