Please stay healthy and well!
Revised Project Proposal
Final Project Documentation
Implementation / Testing / Deployment
Everything needs to be done
Be loud, be proud!
Stay High-level (nobody wants all the details)
Summarize the problem
Talk about your Plan, Ideas, and Solutions
Describe Main Challenges (1-3)
And how you solved them...
Show something in action (video or live)
Describe final steps to finish in the last weeks..
Please give anonymous feedback
Due this week!
Destructive abort 294.5 seconds after launch
During implementation, a smoothing operation was left out
Control center thought that they lost control of the rocket
... and destroyed it
Panama City Radiotherapy Accident
Wrong Radiation Dose Calculation
Lack of Treatment Plan Verification
Too much Radiation
At least 9 Patients died (maybe 17)
many different SDLs
highly dependent on project
Dr. Grace Hopper
Pioneer of computer programming
Invented first linker
Popularized machine-independent programming languages
40 Honorary Degrees, Presidential Medal of Freedom, National Medal of Technology
Grace Hopper Celebration of Women in Computing (GHC) conference series for women in computing
Why don't we just start coding?
Technical Debt / Signature of Mess / Maintenance Hell
Testing and Deployment
More Testing / Evaluate
Bugs / New Features
- allows input of 2 numbers
- calculates the sum and displays it
- HTML/CSS for UI
- write JS code
- comment code
- write unit tests
- deploy on github pages
- does the UI show the sum?
- do users understand the UI?
- what if numbers are too long?
- subtract? multiply?
- fix bugs, create future plan
*12/28/1969 in Helsinki, Finland
Creator of Linux
Creator of Git
Opensource Software Pioneer
MS Thesis: Linux: A Portable Operating System
Net worth $150+ million
Keep it simple!
Jupyter Notebook ("glue"-code)
No user interaction here! Just Logic!
UI stuff here that calls the logic!
This was the VC (View and Controller) part of the MVC pattern!
Why structure the code like this?
Architecture is more important than features!
Divide and Conquer
It's a lifestyle!
Project Proposal Template
class Circle: instance = None def __init__(self): ''' Constructs a circle. ''' self.__radius = 7 # this is private self.__radius2 = 1 print('called constructor') def setRadius(self,radius): if radius == 7 or radius == 8: self.__radius = radius def getRadius(self): return self.__radius def getRadii(self): ''' Returns a list of both values. ''' return [self.__radius, self.__radius2] def draw(self): print('O'*self.radius) @staticmethod def create(): if Circle.instance == None: Circle.instance = Circle() return Circle.instance
No Code Access!
Who fixes bugs?
And, how fast?
What about interfaces between our code and the bought component?
Migration and Support Team!
Expand Your Coding Knowledge
Know As Many Tools As Possible
Improve Your Communication Skills
Think Big Picture
Understand All Solutions Are Not Equal
Build and Break Stuff
A system generates weather maps using data collected from unattended weather stations. Each weather station collects meteorological data and produces summaries of the data. On request, it sends the summary information to an area computer. The area computer uses a database of digitized maps to generate a set of local weather maps.
Prof. Kenneth Fletcher