[pythonvis] Re: course study - Re: Proposal: Syllabus for the meetings

  • From: "Joseph Lee" <joseph.lee22590@xxxxxxxxx>
  • To: <pythonvis@xxxxxxxxxxxxx>
  • Date: Sat, 10 May 2014 15:01:02 -0700

Hi,
Right. However, one thing that comes up frequently (and might soon) is that
a lot of people might want to specialize in one or two specific areas
(mostly advanced concepts), and that others may do more research, thus
leading to presenting material not covered in any of our "official" books
that we're using. Thus, I'd say let's use the two books mentioned as the
absolute denominator - that is, the basis for our discussion for the most
part so experienced programmers can fill in other details if needed.
As for Al's proposal: splitting the audio sessions might be easy for easier
concepts, but when we get into intermediate level, it might become harder to
divide topics. I think what might work out best is to designate a topic for
the week for majority of our discussions (here and on the audio sessions, as
I consider these mediums equal), spend majority of our time discussing the
topic and answer any questions that might come out of this and other topics.
Cheers,
Joseph

-----Original Message-----
From: pythonvis-bounce@xxxxxxxxxxxxx [mailto:pythonvis-bounce@xxxxxxxxxxxxx]
On Behalf Of Charles Rivard
Sent: Saturday, May 10, 2014 2:42 PM
To: pythonvis@xxxxxxxxxxxxx
Subject: [pythonvis] course study - Re: Proposal: Syllabus for the meetings

Shouldn't we all study from the same books, preferably those specified for
this undertaking, so as to all stay on the same page, so to speak?  I can
only imagine the total confusion if we're all using different sources of
instructional material.

---
Be positive!  When it comes to being defeated, if you think you're finished,
you! really! are! finished!
----- Original Message -----
From: "Al B" <ablazik@xxxxxxxxxxx>
To: <pythonvis@xxxxxxxxxxxxx>
Sent: Saturday, May 10, 2014 10:51 AM
Subject: [pythonvis] Proposal: Syllabus for the meetings


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: