OIM3640 - Problem Solving and Software Design

2026 Spring

Session 02 (1/22)

contain

Today's Agenda

  • Welcome/News/Announcements
  • Quick Recap
  • Introduction to GitHub
  • Lectures:
    • Zen of Python
    • Chapter 1 - Programming as a way of thinking

Welcome/News/Announcements

  • You should have read the course syllabus
  • You should have installed
    • Anaconda with Python 3.13+
    • Git and GitHub Desktop
    • Visual Studio Code - with extensions: Python, Jupyter, Pylance
  • Email - please specify your course number
    • Subject title example: "OIM3640: Question about my GitHub settings"
  • Required: Meet with me in person at least once during the semester
  • Questions?

Quick Recap

  • The Big Shift:
    • Old way: Memorize syntax, code without docs
    • New way: Understand concepts, use AI effectively
  • Learn and build in public

From Problem to Prototype (cont'd)

  • Share your idea again with your neighbor
  • Share your AI-generated app
  • Discuss:
    • Does it work? Does it solve the problem?
    • What features are missing?
    • What was the most interesting question your partner had?
  • Don't forget to save your idea and take notes!

NOW, GET YOUR HANDS DIRTY!

Introduction to GitHub

  • Create GitHub account (if you haven't)
  • Create a new repository: oim3640 (no spaces)
  • Work on the repository
  • Commit and Push
  • Please submit the URL of your GitHub repository oim3640 on Canvas.

Why GitHub?

  • Version control: Track changes, undo mistakes
  • Collaboration: Work with others (and your future self)
  • Portfolio: Show your work to employers
  • Industry standard: Used by almost every software company

Terminal Basics

You can also use the terminal (command line) for file navigation:

Command What it does
cd folder Change directory (go into a folder)
cd .. Go up one level
ls (Mac) / dir (Win) List files in current folder
mkdir folder Make a new folder
pwd Print working directory (where am I?)

Repository Structure

oim3640/                     # Main course repository (public)
├── notebooks/               # Jupyter notebooks (from Think Python 3)
├── code/                    # Python scripts and modules
├── data/                    # Data files
├── logs/                    # Learning logs (Markdown files: s01.md, s02.md, ...)
├── mini_projects/           # Mini projects (may be here or separate repos)
└── README.md                # Portfolio homepage

Lectures

Before You Leave (5 min)

  • Any questions so far?
  • Start your Learning Log for today
  • Work on in-class exercises (okay to continue later)
  • Note down questions for next time
  • Push your work to GitHub

global styles