Intro: Welcome (why and goals) Flashcards
What is the first reason that makes it hard to write programs?
(1) When you’re asked to write a program you’re typically given a poorly formed problem (a task description that is vague, incomplete or inconsistent). So the FIRST challenge is FIGURING OUT EXACTLY what we want our program to do. THE DESIGN METHOD we’re going to learn, the first big thing it does is HELPS US FIGURE OUT exactly that.
What is the second reason that makes it hard to write programs?
The second thing that makes programming hard is oftentimes the program is TOO BIG for us to solve in one go. In fact, the way our brains work is we can only FOCUS ON ONE SMALL PART of the program at once. How our brains work. So we have to find someway to MANAGE THAT COMPLEXITY. THE DESIGN METHOD BREAKS DOWN THE PROGRAM down into WELL-CHOSEN smaller pieces. We can then write one part of the program for each piece of the problem. The pieces end up fitting well and well tested. This creates a program that’s EASY TO READ and EASY TO MODIFY.
Why is it important to be able to easily read and modify a program?
Any program that’s actually useful ends up needing to be modified to add some new functionality or to fix a hidden problem.
What’s the GOAL of a well written programs?
Having programs that are formed of nice pieces that fit together well, are well tested, and easy to modify. THEY HAVE A GOOD DESIGN PROCESS> focus on this.
What is systematic program design (the design method)?
The whole trip from poorly-formed program to well-structured solution is systematic program design. THIS IS WHAT SEPARATES really good programmers from people who just type and hope for the best.
How will I do best in this course since it’s not a lecture as much as the teacher and you sitting at a desk to solve the problem?
Type along with the teacher to solve the design problem step by step. You don’t get good by watching someone else do it but by doing it yourself (practicing it and internalizing it).
Why are we focusing on BSL (beginning student language)?
We are here to learn design techniques that can be transferred to other languages. REPETITION IS WHAT MAKES YOU LEARN and things click. We are what we repeatedly do (Aristotle).