OIM3640 - Problem Solving and Software Design

2026 Spring

Session 07 (2/10)

contain

Today's Agenda

  • Announcements/Updates
  • What We've Learned So Far
  • 📝 Quiz 0 (Paper Quiz)
  • Your Turn

Announcements/Updates

  • Repo Structure — follow naming conventions:
    • notebooks/ — Jupyter notebooks
    • logs/ — Learning logs: s01.md, wk04.md, ideas.md, ...
    • code/ — Chapter exercises: ch01_ex02.py, ch03_ex01.py, ...
    • Write meaningful commit messages
  • Getting Help
    • Office Hours: By appointment (in-person preferred or Webex)
    • Meet with me in person at least once this semester
    • Email: Specify course # in subject, e.g., "OIM3640: GitHub settings"
  • Questions?

Learning Logs → Weekly

  • Old: one log per session (s01.md, s02.md, ...)
  • New: one log per week (wk01.md, wk02.md, ...)
  • Why? Focus on deeper reflection, not more files
    • Synthesize what you learned across both sessions each week
    • Quality > quantity
  • Action: keep your existing s01.mds06.md as-is, start writing wk04.md from this week
    • No need to rename or combine old logs
    • Week numbers are continuous (no skipping, even during Spring Break)

Learning Log Template

This is a starting point. Feel free to adapt it to fit your style.

# Week X (Dates) - [Topics]

## What I learned this week
[Key concepts — focus on understanding, not syntax]

## Code I'm proud of (optional)
[A snippet + what it does and why]

## Challenges I faced
[What was hard? How did I work through it?]

## AI usage (if any)
[What I asked, how I used/modified the output]

## Questions going forward
[What's still unclear? What do I want to explore?]

💡 NEW: Track Your Ideas (logs/ideas.md)

  • Must originate from real problems/pain points
    • Your own experiences
    • Observed problems in daily life
    • Interviews with others
  • Iterative development required
    • Can start with one sentence
    • Must expand and refine over time
    • Show your thought process
  • No code required — focus on understanding the problem
  • Will be checked periodically for progress and quality

What We've Learned So Far

  • Variables & Types: int, float, str, bool, NoneType
  • Operators: +, -, *, /, //, %, **
  • Functions:
    • def, parameters, arguments
    • return vs print()critical distinction!
    • Scope: local vs global variables
    • Docstrings and naming (verb_noun)
  • for loop: for i in range(n):
  • Turtle: Drawing shapes with loops and functions

📝 Quiz 0

  • Paper quiz — no computers
  • 25 minutes
  • Topics: Everything from Sessions 01–06
    • Variables, types, operators
    • Functions (def, return, print, scope)
    • for loops
  • Question types:
    • Code reading (what does this do?)
    • Bug detection (what's wrong? how to fix?)
    • Fill in the blanks

📝 Quiz 0

Please put away all electronics.

Read each question carefully before answering.

Good luck!

📝 Your Turn

Work through the following chapters:

  • Chapter 4 (Turtle graphics)
    • Suggestion: Use Python's built-in turtle module in a .py script instead of jupyturtle in Jupyter notebooks
  • Chapter 6 (Return Values)
  • Chapter 5 (Conditionals)

Questions? Ask now!

Before You Leave (5 min)

  • Any questions?
  • Work on Chapter 4, 6, 5 exercises
  • Start your Learning Log for this week (logs/wk04.md)
  • Push your work to GitHub

Next session: More on Functions & Return Values (Chapter 6)

global styles