A series of lessons developing an application using Python, SQL, and C (optionally using Linxu/Git/GitHub). The series targets applied math students familiar with MATLAB who want to expand their programming skills.
Application: pycnumanal (python/C numerical analysis)
A Python/SQL program that, choosing from a collection of C numerical analysis programs, calls one of them with a user-specified problem size (n). The C program outputs the time required to run with that problem size. The Python program stores timings in a database, allowing it to later display graphical plots of the timings (seconds) vs. problem sizes (n). It supports displaying the timing curves of multiple programs on the same plot for comparison purposes.
See syllabus.doc for more details.
To get started on the lessons, go to the Lesson1 directory and open the Lesson1.doc file.
NOTE: while the code here contains much of my "good" programming habits and design philosophy, there are elements of the code that were designed to support the learning process for a less experienced programmer. For example, while I do not comment code lightly, there is more commenting in this code than I would normally do. Also, some of the structural decisions/implementations were done in away so as to make it easier for the learner to follow.
Another project, "pycnumanal," is related to "pycnumanal-lessons":
- builds on the final version of the code from "pycnumanal-lessons"
- is not a series of lessons, but rather my own personal effort at improving the program
- also hosted on my GitHub account