• Home
  • Courses
  • Resources
  • Assignments
  • Lectures
  • Code Examples

CS 224 -- Programming in Python

Location: Lecture: Centennial 3313
Lab: Wing 016
Time: 1:10--2:05 PM Monday, Wednesday, Friday
Professor: David Mathias
Office: Wing Technology 212
Email: dmathias AT uwlax DOT edu
Office hours (Virtual Only): Monday: 11:00--12:00
Wednesday: 2:15--3:15
Friday: 11:00--12:00
Office Hour Link: Zoom Link for Office Hours
Syllabus: PDF format
Textbook: Allen B. Downey, Think Python , 2nd Edition, O'Reilly, 2015.
Resources: A few (possibly) useful items for students in this class.

Course Description

This course presents the syntax and semantics of a particular programming language. Different offerings of the course will present different languages. Students are expected to be fluent in another programming language prior to enrollment.

Topics

  • Variables, expressions and statements.
  • Functions, return values, parameter modes.
  • Conditional statements.
  • Iteration, lists, list comprehension.
  • Strings, dictionaries, tuples.
  • Files.
  • Classes and objects, functions \amp methods.
  • Inheritance.

Course Objectives

By the end of the course, students should be able to:

  • Understand the syntax and semantics of the following elements of Python:
    • Simple data types including bool, int, float, complex
    • Collection data types including string, tuple, list, set, dictionary
    • Other built-in types including File, Function, Class, Method
    • Operators and expressions involving:
      • Relational operators
      • Arithmetic operators
      • Logical operators
      • List comprehension
    • Control flow including loops and conditionals
  • Understand the difference between classes and objects
  • Write classes and create and use objects
  • Understand file I/O
  • Understand and implement programs that utilize the above topics

Evaluation

  • 25% -- Programming Assignments
  • 10% -- In-class Programming and activities
  • 25% -- Group project
  • 5% -- Group project presentation
  • 35% -- Quizzes (approximately 6, equally weighted)

Programming Assignments

One of the largest components of your grade in this course is outside-of-class programming assignments. The only way to learn how to program is by programming. You will not be successful in this class unless you write your own code. I encourage you to study with others and to discuss concepts and ideas with classmates. However, you must write and submit your own work.

  • Programs are due at 11:59 PM on the due date. There is a long and proud tradition of programs being due at that time. You are, of course, welcome to submit well before the deadline.
  • Late submission are accepted up to 48 hours after they are due. Up to 24 hours late, there is a 20\% penalty. Up to 48 hours late, there is a 50\% penalty. Programs will not be accepted more than 48 hours after they are due.
  • Include, at the top of your program file, a block comment with the following information (in this order): your name, the assignment number, the due date, and a brief description of the assignment.
  • Comment your code. You will be tempted to skip this. Resist that temptation. Good commenting is critical.
  • Adhere to the coding conventions we discuss in class. I don't care that your uncle's wife's cousin told you to do things a different way. There are many ways to format code and I don't claim that my way is the only right way but it will be much easier for us to talk about code if we all use a common format.

In-class Programming

One day each week, we will meet in lab for in-class programming. During these sessions, you will be given a manageable programming assignment to complete. You are encouraged to work in pairs. While completion of the assignment is the goal, credit will be given based on making a good faith effort to solve the problem.

Additional Information

Additional information relevant to the course is available on the syllabus.

Copyright © H. David Mathias