Grace Hopper Center

CSC 221 Weekly Assignments: Week 13

CSC 221


Overview

We will tack on Monday, November 25th to this week, and then have week 14 when we return from Thanksgiving break. We will use this time to complete our introduction to object-oriented programming in Python and to solidify our software development workflow.

Monday, November 25th

Classwork

In class today, we'll continue with our games we started last class. To start, each pair will present what you have so far for your class. Jeff will have a few announcements about repo grades.

Next, we'll discuss the idea of Python modules - we'll practice importing our class into the Python REPL and interacting with it there. We'll make sure we understand the dir() function that we can use to explore the attributes and methods available on on object, and we'll take this opportunity to revisit the if __name__ == "__main__" syntax.

Then, we'll have battles! We'll pair up one hero with one enemy. You'll fetch your opponent's code from their repo, import both characters into a REPL, and play with them. Here are a few things your new group of four should think about as you're playing:

  • What APIs are your classes presenting? Are they compatible?
  • Practice making a few instances of each class (e.g. have a group of four barbarians battle three musketeers)
  • How can you balance your characters to make your game more enjoyable?

Here are the pairs (scroll down to see who is on each of those teams):

  • The Dragon will attack the Paladin
  • The Beholder will attack the Warlock
  • The Blob will attack the Fighter
  • I guess that means the Rogue will have a friendly battle with the Ranger

Homework

There is no homework! Enjoy your Thanksgiving break ;-) Rest up, and come back in December ready to begin learning web application development with Django.

Thursday, November 20th

Classwork / Homework

Today we'll start a new activity that will help us think about how classes are helpful in software engineering. We'll work together to plan a big software project, and then we'll divide up into pairs to build it. As we're working, I'll take Markdown notes and publish them on this page

Each pair will take one class, which they will be responsible for implementing. We'll expect that your first commit is a set of doctests that define the behavior we've discussed, and then future commits will implement the behavior. You should use your 90 minutes of homework time to continue working on your assigned class. Next class, we'll check in about our progress. If enough of us are ready, we'll put all of our classes together to build our final game.

Here are the pair assignments:

  • Heroes
    • Warlock: Benjamin & Joshua
    • Fighter: Tai-Yu & Maddie
    • Ranger: Jackson & Adam
    • Paladin: Adam H & Yara
    • Rogue: Keamlak & Clara
  • Enemies
    • Goblin: Jeff &Kendyl
    • Bandit: Owen & Kidus
    • Dragon: Korban & Isaac
    • Beholder: Gabriel & Roey
    • Gelatinous Blob: Kara & Daniel

Evaluation

All commits for evaluation are due by Saturday, November 22nd at 11:59 pm.

Tuesday, November 18th

Classwork

Grades are in for the first evaluation of your git repos, with the class distribution being: A: 6, B: 4, C: 4, D: 2, and E: 3. We'll use this information to help solidify the process needed to score well under our Programming Assignment Grading Rubric (which is now linked from our homepage).

Shout outs go to Adam A., Isaac, Ben, Clara, Madi, and Daniel for showing us how it's done. We'll take a few minutes to look at the rubric and reflect on how we can increase the scores next evaluation round.

After that we'll decide together from among a two options as to what we do next. We could:

  1. present our solutions to the exercises orginially parcelled out in week 11.
  2. make new pairings for mini-projects followed by presentations next class now that we understand the workflow better.

Homework

TBD depending on our discussion in class today.