Chapter 1 - Introduction Flashcards
Why do we write programs?
To solve a problem. They are hiring STEM majors by other disciplines b/c they solve problems.
What makes you better at solving problems?
Solving problems. We can train someone in a subject matter if they can already solve problems.
How do we solve problems? 5 steps?
1) Understand the problem (MOST IMPORTANT)
2) We design the solution (b/c we like reusable solutions)
3) Multiple designs (competing)
4) Coding/Implementing the solution (this class)
5) Testing the solution (gets overlooked in academic environment. We need to do our own tests).
Solving problems is a waterfall or simultaneous?
It’s simultaneous (different than engineering). It can be a painful process if you are working in a group.
What is the KEY in being successful in software engineering.
Breaking down the program into SMALLER manageable pieces. You’re going to spend most of your time on the smaller pieces of the program. THIS way you can.
How does having small modules help?
It helps by creating well dedicated portions of a program, you get reusable code to use elsewhere.
What is the key piece of Object Oriented Languages and design?
It’s software reusability, especially with objects.
What are the 2 broad issues we run into?
1) Syntax (there is a lot more syntax requirements than python). In java they are all over the place. Java does not care about indentation (unlike Python). We will want to use good style (nicely indented, java style guidelines, white space).
2) Semantics (Logic): A program that is correct syntactically doesn’t always do what we ask of them. Semantic errors are harder to fix.
Which errors are easier to fix?
Syntax is easier, semantics is harder to capture, which can be very subtle.
PROJECT: Calculate the change? Why did 50% not succeed?
Insufficient testing. Boundary testing. Type issues.
What are the 4 different kinds of errors?
1) Syntax: (COMPILE ERROR)
2) Semantics Errors: Wrong words, that don’t have a meaningful definition. (COMPILE ERROR).
3) Execution error (after the .class file is created it might not be easy).
4) Output is not what it should be (intent error).
What is the hardest error to fix?
Intent error, because it looks like everything is working properly. There are an infinite number of INPUT VALUES. Hopefully we will TEST well.
How much level of confidence do we need to release the product?
It depends. If its for robotics surgery, it has to be pretty high. If its a video game then a few glitches is fine, since its more important that we release it timely with regards to marketing. This is the same with HW vs Projects.
What are the THREE KEY terms?
Classes, methods, and statements?
Where will the program always start?
MAIN method. That’s what the system will always start with. The main method tells the CPU to compute Lincoln 1. And Lincoln1 may say to run Lincoln2.