Skip to main content

CSC 322.01, Class 41: Wrapup

Overview

  • Preliminaries
    • Notes and news
    • Upcoming work
    • Extra credit
    • Questions
  • Planning for Friday
  • The subject matter of the course
  • EOCEs (official and unofficial)
  • Informal debrief
  • Prep time

Preliminaries

News / Etc.

  • Mentor office hours? No.
  • The Mayflower project will appear in the Herald Register.
  • If you are a senior and have not filled in the senior breakfast rsvp, please do so asap.

Upcoming work

  • Presentations Friday
    • About ten minutes + five minutes for Q&A + five minutes transition.
    • Make sure that your computer works in this class room or that you can use the computer that is in the room..
  • Final portfolios due end of finals week.
  • Project instructions due end of finals week.

Good things to do (Academic/Artistic)

Good things to do (Peer)

  • Piano concert tomorrow night!
  • WGMC Thursday at 6pm

Good things to do (Misc)

  • Arts thing Thursday at 7pm at the Stu.
  • CS Picnic Friday
  • Voice performance Friday night.

Questions

Planning for Friday

Schedule

  • 2:00-2:15, set up, introduction
  • 2:15-2:30, Mayflower
  • 2:35-2:50, Global Health
  • 2:55-3:10, Local Foods
  • 3:15-3:30, PALS GALS
  • 3:35-3:50, Survivor support
  • 5:00-n:nn, Picnic

Food

  • Cheese
  • Fruit - Pineapple, strawberries, grapes
  • Crackers for cheese, including gluten-free ones and triscuits
  • Cheetoes and cheese popcorn and caramel corn
  • Hummus
  • Assorted beverages

The subject matter of the course

Building large projects

  • Delegating/dividing work.
  • Assigning roles to each member.
  • Ethics of the client
  • Working with legacy code
  • Designing projects so that you can work on parts independently and they can work together. (“APIs”, in the more general sense.)
  • Better coding practice, particularly the object-oriented issues introduced in POODR.
  • Practice refactoring and redesigning code.
  • Practice with the agile methodology
    • Picking small enough tasks
    • Working with clients to prioritize tasks
    • Estimating
    • (Testing)
  • Working with git
    • Branches!
    • Merge conflicts
    • Reading other people’s code
    • Perhaps some changes to git workflow

Soft skills

  • Ethics
  • Working with a team, particularly managing workload and expectations and …
  • Working with a client, particularly a non-communicative client
  • Intersection of agile with everything else - need to coordinate as part of agile.

Working with uncertainty

  • What do you do when you can’t reach the client?
  • Issue of long-term planning vs. short-term planning.
  • How to read error messages and find solutions.
  • How to understand someone else’s undocumented and poor design.
  • Working in a system that you do not understand completely.
  • Changing requirements
  • How Web searches can help you garner information / interpreting those results.

Ruby/Rails

  • Modules
  • Duck typing
  • Deeper understanding of polymorphism and inheritance

Everything else

  • Ethics
  • “I hadn’t thought about reuse between projects before.”

EOCEs (official and unofficial)

Informal debrief

Obvious suggestion: More feedback.

New class structure: Combined 321 and 322.

  • 6 hpw in-class all semester,
  • 6 hpw out-of-class all semester.
  • Less time for 322 projects early in the semester
  • More time for 322 projects in the second half of the semester.

Suggestion: Move POODR earlier and cover all of it. (The next chapter introduces factories in context.)

  • Generally supportive.

Suggestion: Drop public sprint retrospective/planning after the first few weeks.

  • Sam likes it the first few weeks because you learn from each other and because the critiques are common. “And what are the user stories?”
  • After that, small groups seem better.

Suggestion: Add two required “Here’s something really cool I did this past week.”

  • A place to display pride in your coding work.
  • Your client might not respect that as much.
  • “I refactored this crappy code; look how much more beautiful it is now.”

Suggestion: Enforce TDD. Students may not add a feature unless they’ve written a test first.

  • Requires that we have more practice writing tests.
  • We would use similar RSpec tests to those Hartl introduces.

Question: Should we continue using Hartl?

Other thoughts

  • Six credits?
  • Try to make sure that we understand everything before we do the real coding.
  • Provide more explicit points back to what we should have known?
  • Issue of balancing hours of expected worked.
  • Limit readings and other expectations in the second half of the semester. The focus for the second half should be making progress on our projects.
  • Consider shortening the time in class to discuss readings. (If people have done the journaling well, this is less necessary.)

Prep time