Welcome to CS173!
Pioneer of the UNIVAC I who wanted to program computers in English
... and was told she couldn't!
Pioneer of COBOL computer language
Head of the NASA "Computers" (mathemeticians)
Programmer at Goddard Space Flight Center
Project Echo Satellites (1 and 2)
Computers | ??? | Humans |
---|---|---|
Compute directions to Florida | Pick out items at a grocery store that add up to exactly $150 | Explain a complex concept using metaphors |
Identify the component notes in a song | Predict recidivism | Break words into syllables (perfectly) |
Identify winning strategies in Chess | Determine a good job candidate for a new job opening (why?) | Reason about new information |
Detect anomalies in your day-to-day routine for public health monitoring | Can the countries on a world map be colored in with 3 unique colors without using the same color for two neighbors? | Enact empathetic policies |
We will learn to program in the Java programming language.
More importantly, we will learn to develop software that does interesting things using programming as a tool.
Most importantly, we will learn to develop software that is easy for others to contribute to and to maintain as part of a team!
Computing is rarely done in isolation.
The code you write is only as useful as it is maintainable by the next person.
Software development is challenging, and often requires some iteration to get right.
Fortunately, there are tools to help us!
One challenge when writing software is that it interacts with the outside world, and with a human user.
They may use the software in ways and in environments that we did not expect. It’s impossible to try everything!
Fortunately, software testing techniques help us do the best that we can to ensure robust software.