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

WeekRunestonePointsDescription
Wk 1Ch 12Python programming language, variables and types
Wk 2Ch 2-32Debugging and object oriented programming
Wk 3Ch 4-52Sequences and iteration
Wk 4Ch 6-72Indexing, slicing, combining, and iterating through sequences (list, str, tuple)
Wk 5Ch 1-715MIDTERM EXAM - FOPP Chapters 1 - 7
Wk 6Ch 8-92Conditional expressions and modifying sequences
Wk 7Ch 2115MIDTERM PROJECT: Text Adventure!
Read Ch 21 for program design suggestions.
Wk 8Ch 10-113Files and dictionaries
Wk 9Ch 12-132Functions (def) and tuples (tuple())
Wk 10Ch 14-152Advanced iteration patterns and advanced functions
Wk 11Ch 16-172Sorting and nesting sequences (lists) and dicts
Wk 12Ch 18&202Testing python programs & Object-oriented (OO) programming
Wk 13Ch 01-1920FINAL EXAM
Wk 14Ch 222Install & use external Python packages (pandas, doctest)
Wk 15Ch 232Data-driven program design
Wk 16Ch 2420FINAL PROJECT: A data-driven application.