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.)