As it has been estabilished at the ColoIRC:
This makes making of the course a little bit easier.
This and the example of Portal 2 gave me an idea how the programming course should look like. The idea is simple: firstly, we teach something new and immediately after the player is given a task to master the understanding of the new knowledge. The tasks should be easy enough so an averagely intelligent person could complete them, but enough challenging to make the player feel the satisfaction of solving them. This is how Portal is built, as it was explained probably in the developers' commentary mode, and it works amazingly as everyone who had played this game before should know.
I've read both (the first and the second) version of the plan for the programming course. I definitely like the first one more, but there is some interesting stuff in the second. I'm going to use both of them and the idea explained above to rewrite the plan. We need to start at something, don't we?
For now, we should focus on the first and eventually the second chapter of the course before we proceed to the next ones. Simply because it would be a waste of time, because we need to polish the main concept of the design of the course and have a solid base before we start working on more complicated and time-consuming levels.
So here it is:
Chapter 1: Introduction to programming
Exercise 1: Boring brief
What the player will have learned after this exercise:
* What is Colobot: Gold Edition?
* What is SatCom? How to reopen it?
* What is 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 SpaceShip by hand and take off.
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 written in the previous exercise about programming.)
* 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 AlienAnts 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 AlienAnts 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 and 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 tiny moment).
Exercise 5: The secret to be a good driver is the wheel
What the player will have learned after this exercise:
* Is programming about remembering stuff? (Revising part, also, hell no!)
* What is angle? (Revising some maths)
* How to steer the robot? (the turn(); instruction)
* What are those odd crosses on the ground? (waypoints)
The task:
* Move a robot through 3 waypoints and come back to the start area. (Waypoints and the area are placed like they were forming 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 negative angle? (Introducing some black magic maths)
The task:
* Move a robot to the goal area by slalom (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 a robot to the goal area by a simple labyrinth.
Additional notes:
* The drawing of the labyrinth is in the briefing.
* It should be simple, but still require at least 10 instructions to complete.
* To make it more interesting, one or two corridors should be at 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 chapter?
The task:
* Kill few AlienAnts which are approaching to the surrounded player and the bot (again).
Additional notes:
* The AlienAnts this time do real damage.
* The briefing gives the exact positions (angles) of the AlienAnts.
Chapter 2: The basics of the base management
Chapter 3: Drawing, part one
Chapter 4: Drawing, part two
Chapter 5: Shooting
Chapter ...
Some notes here about the whole plan. Chapter 1 and 2 should introduce the player to the game, the programming concept, the game mechanics and familiarize him with the game world. Chapter 3 and 4 are going to introduce some harder and more abstract concepts like loops, variables, maybe even functions, plus some algorithms. Chapter 5 should give the player some fun and give good exercises of using the abstract concepts and maybe teach some maths. About the rest of the chapters, I'm not sure yet, but of course there will be more advanced stuff covered. Like I said, let's focus on the first chapters first.
What are your opinions?
(04-03-2016, 01:46 PM)krzys_h Wrote: The current programming course is going to target 15+ years old, like original Colobot or CeeBot4. Exercises for younger players will be likely introduced at a later point.
This makes making of the course a little bit easier.
(09-26-2015, 07:50 AM)Mrocza Wrote: That's evaluation (check of player's knowlage) mixed with introduction (learning something new).
This and the example of Portal 2 gave me an idea how the programming course should look like. The idea is simple: firstly, we teach something new and immediately after the player is given a task to master the understanding of the new knowledge. The tasks should be easy enough so an averagely intelligent person could complete them, but enough challenging to make the player feel the satisfaction of solving them. This is how Portal is built, as it was explained probably in the developers' commentary mode, and it works amazingly as everyone who had played this game before should know.
I've read both (the first and the second) version of the plan for the programming course. I definitely like the first one more, but there is some interesting stuff in the second. I'm going to use both of them and the idea explained above to rewrite the plan. We need to start at something, don't we?
For now, we should focus on the first and eventually the second chapter of the course before we proceed to the next ones. Simply because it would be a waste of time, because we need to polish the main concept of the design of the course and have a solid base before we start working on more complicated and time-consuming levels.
So here it is:
Chapter 1: Introduction to programming
Exercise 1: Boring brief
What the player will have learned after this exercise:
* What is Colobot: Gold Edition?
* What is SatCom? How to reopen it?
* What is 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 SpaceShip by hand and take off.
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 written in the previous exercise about programming.)
* 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 AlienAnts 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 AlienAnts 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 and 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 tiny moment).
Exercise 5: The secret to be a good driver is the wheel
What the player will have learned after this exercise:
* Is programming about remembering stuff? (Revising part, also, hell no!)
* What is angle? (Revising some maths)
* How to steer the robot? (the turn(); instruction)
* What are those odd crosses on the ground? (waypoints)
The task:
* Move a robot through 3 waypoints and come back to the start area. (Waypoints and the area are placed like they were forming 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 negative angle? (Introducing some black magic maths)
The task:
* Move a robot to the goal area by slalom (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 a robot to the goal area by a simple labyrinth.
Additional notes:
* The drawing of the labyrinth is in the briefing.
* It should be simple, but still require at least 10 instructions to complete.
* To make it more interesting, one or two corridors should be at 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 chapter?
The task:
* Kill few AlienAnts which are approaching to the surrounded player and the bot (again).
Additional notes:
* The AlienAnts this time do real damage.
* The briefing gives the exact positions (angles) of the AlienAnts.
Chapter 2: The basics of the base management
Chapter 3: Drawing, part one
Chapter 4: Drawing, part two
Chapter 5: Shooting
Chapter ...
Some notes here about the whole plan. Chapter 1 and 2 should introduce the player to the game, the programming concept, the game mechanics and familiarize him with the game world. Chapter 3 and 4 are going to introduce some harder and more abstract concepts like loops, variables, maybe even functions, plus some algorithms. Chapter 5 should give the player some fun and give good exercises of using the abstract concepts and maybe teach some maths. About the rest of the chapters, I'm not sure yet, but of course there will be more advanced stuff covered. Like I said, let's focus on the first chapters first.
What are your opinions?