Alright, I've realised that base management needs to be later, because it would probably need variables, loops and many more things and it would be too much for a one chapter, so I moved the drawing part before the base management. I've also fixed some English errors and wrote the first sketch of the second chapter. Now excuse me for any mistakes, because I'm in hurry and really wanted to post the new version now. After we establish the general concept details, I'll finally post this plan to some Google Doc or something so you can write/modify it too.
> Chapter 1: Introduction to programming
> Exercise 1: Boring beginnings
> What the player will have learned after this exercise:
* What is Colobot: Gold Edition?
* What is SatCom? How to reopen it?
* What is a program?
* Why do we need programming languages?
* Why programming is fun?
* What is the game view?
* How to interact with the game? (Basics of the interface and control keys)
> The task:
* Move the bot and the astronaut to the ???.
> Additional notes:
* The astronaut is selected by default. He can be controlled by the player.
> Exercise 2: Run for your life!
> What the player will have learned after this exercise:
* How programming can be useful? (Sum up the stuff about programming written in the previous exercise.)
* How to open and use the program editor?
* How to run a program?
* How to reset if something goes wrong?
* Are there enemies in this game?
> The task:
* Kill few ???Enemies??? which are approaching to the surrounded player and the bot.
> Additional notes:
* The program is already written, the player only needs to start it.
* The ???Enemies??? approach the player and attack, but both the bot and the astronaut are almost indestructible (but they gain enough damage to set a little thrilling "panick mode" in the player).
* The astronaut is selected by default. He can be controlled by the player.
> Exercise 3: Time to learn to drive
> What the player will have learned after this exercise:
* How programming can save lives? (Remind the player about the interface and previous stuff in maximum of 2 short paragraphs)
* How to create a new program?
* What is the structure of the program? (Note: don't go into details of the main function)
* What are instructions and parameters?
* How to move the bot by programming? (the move(); instruction)
> The task:
* Move the bot forward to the goal area.
> Additional notes:
* The bot is selected by default (in all the proceeding exercises).
> Exercise 4: Reverse mode
> What the player will have learned after this exercise:
* How to use instructions? (Revising part)
* Is programming about experimenting and discovery? (Hell yes!)
* Where to find useful information? (describing the CBOT documentation briefly)
> The task:
* Give a gentle push to the PracticeBot behind the bot, so it "wakes up" and drive to his goal area, then move the bot to the second goal area.
> Additional notes:
* The player is hinted to read the documentation of the move(); function, where he learns about the use of negative numbers.
* PracticeBot is programmed to move to the goal area when the bot comes close to him (preferably, the bot should be touching the PracticeBot for a short moment).
> Exercise 5: The secret of good drivers is the wheel
> What the player will have learned after this exercise:
* Is programming about remembering stuff? (Revising part, also, hell no!)
* What is an angle? (Revising some maths from school)
* How to steer the robot? (the turn(); instruction)
* What are those odd crosses on the ground? (waypoints)
> The task:
* Move the bot through 3 waypoints and back to the start area. (Waypoints and the area are placed so they form a square.)
> Additional notes:
* The player is advised to read the documentation of the turn(); function, although it is fully explained in the briefing.
* The player needs to turn only left by 90 degrees to complete the exercise.
> Exercise 6: Everything is relative
> What the player will have learned after this exercise:
* Do you need to be good at maths to be good at programming? (Revising part, also, not really)
* What is a negative angle? (Introducing some black magic maths)
> The task:
* Move the bot to the goal area in slalom (by going through few waypoints).
> Additional notes:
* It is hinted in the briefing that the waypoints can be reached by turning by 45 (90) degrees.
> Exercise 7: Driving license exam
> What the player will have learned after this exercise:
* When there will be something to shoot? (Revising part, also, soon)
* What have been covered during this chapter? (Short summary)
> The task:
* Move the bot to the goal area through a simple labyrinth.
> Additional notes:
* A drawing of the labyrinth is in the briefing.
* The labyrinth should be simple, but still require at least 10 instructions to complete.
* To make it more interesting, one or two corridors should be at an angle of 45 degrees.
> Exercise 8: Program for your life!
> What the player will have learned after this exercise:
* How programming can be really useful? (Revising part)
* What have been covered during this chapter? (Short summary and congratulations for the player)
* How to fire? (the fire(); instruction)
* What will be covered in the next chapters?
> The task:
* Kill few ???Enemies??? which are approaching to the surrounded player and the bot (again).
> Additional notes:
* The ???Enemies??? this time do real damage.
* The briefing gives the exact positions (angles) of the AlienAnts.
> Chapter 2: Drawing, part one
> Exercise 1: Programming is art
> What the player will have learned after this exercise:
* What should he know already? (Revise Chapter 1)
* What will be covered in this chapter?
* Why drawing is a serious business? (Explain why this chapter necessary)
> The task:
* Draw a colorful square spiral of size 5x5.
> Additional notes:
* The program is already written.
> Exercise 2: Every artist needs a pencil
> What the player will have learned after this exercise:
* What should he know already? (Revise Chapter 1 again)
* How to draw? (the pendown(); and penup(); instructions)
> The task:
* Draw 3 line segments of the same length with half the length blank spaces between them.
> Additional notes:
* None
> Exercise 3: Symbol of conspiracies
> What the player will have learned after this exercise:
* Is this chapter really necessary? (Revising part)
* Is there always only one way to do something? (No)
* What to do when you are stuck? (Advices about how to approach problems etc.)
> The task:
* Draw an equilateral triangle with each side of a different color (Black and White are forbidden).
> Additional notes:
* The player is given a very subtle hint to look into the documentation to find out how to change colors.
> Exercise 4: Artists, especially programmers, are lazy
> What the player will have learned after this exercise:
* Is the result the only thing that matters? (Revising part)
* What are variables?
* Why should one use them?
* What is a variable type? (Mention string, int and bool, focus on int)
* How to declare a variable?
* How to define a variable?
* What is initialization?
* How to use variables?
> The task:
* Draw 3 line segments of the same length with half the length blank spaces between them, where the length is a variable. Do this 3 times in a straight line, each time with a different length.
> Additional notes:
* The solution program from the exercise 2 is available, the player should modify it.
* Any solution with more than 6 move(); instructions should be forbidden.
* The program must be run 3 times.
> Exercise 5: Robots can talk
> What the player will have learned after this exercise:
* Why variables are needed? (Revising part)
* How to modify a variable?
* What is debugging?
* What is a string variable?
* How to show a message to the player? (the message(); instruction)
> The task:
* Draw three squares of different sizes, each of a different color, and show a message after drawing each side which looks like that: "The side number <insert number here> of the square number <insert number here> has been drawn".
> Additional notes:
* Any solution with more than 4 move(); instructions should be forbidden.
> Exercise 6: Enough of manual repeating
> What the player will have learned after this exercise:
* Why variables make the life easier? (Revising part)
* What is the DRY rule?
* What is a while loop?
* How to use a while loop?
> The task:
* Draw 15 line segments of the same length with half the length blank spaces between them. Use a loop.
> Additional notes:
* The solution program from the exercise 2 is available.
* Any solution with more than 2 move(); instructions or requiring to run the program more than one time should be forbidden.
> Exercise 7: Draw, fail, repeat until success
> What the player will have learned after this exercise:
* How much do loops make the life easier? (Revising part)
* What are syntax sugars? (the +=, -=, --, ++ operators)
* Can one use a loop inside an other loop?
* Are there any more tips about debugging?
> The task:
* Draw three right-angled triangles with legs of equal variable lengths, each of a different color, and show a message after drawing each side which looks like that: "The side number <insert number here> of the triangle number <insert number here> has been drawn". Use loops.
> Additional notes:
* The solution program from the exercise 5 is available.
* Any solution with more than 1 move(); instruction or requiring to run the program more than one time should be forbidden.
> Exercise 8: Art (maths) exam
> What the player will have learned after this exercise:
* How is programming making the life easier? (Revising part)
> The task:
* Draw a square spiral of size at least 5x5.
> Additional notes:
* Any solution works.
* The player is given freedom in this exercise, he can just draw a minimalistic black square spiral without even using a loop or he can draw a square spiral of a bigger size with colors etc.
> Chapter 3: The basics of the base management
> Chapter 4: Drawing, part two
> Chapter 5: Shooting
> Chapter ...
> Chapter 1: Introduction to programming
> Exercise 1: Boring beginnings
> What the player will have learned after this exercise:
* What is Colobot: Gold Edition?
* What is SatCom? How to reopen it?
* What is a program?
* Why do we need programming languages?
* Why programming is fun?
* What is the game view?
* How to interact with the game? (Basics of the interface and control keys)
> The task:
* Move the bot and the astronaut to the ???.
> Additional notes:
* The astronaut is selected by default. He can be controlled by the player.
> Exercise 2: Run for your life!
> What the player will have learned after this exercise:
* How programming can be useful? (Sum up the stuff about programming written in the previous exercise.)
* How to open and use the program editor?
* How to run a program?
* How to reset if something goes wrong?
* Are there enemies in this game?
> The task:
* Kill few ???Enemies??? which are approaching to the surrounded player and the bot.
> Additional notes:
* The program is already written, the player only needs to start it.
* The ???Enemies??? approach the player and attack, but both the bot and the astronaut are almost indestructible (but they gain enough damage to set a little thrilling "panick mode" in the player).
* The astronaut is selected by default. He can be controlled by the player.
> Exercise 3: Time to learn to drive
> What the player will have learned after this exercise:
* How programming can save lives? (Remind the player about the interface and previous stuff in maximum of 2 short paragraphs)
* How to create a new program?
* What is the structure of the program? (Note: don't go into details of the main function)
* What are instructions and parameters?
* How to move the bot by programming? (the move(); instruction)
> The task:
* Move the bot forward to the goal area.
> Additional notes:
* The bot is selected by default (in all the proceeding exercises).
> Exercise 4: Reverse mode
> What the player will have learned after this exercise:
* How to use instructions? (Revising part)
* Is programming about experimenting and discovery? (Hell yes!)
* Where to find useful information? (describing the CBOT documentation briefly)
> The task:
* Give a gentle push to the PracticeBot behind the bot, so it "wakes up" and drive to his goal area, then move the bot to the second goal area.
> Additional notes:
* The player is hinted to read the documentation of the move(); function, where he learns about the use of negative numbers.
* PracticeBot is programmed to move to the goal area when the bot comes close to him (preferably, the bot should be touching the PracticeBot for a short moment).
> Exercise 5: The secret of good drivers is the wheel
> What the player will have learned after this exercise:
* Is programming about remembering stuff? (Revising part, also, hell no!)
* What is an angle? (Revising some maths from school)
* How to steer the robot? (the turn(); instruction)
* What are those odd crosses on the ground? (waypoints)
> The task:
* Move the bot through 3 waypoints and back to the start area. (Waypoints and the area are placed so they form a square.)
> Additional notes:
* The player is advised to read the documentation of the turn(); function, although it is fully explained in the briefing.
* The player needs to turn only left by 90 degrees to complete the exercise.
> Exercise 6: Everything is relative
> What the player will have learned after this exercise:
* Do you need to be good at maths to be good at programming? (Revising part, also, not really)
* What is a negative angle? (Introducing some black magic maths)
> The task:
* Move the bot to the goal area in slalom (by going through few waypoints).
> Additional notes:
* It is hinted in the briefing that the waypoints can be reached by turning by 45 (90) degrees.
> Exercise 7: Driving license exam
> What the player will have learned after this exercise:
* When there will be something to shoot? (Revising part, also, soon)
* What have been covered during this chapter? (Short summary)
> The task:
* Move the bot to the goal area through a simple labyrinth.
> Additional notes:
* A drawing of the labyrinth is in the briefing.
* The labyrinth should be simple, but still require at least 10 instructions to complete.
* To make it more interesting, one or two corridors should be at an angle of 45 degrees.
> Exercise 8: Program for your life!
> What the player will have learned after this exercise:
* How programming can be really useful? (Revising part)
* What have been covered during this chapter? (Short summary and congratulations for the player)
* How to fire? (the fire(); instruction)
* What will be covered in the next chapters?
> The task:
* Kill few ???Enemies??? which are approaching to the surrounded player and the bot (again).
> Additional notes:
* The ???Enemies??? this time do real damage.
* The briefing gives the exact positions (angles) of the AlienAnts.
> Chapter 2: Drawing, part one
> Exercise 1: Programming is art
> What the player will have learned after this exercise:
* What should he know already? (Revise Chapter 1)
* What will be covered in this chapter?
* Why drawing is a serious business? (Explain why this chapter necessary)
> The task:
* Draw a colorful square spiral of size 5x5.
> Additional notes:
* The program is already written.
> Exercise 2: Every artist needs a pencil
> What the player will have learned after this exercise:
* What should he know already? (Revise Chapter 1 again)
* How to draw? (the pendown(); and penup(); instructions)
> The task:
* Draw 3 line segments of the same length with half the length blank spaces between them.
> Additional notes:
* None
> Exercise 3: Symbol of conspiracies
> What the player will have learned after this exercise:
* Is this chapter really necessary? (Revising part)
* Is there always only one way to do something? (No)
* What to do when you are stuck? (Advices about how to approach problems etc.)
> The task:
* Draw an equilateral triangle with each side of a different color (Black and White are forbidden).
> Additional notes:
* The player is given a very subtle hint to look into the documentation to find out how to change colors.
> Exercise 4: Artists, especially programmers, are lazy
> What the player will have learned after this exercise:
* Is the result the only thing that matters? (Revising part)
* What are variables?
* Why should one use them?
* What is a variable type? (Mention string, int and bool, focus on int)
* How to declare a variable?
* How to define a variable?
* What is initialization?
* How to use variables?
> The task:
* Draw 3 line segments of the same length with half the length blank spaces between them, where the length is a variable. Do this 3 times in a straight line, each time with a different length.
> Additional notes:
* The solution program from the exercise 2 is available, the player should modify it.
* Any solution with more than 6 move(); instructions should be forbidden.
* The program must be run 3 times.
> Exercise 5: Robots can talk
> What the player will have learned after this exercise:
* Why variables are needed? (Revising part)
* How to modify a variable?
* What is debugging?
* What is a string variable?
* How to show a message to the player? (the message(); instruction)
> The task:
* Draw three squares of different sizes, each of a different color, and show a message after drawing each side which looks like that: "The side number <insert number here> of the square number <insert number here> has been drawn".
> Additional notes:
* Any solution with more than 4 move(); instructions should be forbidden.
> Exercise 6: Enough of manual repeating
> What the player will have learned after this exercise:
* Why variables make the life easier? (Revising part)
* What is the DRY rule?
* What is a while loop?
* How to use a while loop?
> The task:
* Draw 15 line segments of the same length with half the length blank spaces between them. Use a loop.
> Additional notes:
* The solution program from the exercise 2 is available.
* Any solution with more than 2 move(); instructions or requiring to run the program more than one time should be forbidden.
> Exercise 7: Draw, fail, repeat until success
> What the player will have learned after this exercise:
* How much do loops make the life easier? (Revising part)
* What are syntax sugars? (the +=, -=, --, ++ operators)
* Can one use a loop inside an other loop?
* Are there any more tips about debugging?
> The task:
* Draw three right-angled triangles with legs of equal variable lengths, each of a different color, and show a message after drawing each side which looks like that: "The side number <insert number here> of the triangle number <insert number here> has been drawn". Use loops.
> Additional notes:
* The solution program from the exercise 5 is available.
* Any solution with more than 1 move(); instruction or requiring to run the program more than one time should be forbidden.
> Exercise 8: Art (maths) exam
> What the player will have learned after this exercise:
* How is programming making the life easier? (Revising part)
> The task:
* Draw a square spiral of size at least 5x5.
> Additional notes:
* Any solution works.
* The player is given freedom in this exercise, he can just draw a minimalistic black square spiral without even using a loop or he can draw a square spiral of a bigger size with colors etc.
> Chapter 3: The basics of the base management
> Chapter 4: Drawing, part two
> Chapter 5: Shooting
> Chapter ...