Introductory Programming in Python
Announcements
- 2 Feb: Check out the course administration page for details on assessment, etc...
- 2 Feb: Course Announcements will be made here, so check back regularly
Course Outline
- Basic Concepts
- Running Python and Python Code
- Basic Output
- Program State and Basic Variables
- Basic Input
- Flow Control: Conditionals
- Flow Control: Conditional Loops
- Flow Control: Sequential Loops
- Lists
- Tuples
- Dictionaries
- Strings in Depth
- Flow Control: Functions
- Variable Scope
- Importing Standard Modules
- More on Command Line Arguments
- Random Numbers
- Files for Input and Output
- Regular Expressions
- Basic Parsing
- Operating System Functionality
- Handling Dates and Times
- Writing Meaningful Error Messages
- Understanding Python's Error Messages
- Flow Control: Exceptions
- Debugging
- Flow Control: Recursion
- Classes and Objects
- Advanced Data Structures: Queues
- Advanced Data Structures: Stacks
- Advanced Data Structures: Trees
- Database Theory
- Relational Databases
- Structured Query Language
- Interfacing with databases using Python
- Parallel Processing
- Event Oriented Flow Control
- Graphical User Interfaces with WxPython
- Web Programming and Web Services
Other Practice Material
Practice makes perfect, although in terms of programing, it might be
better said that practice makes adequate. Learning to program
requires practice, and lots of it. While there are
exercises provided with each lesson, going from basic to tricky, there
are not nearly enough to make a good programmer from a complete
beginner. Truth be told, no number of exercises can do this. Becoming a
good programmer requires a desire to learn, and a desire to solve
problems, both classical problems in the form of exercises, and
problems of your own devising/encounter. That said, if you cannot find
enough of the former, here are some links to resources that provide
problems for you to solve.
- Project Euler: A
comprehensive list of mathematically oriented problems. Excellent
practice for generic problem solving skills.
- The Coding Dojo:
Presents the idea of a coding journal club of sorts. Check out the
KataCatlogue for problems to solve, or see if you can set something
like this up for yourself with buddies.
-
- Sphere Online Judge: Provides
a large set of problems, and you can upload your solution for
automated testing. Check out the 'problems' link on the menu on the
left.
Miscellaneous Material
Reference Material