0.1 Fall 2024 Syllabus | (CISC) 179 - Intro to Python Programming
Fall 2024 Syllabus - Computer and Information Sciences (CISC) 179 - Python Programming
Instructor: Hobson Lane
Instructor email: lane@totalgood.com
Course of Record Number (CRN): 72536 (Fall 2024)
Office Hours: 10am Thurs & Sat sdccd-edu.zoom.us/my/hobsonlane
Description
This is an introductory course in Python programming, incorporating the fundamentals including functional programming and application design and test. You will learn how to program a computer to read from input devices (keyboard and files), and write to output devices (console and files).
You will learn how to:
- Analyze user needs and requirements
- Design Python applications including interactive games
- Write software for functions and business logic (decision trees)
- Test and debug Python programs
- Document Python programs using “doctests”
- Build Python programs that generate novel text
This course is intended for Computer and Information Sciences majors or anyone interested in the Python programming language.
Official Course Learning Objectives (CLOs)
- CLO #1 Understand from a Python perspective the control of program flow based on the conditional evaluation of a Boolean expression.
- CLO #2 Use Python to provide an if…else structure as a solution to a software problem.
- CLO #3 Understand from a Python perspective the control of program flow with a looping structure.
- CLO #4 Use Python to provide a looping structure as a solution to a software problem.
Important dates
- 08/18/2024 - Permission Numbers Visible in Faculty Portal
- 08/19/2024 - Fall Primary 16-Wk Session Begins
- 08/30/2024 - Primary Add/Drop/Refund Deadline
- 09/02/2024 - LABOR DAY (Campus Closed)
- 09/03/2024 - Instructor Census Drop Deadline - by NOON (Primary Session)
- 10/25/2024 - Withdrawal and Pass/No Pass Grade Option Deadlines for the Primary 16-Wk Session
- 11/11/2024 - VETERANS DAY (Campus Closed)
- 11/28/2024 - 11/29/2024 - THANKSGIVING (Campus Closed)
- 12/23/2024 - 01/01/2025 - Winter Break (Campus Closed)
- 01/03/2025 - GRADES FINALIZED
Prerequisites
High School Algebra (variables and functions)
Grades
Your final grade will be the weighted average of your accumulated scores on reading assignments, quizzes, two programming project assignments (labs) and two exams.
- 15%: 15 Weekly reading assignments in Runestone (1 point per assignment)
- 15%: 15 Weekly quizzes in Runestone & Canvas (1 point per quiz)
- 15%: Midterm exam in Runestone
- 15%: Midterm programming project on GitLab
- 5%: Program runs without syntax errors
- 5%: Contains all the required elements of the assignment
- 4%: Demonstrates understanding of Runestone FoPP Chapters 1-7
- 1%: Does the program utilize correct Python style (PEP8)
- 20%: Final exam in Runestone
- 20%: Final programming project on GitLab
- 5%: Program runs without syntax, logic, and semantic errors
- 5%: Program contains the required elements of the assignment
- 5%: Demonstrates understanding of Runestone FoPP Chapters 1-21
- 3%: Use docstrings appropriately
- 1%: Doctests pass
- 1%: Python style (PEP8) (passes Black or Flake8 linting)
Course outline
Week 1. Python programming language, variables and types
Sign into Runestone.Academy, read a chapter, and run code examples in the browser.
FOPP-1: Edit and run Python expressions and programs from the command line
Week 2. Debugging and object oriented programming
FOPP-2: Set and examine variable values and understand basic types (`str`, `float`, and `int` )
FOPP-3: Error types, error messages, finding and correcting logic and syntax errors.
Week 3. Sequences and iteration
FOPP-4: Import and use modules, namespaces, and object methods.
FOPP-5: : Use the Python `turtle` module to visualize program control flow in for loops.
Week 4. Sequences, indexing, slicing, iteration
FOPP-6: Indexing, slicing, and combining lists and strings (`list`, `str`, `\[start:stop\]`)
FOPP-7: Iterating through sequences with `for` and `while` loops
Project: Install Python and a text editor (Spyder, PyCharm or SublimeText) or IDE
Week 5. MIDTERM EXAM
Week 6. Files and dictionaries
FOPP-8: Use conditional expressions (`if`, `else`) to control program flow
FOPP-9: Modifying sequences and learn how to use the accumulator pattern
Mini project: Create a single-turn text adventure game using `input()`, `print()`, `if`, `else`.
Week 7. Midterm project - Build a text adventure game
FOPP-21 (Reading only) Program design.
**Midterm Project: Create a text adventure game** with 5+ turns using hard coding.
Week 8. Files and dictionaries
FOPP-10: Reading and writing files (`open`, `read`, and `write`)
FOPP-11: Dictionaries (`dict` containers)
Week 8. Files
FOPP-10: Reading and writing files (`open`, `read`, and `write`)
FOPP-11: Dictionaries (`dict` containers)
Week 9. Functions and tuples
FOPP-12: Functions (`def`)
FOPP-13: Tuples (`tuple()`)
Week 10. Advanced iteration patterns and functions
FOPP-14: Advanced iteration
FOPP-15: Advanced functions and `kwargs`
Week 11.
FOPP-16: Sorting sequences
FOPP-17: Nested data
Week 12.
FOPP-18: Testing python programs (test cases)
FOPP-20: Object-oriented (OO) Python programs (classes and objects)
Week 13. FINAL EXAM (FOPP Chapter 1-20)
Week 14. Install & use external Python packages (pandas, doctest)
14.1 Pandas Python package for reading and writing HTML and CSV tables.
14.2 Project: Move text-adventure strings from Python variables to a Spreadsheet or text file
Week 15. Design final project (data-driven text adventure)
15.1 What is a data-driven program?
15.2 Draw tree diagram of user decisions and program `if` branches in your text adventure game
Week 16. FINAL PROJECT: A data-driven application.
Final Project: Load text-adventure game (or chatbot) content from CSV.
Final Project: Use functions, loops, and text files (CSV) to create data-driven Python programs
Schedule
| Week | Runestone | Points | Description |
|---|---|---|---|
| Wk 1 | Ch 1 | 2 | Python programming language, variables and types |
| Wk 2 | Ch 2-3 | 2 | Debugging and object oriented programming |
| Wk 3 | Ch 4-5 | 2 | Sequences and iteration |
| Wk 4 | Ch 6-7 | 2 | Indexing, slicing, combining, and iterating through sequences (list, str, tuple) |
| Wk 5 | Ch 1-7 | 15 | MIDTERM EXAM - FOPP Chapters 1 - 7 |
| Wk 6 | Ch 8-9 | 2 | Conditional expressions and modifying sequences |
| Wk 7 | Ch 21 | 15 | MIDTERM PROJECT: Text Adventure! |
| Read Ch 21 for program design suggestions. | |||
| Wk 8 | Ch 10-11 | 3 | Files and dictionaries |
| Wk 9 | Ch 12-13 | 2 | Functions (def) and tuples (tuple()) |
| Wk 10 | Ch 14-15 | 2 | Advanced iteration patterns and advanced functions |
| Wk 11 | Ch 16-17 | 2 | Sorting and nesting sequences (lists) and dicts |
| Wk 12 | Ch 18&20 | 2 | Testing python programs & Object-oriented (OO) programming |
| Wk 13 | Ch 01-19 | 20 | FINAL EXAM |
| Wk 14 | Ch 22 | 2 | Install & use external Python packages (pandas, doctest) |
| Wk 15 | Ch 23 | 2 | Data-driven program design |
| Wk 16 | Ch 24 | 20 | FINAL PROJECT: A data-driven application. |