Introduction
Welcome back! We are now on 1.3 of AP Computer Science Principles!
In this article, we will go over the learning objectives for 1.3, as outlined in the AP CSP CED.
- CRD-2.E - Develop a program using a development process.
- CRD-2.F - Design a program and its user interface.
- CRD-2.G - Describe the purpose of a code segment or program by writing documentation.
- CRD-2.H - Acknowledge code segments used from other sources.
Development Processes
A program’s development process is just how the program is made.
There are a few different types of development processes. Most commonly, the process is orderly and intentional. It follows a set path; it’s step-by-step.
For example:
- The Waterfall Model
- The V-Model
Note: It’s not necessary to know the specific models, just that there can be orderly or exploratory development models. Click to learn more about the Waterfall model
Conversely, some models are exploratory in nature. This is basically just saying that they’re experimenting and finding things out as they go along
There are two types of processes mentioned in the CED. These are: iterative and incremental, allow me to explain each.
Iterative processes have the developer making prototypes and testing said prototypes of their program using feedback, testing, or reflection throughout the process. In other words, they make the program and work on it until it’s a viable product.
Incremental processes work differently. Instead of making one prototype that the developer works on, the program is broken up into pieces. These pieces are then added to the main program once they work.
Phases of Program Development
First, there’s investigation and reflection. In this phase, you’re trying to establish the program's purpose; its intention and what you want it to do. Investigation is useful to understand programming constraints, the concerns of the users, and the interests of the users. There are a few ways investigation can be conducted:
- Collecting data through surveys
- User testing
- Interviews
- Direct observations
You then take the results of your investigation; the stuff you know the user wants, and use that to reflect on your program. You make sure you understand all the restrictions, requirements, and concerns of the program, and use them to build your program.
This is crucial to make sure you end up with a program that the user will actually use, and making the process easier for you, the developer.
Then you have the design phase. In the design phase, you’re just outlining how you’re going to get the program to do what you want it to. This phase may include:
- Brainstorming
- Planning and storyboarding
- Organizing the program into modules and functional components
- Creating diagrams that represent the layouts of the user interface
- Developing a testing strategy for the program
Program Requirements and Specifications.
Program requirements basically define how a program works. It provides a description of user interactions a computer must provide. What should the user be able to do, what does a user provide, etc. The program specification just defines the requirements for the program. After all this, you’re free to start the development process and all the prototyping, designing, programming, testing, whatever.
BUT! IMPORTANTLY!
Program Documentation
Documentation is the written description of the function of a code segment, event, procedure(function), or program and how it was developed. Basically, it’s just written words that explain how everything works and how it was made.
Something that works for this purpose are comments! Comments are just lines in a program that don’t affect the running of the program and can be used to explain anything in a program. They’re usually written with slashes, pound signs, backticks, or whatever this is: . (I’m looking at you, HTML).
In the case of programming languages, or environments, where comments can’t be used, alternative methods should be considered.
It’s important to write documentation for your program throughout its development, because this makes it easier to develop, maintain, and collaborate on programs.
Acknowledgement
When writing code, it isn’t uncommon to find a snippet that you want to use. This is fine, but it’s important to A. make sure you’re allowed to use it for whatever purpose you want to(class, assignment, job, etc.) and B. make a proper acknowledgement/citation to the original author. This acknowledgement should include the origin and author’s name.
