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. CS-105 is a hybrid course with the "lecture" segment bring online and the laboratory segment meeting in a computer lab with at most 20 students per section.

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

Toward the end of the course, students will work in small groups to develop one or more of their mini-projects into a slightly longer, slightly more polished capstone project 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


Textbook & Video Lectures:
  1. 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 2-1: Python Assignments
  4. Textbook Video 2-2: Python Mathematical Operators
  5. Textbook Video 3-2: Python String Operations
  6. Textbook Video 3-2: Python Turtle Graphics: Drawing Shapes
  7. Textbook Video 4-1: Boolean Expressions
  8. Textbook Video 4-2: Coffee Price (to tax or not to tax: If lets you ask a question)
  9. Textbook Video 5-1: While Loops
  10. Textbook Video 5-2: For Loops
  11. Textbook Video 6-1: Using Functions
  12. Textbook Video 6-2: Divide and Conquer



Notes & Other References:
  1. Official Python v3.2.3 documentation
  2. Handout 0: Introduction to Python, by Emilia Azure.
  3. Handout 1: A Tour Around Python, by Emilia Azure.
  4. Handout 2: The Evils of eval(), by Emilia Azure.
  5. Handout 3: Introduction to Python, by Emilia Azure.



Assignments & Source Code:
  1. Week 1-7
  2. Week 8: Turtle Graphics
  3. Week 9: Chapter 4: “if” Statements and Simple Collision Detection (a first step at making a game)
  4. Week 10: Chapter 5: Loops
  5. Week 11: Chapter 6: Using Functions



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