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.