CS 105L: Introduction to Computer Programming using Python
Spring 2013

Computer Science Department
University of New Mexico

Instructor:
Joel Castellanos
Department of Computer Science

Course Description
CS-105L, Introduction to Computer Programming, is a gentle and fun introduction. Students will use a simple Integrated Development Environment to author small programs in a high level language that do interesting things.

Pre-Requisites: None.
Co-Requisites: None.

CS-105L will be taught using the Python programming language. Python is a general purpose programming language that is relatively easy to learn. Python runs on Windows, Linux/Unix, and Mac OS. Python is free to use, even for commercial products, and is open source. Students will author Python code using a simple Integrated Development Environment such as IDLE or PyScripter. In addition to python programming, the course also covers some of the great ideas in computer science such as modeling, visualization, emergence, search engine page ranking systems, and complex adaptive systems.

Throughout the course, students will author many short programs (usually less than fifty lines) that preform two-dimensional graphics, animations and customized image manipulations.

Much of the second half of the course will be devoted to group projects to be presented at Mesa del Sol Student Showcase to an audience of peers, UNM faculty from the School of Engineering, the College of Arts and Sciences, the College of Fine Arts, and Anderson School of Management together with people form the larger Albuquerque community.

CS-105 is designed as a first course in computer programming for:

  1. Pre-CS majors who do not have previous programming experience and are not yet ready for the fast pace and rigor of CS-152 (Computer Programming Fundamentals). Note: CS-105 do NOT count as CS credit for a CS major.
  2. Students without programming experience who want to learn the basics of programing, an introduction to the Python programming language, and gain practical skills in using programs and scripts to create customized multi-media effects and other tasks.



Syllabus & Lab Schedule:

CS-105L Syllabus

Schedule of all lab section times and instructor names/e-mail


Week 1: Using IDLE and PyScripter, Console I/O and the basics of Turtle Graph in Python
  1. Read Chapter 1 of "Introduction to Programming Using Python" By Y. Daniel Liang
  2. CS-105 Video: Download, Installing and first Turtle Graphics project in Portable Python
  3. Textbook Video: 1-1: Start with Python.
  4. Textbook Video: 1-2: Start Turtle graphics
  5. Lecture Notes: Introduction and I-clicker
  6. Lab 1: Your Name in Turtle Graphics


Week 2: Variables, Assignment Statements and Expressions in Python
  1. Read Chapter 2 of "Introduction to Programming Using Python" By Y. Daniel Liang
  2. Textbook Video: 2-1: Python Assignments.
  3. Textbook Video: 2-2: Python Mathematical Operators
  4. Lecture Notes: Chapter 2: Variables Assignments, plus a bit of Loops
  5. Lab 2: Looping Turtles



Week 3: Math, Input, Strings and Objects
  1. Read Chapter 3 of "Introduction to Programming Using Python" By Y. Daniel Liang
  2. Textbook Video: 3-1: Python String Operations
  3. Textbook Video: 3-2: Python Turtle Graphics: Drawing Shapes
  4. Lecture Notes: Chapter 3: Strings and Output
  5. Lab 3: The Pound is Sinking



Week 4: Boolean Expressions and Conditional Control Flow
  1. Read Chapter 4 of "Introduction to Programming Using Python" By Y. Daniel Liang
  2. Textbook Video: 4-1: Boolean Expressions
  3. Textbook Video: 4-2: Coffee Price (to tax or not to tax: If lets you ask a question)
  4. Source Code Grid-version1.py First version of grid making program - this program runs, but does not do quite what we want it to.
  5. Lecture Notes: Chapter 4: Conditional Control Flow
  6. Lab 4: Lindenmayer System, Part 1



Week 5: Loops
  1. Read Chapter 5 of "Introduction to Programming Using Python" By Y. Daniel Liang
  2. Textbook Video 5-1: While Loops
  3. Textbook Video 5-2: For Loops



Week 6: Functions Part 1
  1. Read Chapter 6, sections 6.1 through 6.6 of "Introduction to Programming Using Python" By Y. Daniel Liang
  2. Textbook Video 6-1: Using Functions
  3. Lab 5: Lindenmayer System, Part 2



Notes & Other References:
  1. Official Python v3.2.3 documentation
  2. Introduction to Python, by Emilia Azure.
  3. Why Turtles?, by Emilia Azure.
  4. A Tour Around Python, by Emilia Azure.
  5. The Evils of eval(), by Emilia Azure.
  6. A python style guide, by Emilia Azure.



Past Exams:
Midterm Exam from Fall 2012
Final Exam from Fall 2012