Intro to Programming
"The most effective martial artists specialize in their discipline, but are not afraid to cross-train in others. Bruce Lee—arguably the most famous and influential martial artist of the past century—trained first in Tai Chi Chuan, then Gung Fu, and boxing, as well as learning western fencing. The insight taken from so many disciplines led him to create the Jeet Kune Do form of combat.
Programmers are not all that different. Cross-training in other languages and frameworks can only improve one’s overall mastery of the craft. " ~ Antonio Cangiano, Software Engineer & Technical Evangelist at IBM, http://antoniocangiano.com/
Course Description
“High-level” programming languages such as Perl, PHP, Python, and Ruby allow us to abstract away certain details of the computer, providing an ideal medium for a top-down approach to learning programming, with lower-level concepts from Computer Science emerging only as they become necessary. We will take a “learn by doing” approach as much as possible, utilizing open source software and programming languages.
Each student will specialize in one language but concepts will be expressed in multiple languages, illustrating differences in language “syntax” as well as somewhat universal concepts like variables, data structures, iterative operations, classes, and subroutine definitions. In real-world and professional situations, those with multilingual exposure are preferred not only for the utility that a multilingual programmer brings, but for the enhanced comprehension and skill that comes from seeing how the same concept is applied or the same problem is solved in different ways.
The students who took this course the previous semester (and are now taking my intermediate course) will be available to help and mentor, and as time and skill allow, introductory students will be able to help with the development project that the intermediate students are working on. Computationally-curious and/or mathematically-minded individuals are encouraged to enroll, with basic computer and text processing knowledge a requirement, and a laptop highly, highly recommended (please do what you can to procure or borrow one for class as there will be many hands-on activities). The class website is being totally redone and will be added to by students this semester. It can be found at www.flossclass.com
