1. Introduction exercise #
We’ll do exercises to introduce some fundamental elements:
- It is easy to blame.
- It is hard to create.
- It is easier to modify.
Exercise 1 #
Describe on a paper an algorithm, in a human language (fr, en, ro) of your choice, for something you do every day, examples of actions:
- Clean teeth.
- Drink a glass of water.
- Use an app on your smartphone.
- Place a call with your smartphone.
Pick one exercise and write on paper or a text editor.
Things to do once algorithms are on paper
- Swap algorithms with colleagues.
- Reproduce the received algorithm “ad literam”, instruction by instruction.
- You shall not add steps “from you”.
- At the end you’ll notice that it is impossible to execute it.
- Every single person will fail to accomplish this basic thing.
Analyze the results
- There are missing steps.
- Existing steps are not detailed enough.
- The name and description of the algorithm might not match.
- You prefer one language, yet you’ll receive it in another language.
Who’s to blame for failing to finish the algorithm ?
- The one who executed ?
- The one who wrote the algo ?
There’s no right or wrong, as it was said during Covid19 Pandemic:
We are all part of the solution.
Computational thinking #
This exercise is made with sole purpose of giving you the idea of computational thinking.
It is really good to understand the fact that we already think with algorithms in mind. The thing is - we use human languages who are more versatile, and we get so used to it, that we forget the fact that when we do or say something - we often use variables, patterns, ways of saying, etc.
Often, computer programs are much more concise than what we think we need to do - simply because of the limited scope of the languages and technologies.
Exercise 2 #
Create one java application, examples of subjects:
- Basic calculator.
- A simple bot.
- Console menu, with 5 options.
- A basic dictionary with 5 words.
The app should be simple and doable in 20 minutes.
Things to do once the time is over
- How much people said they are ready ?
- How many apps are compiling ?
- How many apps are running ?
Analyze the results
- How many features are implemented ?
- Is there some kind of documentation ?
- Did somebody wrote tests ?
- Who asked details on what needs to be done ?
- Who used a framework, or a build tool ?
The real world
- It is hard to write nice code in tight deadline.
- How can you prove your code is working without test ?
- You need to practice in writing good code.
- Review your old code.
- Create precedents and document them.
- Create or use cook books with ready to use recipes.
- Avoid re-inventing wheels.
- Have some time ? Do some actual R&D