Flowchart analysis¶
Compare flowchart with the text description and check correctness
E: Checking correctness¶
Peer feedback¶
Give feedback based on criteria.
Use a GitHub pull request to give feedback.
Giving feedback¶
Feedback can be formulated easier, if it is based on criteria. Criteria can in return improve how you do a task.
Here is an example, how we can give feedback for Exercise 3:
Input age, then name and store age and name in a database. If the user wants to enter more input, repeat the process.
Criteria | Comments | Score (0-2) |
|---|---|---|
Has a start and end | end is missing | 1 |
Used correct shapes | 2 | |
Process correct | Age input must come first, more input condition missing | 1 |
Overall | I recommend more exercises on flowcharts | 1 |
Overall is not necessarily the simple average, but rather a weighted average based on our feeling. It is a signal about how you are doing throughout the semester. In the end, you should focus on what you can improve rather than the score.
You will also give feedback to each other. We don’t expect to give each other scores — but you should give at least comments.
Feedback template¶
Peer feedback using GitHub¶
In the GitHub organization, click the repository you want to give feedback to.
The repository names consist of three parts. For example, indprog-hello-flowchart-geko-st means:
Course abbreviation: always indprog
Assignment name, e.g.,
hello-flowchartThe user whose work resides in the repository, e.g.,
geko-st
Inside the repository, click
Pull requeststab:
In pull requests, click the pull request
Feedback.It shows a comment with you as the author, but actually Classroom 50 left this.
Here you can (1) see the changes the student have done (2) comment on them.
Click
Files changed:
Click on the comment icon of the file you want to comment on. Copy Feedback template there and comment on it.

Click
Previewto see how your text will be rendered.Click
Start a review, if you want to give feedback to many files.After giving your feedback comments, click
Submit review:
A new window will show up.
You can enter concluding comment on your review and leave the rest as defaults. Click
Submit review.Then you will see your feedback in the conversation:

Finally, as the receiver, click on your repository and implement the feedback you received and resubmit your assignment.
E: Peer feedback¶
We will use Feedback in Pull requests for:
... finding out the changes implemented by the repository user since accepting the assignment (copying the assignment template).
... giving feedback to each other.
Tracking changes is a superpower of repositories.
Core programming concepts¶
Generalization: Exercise 3 gradually introduced the following core concepts:
Sequence
Input and variable
Output
Simple Condition
Compound condition
Chained condition
Nested condition
Fixed-count repetition
Condition-based repetition
Counter
First let’s locate them in Exercise 3 together.
You will use them in programming ― often unconsciously.
Concepts¶
A theater checks guests at the door. If a guest has a valid ticket and arrives before the show starts, output
Welcome in!. Otherwise, outputSorry, boarding is closed.
This example contains:
| Seq. | Input / Var | Output | Simple Cond. | Comp. Cond. | Nested Cond. | Fixed-count Loop | Cond.-based Loop | Counter |
|---|---|---|---|---|---|---|---|---|
| yes | no | yes | no | yes | no | no | no | no |
E: Matching concepts¶
E: Locating concepts in life¶
Select three from the concepts list, find for each examples from your daily life and write these processes down in text.
(10 min)
Further concepts¶
TODO
array indexing
loop with early exit
You want to try [the official dietary advice about legumes][official-dietary-advice] and want to try recipes with different legumes each week. The legumes you want to try are: lentils, chickpeas, white beans, kidney beans, and tofu.
Input the current week number. Input the list of legumes. Divide the week number by the number of legumes and use the remainder to select the legume for the week. Output the selected legume.
You can assume you have an operation called
remainder(a, b).You are coding a login system.
Ask for username and password. If the username and password combination is correct, output “Login successful”. Otherwise, if 3 failed attempts are occurred, lock the account.
You want to choose a course with a low workload (less or equal than 2.5) and zero fail rate from a ranking, e.g., DTU Course Analyzer. You have a list of data and on each line you have
course_number,workloadandfail_rate.You know that there are
ncourses in the list. Find the first according to your criteria and output its course number.
Further resources¶
Do you like graphics and would you like to try different programming languages or block-based programming, the following may be interesting:
Makecode from Microsoft is an online platform for learning programming. It has a block-, JavaScript-, and Python-based programming interface. You can create Arcade games, blink LEDs on hardware, and summon countless chickens in a Minecraft world by fx programming an endless loop.
You get immediate feedback to your program in a 3D world. Even it teaches programming concepts like variables, loops etc, I wanted to make the jump to C’s harsh and difficult syntax earlier.
The Arcade runs on the browser. Minecraft Education must be downloaded - the web editor does not run Minecraft in the browser. It runs on popular OSes but not Linux. It requires a license which you may already have through your university’s Microsoft license.
Swift Playground is similar to Makecode but mainly for learning Swift from scratch.
It runs only on Mac and iPad and seems to be free. Did not try it.