OIM3640 - Problem Solving and Software Design

2025 Spring

Session 18 (4/01)

contain

Today's Agenda

  • Welcome/News/Announcements
  • Midterm Feedback Survey Results
  • Quiz on Data Structures and APIs

Welcome/News/Announcements

  • Assignment 2
    • Due 4/04 Friday. You should have started by now.
    • Please finish analyze_book.py first.
  • Midterm Feedback Survey
    • Thank you for your feedback!
  • Communications
    • Meet with me in person during office hours at least once this semester.
    • Email - specify course # in subject title, e.g., "OIM3640: GitHub settings"
    • Use Slack/GitHub when asking code-related questions
  • Questions?

Midterm Feedback Survey Results (anonymized)

  • Link on Canvas - Session 17

💡 What's Been Most Helpful or Enjoyable So Far?

  • If/else, loops, and functions have been super helpful
  • Real-world examples (Spelling Bee, NYT games, Python Challenges) made the learning meaningful and fun
  • Building a function from scratch and seeing it work
  • Creating small projects helped build confidence
  • Learning step-by-step logic has made it easier to approach problems
  • Jupyter Notebooks are a favorite for reviewing and practicing

🤯 What's Been Challenging or Confusing?

  • Tuples, dictionaries, and strings are still tricky
  • The Spelling Bee project felt hard — especially without knowing the game
  • Hard to remember when to use certain functions like sorted() or .lower()
  • Struggle with understanding code from scratch
  • Reading the problem and translating it into code can take a few tries
  • Need more time to digest new topics — especially during fast-paced classes

🤖 How Have GenAI Tools Helped?

  • Great for debugging, identifying errors, and explaining why code isn't working
  • Used to walk through code line-by-line and explain things like a personal tutor
  • Helpful for rewording problems and generating test cases
  • Some use it after writing their own code — just to compare or get suggestions
  • Also used for practice problems and reviewing syntax
  • Helps clarify concepts in a more digestible way

🧭 What Else Do You Want to Learn?

  • How to build apps or websites using Python + HTML
  • More about using APIs and connecting to real-world tools
  • Interested in web scraping and handling large chunks of data
  • Want to explore finance, business, or AI applications using Python
  • Curious about external tools like GitHub and public datasets
  • Would love to try building a simple game

🛠 Suggestions & Feedback

  • Pace feels fast at times — especially when trying to take notes and keep up
  • Would love more walkthroughs during class (live coding helps a lot!)
  • Clearer structure for each session would be helpful
  • Posting solutions is useful for reviewing and learning from mistakes
  • Having a list of commonly used functions would be handy for reference
  • Group time to code or discuss problems together would be appreciated

💬 Thank You for the Feedback!

  • I read every response — thank you for being thoughtful
  • You're not alone — many shared similar experiences
  • Your feedback helps improve this course with you
  • What we already do:
    • Full recordings ✅
    • Live coding with how I approach problems + pseudocode breakdowns ✅
    • Class skips some advanced topics compared to other CS courses ✅
    • Pair programming with peers/AI is encouraged ✅
    • Solutions posted ✅

🔄 Feedback → Changes

  • Pacing → More in-class recaps & pauses
  • Overwhelming Content → Focus on essentials; skip OOP
  • Exercises → More flexible deadlines
  • Quizzes → More practical, code-based questions
  • Assignments → More in-class time for group Q&A
  • Self-Study → Cheat sheet + how to use ChatGPT/Claude effectively

🚀 Final Thoughts

  • You're doing great, really! Especially for those new to coding
  • This course is meant to be challenging but achievable
  • I'll continue to adjust and support your learning
  • Please talk to me if you have any concerns or suggestions
  • Let's keep building cool things and have fun together

Assignment 2 - Text Analysis Project

  • Due 4/04 Friday
  • To get started:
    • Fork the base repository to your GitHub account.
    • Clone the forked repository to your computer.
  • To submit:
    • Push all the code and update the README.md file in your GitHub repository.
    • Create a pull request from your forked repository to the upstream repository.
    • Submit the URL of your project's GitHub repository to Canvas.
  • Please Start early!

What we have learned so far...

  • Variables, Expressions, Statements
  • Types: int, float, string, boolean, Nonetype, string, list, dictionary, tuple, set
  • Functions
  • Conditional Statements
  • Iterations: for, while
  • Pseudo-code
  • Exception Handling
  • APIs

Python 3 Cheat Sheet

Q&A

  • Questions from exercises, quizzes, assignments.
    • API?
    • analyze_book.py
  • Issues on GitHub
  • Any question today?

Quiz 4

  • This quiz is Open-Everything, Closed-People, Closed-AI.
  • Instructions:
    • Create a file, quiz4.py, inside quiz folder.
    • Copy the code from quiz4.py.
    • At the end of the quiz, Commit and Push to the origin repository with the commit message: "Finish Quiz 4 independently".
  • See grading rubrics on the next slide.

Quiz 4 Grading Rubrics

Question Points
1 30
2 30
3 20
4 10
5 10
6 10 (bonus)
Total 100 (110 w/ bonus)

--- # Introduction to Term Project - [Project Instruction](https://github.com/OIM3640/resources/blob/main/project.md) - **Teaming**: due **10/28, Monday** - **Proposal**: due **11/01, Friday** - GitHub repository for project: - **Only one** creates a public project repository. - The other member needs to **fork** this repository as a collaborator. --- # Fun Time - [r/ProgrammerHumor](https://www.reddit.com/r/ProgrammerHumor/comments/j9is2o/i_want_to_contribute_to_this_project/) - xkcd: [Tasks](https://xkcd.com/1425/) - Reddit - [My free, just-for-fun side project made $180 yesterday](https://www.reddit.com/r/SideProject/comments/1g6qllu/my_free_justforfun_side_project_made_180_yesterday/)