Portfolio Review 1
Contents
Primary skills assessed
PR1's focus is on the basics of programming and the following skills will be assessed. While only one programming assignment (PA1) is required, additional assignments may be submitted and will be treated equally to the required one.
- planning software projects (requirements, use cases, flowcharts, and pseudo code) (2pts from each of Lab 1, PA1; 3pts from Quiz 1)
- writing basic C++ programs:
- outputting data to a terminal screen (3pts from PA1; 5pts from Quiz 1)
- interacting with a user via a terminal (3pts from PA1; 5pts from Quiz 1)
- variables (declaring, initializing, using, naming) (3pts from each of PA1, review questions; 5pts from Quiz 1)
- communication (5pts from each of Lab 1, PA1, report.txt)
- problem solving (3pts from each of Lab 1, PA1; 5pts from Quiz 1)
- creativity (2pts from each of Lab 1, PA1)
- effort (20pts across everything)
- participation (30pts from class)
Materials
The following materials are required in order to earn promptness points. All files must be submitted to Canvas in a zip file. See this page for details about the format.. And see this page for an example portfolio submission. You can find a zip file with place-holder text files for this portfolio review here.
- Lab 1 (requirements, use cases, flowchart, pseudo code) and a reflection.txt file (see the example lab reflections in these two directories.)
- PA1 (see below)
- Topic review questions:
- What's the different between a literal and a variable?
- What's the difference between the data types
int
andshort
? Why might a programmer use one over the other? - Suppose you have the variables
int age
andfloat exactAge
, the latter of which holds the value 20.15. You want to assign the whole number part ofexactAge
; what are your options for doing so?
- README
- a portfolio report
- Quiz 1 (no need to submit)
Programming Assignment 1 (PA1)
Plan and begin implementing a terminal-based program that interacts with the user. You are free to do what you want, as long as you meet the following requirements:
- it cannot be based on anything we did as a class
- it must ask the user for at least 3 different inputs (so three separate
cin
calls) - it should be somewhat complicated (e.g., not just ask for five names)
- at least four variables must be used
- two of which should be different types from the others (e.g., two floats and two strings)
- the program must be communicate its purpose and any instructions to the user in a clear manner
- you may talk the ideas out with friends, but your work must be your own (so don't work on your flowcharts, pseudo code, or real code together); the easiest way to do this is to pick different ideas to start with!
Here are some ideas, but don't feel glued to this list:
- text-based game (action, RPG, board)
- fortune teller
- ATM
- one of those "what price is this?" machines you find in stores
Your completed PA1 should consist of the following:
- a README describing:
- what your program does (one sentence description)
- how to run it
- anyone you consulted, including tutors, when planning and implementing
- the planning data in one text file:
- requirements
- use cases
- flow chart (this can be a separate PDF or image file)
- pseudo code
- the code itself; this should be formatted using the style guidelines; include lots of comments, e.g., based on your pseudo code
- reflection.txt—a reflection similar to the lab reflection