﻿ New programming course

 New programming course tomangelo TerranovaTeam member Posts: 825 Threads: 26 Joined: Oct 2012 Reputation: 90 #41 09-27-2015, 10:30 PM This could help, but I don't know how it would work with aiming. On the other hand, there isn't so much exercises with aiming (at least now). Spoiler : Mrocza Master Posts: 152 Threads: 7 Joined: Oct 2012 Reputation: 25 #42 09-28-2015, 03:38 PM (This post was last modified: 09-28-2015, 03:44 PM by Mrocza. Edit Reason: My ASCII art skill is questionable. ) I'm gonna skip the boring part and cut straight to example exercises. The first lesson is basically a showcase of what can be done in Logo with the use of interactive presentations. Minigames such as pentomino, classic pairs or symmetrical drawing. I think Cbot is even better in this stuff. I mean seriously - it's a video game after all. The student could battle a few pre-programmed bots in races, football (tireball actually) or other activities. After that comes the fun part. In reverse translated Logo: forward number - moves the turtle forward by number steps backward number - obvious left number right number clear - clears the canvas and resets the turtle (we got a restart button for that) setColor color - sets color setThickness number - guess what... it sets thickness Example exercises: 1. Draw the folowing shape:  Code:```   _  _| | |___|``` 2. Draw a green square. Since turtle's moves repeat you can use the repeat command. - Example solution 1: fwd 60 rt 90 fwd 60 rt 90 fwd 60 rt 90 fwd 60 rt 90 - Example solution 2: repeat [fwd 60 rt 90] 3. Draw two squares just like on the drawing (common corners): Code:```   __ __|__| |__|``` 4. Draw the folowing shapes: Teaching the turtle new words.... Basically there's function building to teach yer turtle the square command. It's noted that a new function is not blank but starts with thatis square and ends with done and that the instructions should be written between those. 1. Using the square function write a function to draw three squares on top of each other and name it tower - two example solutions noted here, with and without repeat 2. Write a function for drawing four squares forming a big square and name it 4squ Next is a function with parameter: thatis square :side  repeat [fwd :side rt 90] done And a function to draw colorfull squares: thatis square_rnd :side  setColor rnd  repeat [fwd :side rt 90] done Where rnd returns a random value. 1With the use of  square_rnd draw the folowing: For the last shape you'll need to use up and down commands to rise or drop turtle's marker. That's how it goes (more or less) in WSiP's (publisher's) "Lekcje z komputerem". All I got were lesson scripts. I wanted to get some detailed info directly from WSiP's webpage as I do have the teacher's registration code but sadly I do not have access to any primary school materials. What I wrote there should be enough though. At least for a good start. My Code Battle League program: MhrodeBattle.txt Welcome back, Mrocza. You last visited: Sunday, July 7th, 2013, 02:12 pm  http://imgur.com/L3Y8bQz RaptorParkowsky Turquoise Raptor Posts: 1,114 Threads: 32 Joined: Oct 2012 Reputation: 53 #43 09-28-2015, 05:01 PM I'm still afraid of different commands for turning the bot. If we're gonna replace negative values, I would do it like this: Code:```turn(Left);   // Always means turn(90); turn(Right);  // Always meant turn(-90);``` (09-27-2015, 10:30 PM)tomangelo Wrote: On the other hand, there isn't so much exercises with aiming (at least now)Well, that's good material for rather Medium or Hard Exercises levels. Especially when we're talking about PhazerShooter's aiming. Mrocza Master Posts: 152 Threads: 7 Joined: Oct 2012 Reputation: 25 #44 09-28-2015, 05:19 PM Hold your... raptors? I see it like this. Our standard easy course shall contain exercises similar to those noted here but composed of plain Cbot. If and only if we were ever to build a version for school classes we would include necessary alterations (polish commands + no negatives) so at the time being it should not bother us at all. My Code Battle League program: MhrodeBattle.txt Welcome back, Mrocza. You last visited: Sunday, July 7th, 2013, 02:12 pm  http://imgur.com/L3Y8bQz tomangelo TerranovaTeam member Posts: 825 Threads: 26 Joined: Oct 2012 Reputation: 90 #45 09-28-2015, 05:46 PM (09-28-2015, 05:01 PM)RaptorParkowsky Wrote: Code: turn(Left); // Always means turn(90); turn(Right); // Always meant turn(-90);I would do this more like Code:```turn(left()); //turn left by 90 degrees turn(left(50)); //turn left by 50 degrees```and similar for turning right. But if we'll implement preprocessor commands, then it could be Code:```#define left -90; #define right 90; turn(left); //turn left by 90 degrees turn(left(50)); //turn left by 50 degrees``` Spoiler : Simbax A Cat Posts: 837 Threads: 80 Joined: Oct 2012 Reputation: 141 #46 09-28-2015, 06:56 PM (This post was last modified: 09-28-2015, 07:00 PM by Simbax.) LEFT * RIGHT * If so. Plus, constants should be created with const, no preprocessor. Clean code, please. Good habits should be taught from the beggining, do not make excuses like "it should be simple because children are dumb". Dumb children won't like programming anyway, why would someone care. BTW, it can actually be done in CBOT right now, I was using it a few times. Code:```float LEFT = 90.0; float FORWARD = 5.0; move(FORWARD); turn(LEFT);``` But I wouldn't make any constants like that at all, because Code:`turn(FORWARD);` will work just fine, but it's probably not what the author meant and is confusing for everyone. TBH I don't like the idea of teaching something not existent in real programming in order to just make it 'easier' for learning. The tool doesn't matter and should not be changed specifically for teaching. I'd call it no skill in teaching at all if the tool needs to be confusily simplified. How is that supposed to teach anything useful? Only concepts... Which can be taught very well in normal programming languages. Don't make kids dumber, if they are lazy and/or resistant to learning then such silly changes won't make a difference. Those who actually enjoy programming and will learn will get it without this (IMO) stupid modifications of the language itself. English is not a problem nowadays, I was personally learning it before I went to elementary school, so today situation should be much better. Children can use smartphones, so they can also learn normal programming. Stupid inventions like LOGO are not working because one does not learn useful programming through them. People want to create something, something awesome, no draw polygons. It's boring, unsatisfying... It's better for them to play Minecraft and do something with redstone for example. They are learning from it and having fun and it actually gives useful knowledge (e.g. logic gates). And the children have feeling that they are actually treated seriously, whereas drawing turtle, Polish commands etc. give quite the opposite feeling. And also this is a HUGE motivation to learn Java in order to mod the game. That's why I would like to see a real programming language instead of CBOT, but CBOT at least has syntax close to real languages. Don't destroy the biggest advantage of Colobot because of some unneeded simplicity. Sorry for any mistakes, it's not easy to write such long posts on a phone.   Mrocza Master Posts: 152 Threads: 7 Joined: Oct 2012 Reputation: 25 #47 09-28-2015, 08:15 PM Damnit! (09-28-2015, 05:19 PM)Mrocza Wrote: ...so at the time being it should not bother us at all.Period. Seriously - quit poking our educational system. I'm fully aware it's poopy. I did not write these requirements neither do I agree with them. Let's just make an awesome drawer bot course with our beloved Cbot as it is. Shall we? Please? Pretty please? My Code Battle League program: MhrodeBattle.txt Welcome back, Mrocza. You last visited: Sunday, July 7th, 2013, 02:12 pm  http://imgur.com/L3Y8bQz krzys_h The Programmer Posts: 828 Threads: 26 Joined: Oct 2012 Reputation: 113 #48 09-28-2015, 08:16 PM I think we should restore some objects from Ceebot-Teen for these exercises. There was a lot of useful stuff for things like drawing exercises. (don't mind the lack of textures, I don't have a proper Ceebot-Teen installation, there should be a piece of paper in the middle) Simbax A Cat Posts: 837 Threads: 80 Joined: Oct 2012 Reputation: 141 #49 09-28-2015, 08:30 PM (This post was last modified: 09-28-2015, 08:36 PM by Simbax.) Sorry, but I had to say it at last, because I've seen things like that quite a lot, it's not a flaw only of the Polish educational system. Maybe that's only me, but learning from simpified environments built specifically for students just feels like a waste of time. Because, c'mon, for example: I want to learn how to create a professional desktop application, not how to use some library wrapper created specifically for the course.   RaptorParkowsky Turquoise Raptor Posts: 1,114 Threads: 32 Joined: Oct 2012 Reputation: 53 #50 09-28-2015, 09:17 PM (09-28-2015, 08:16 PM)krzys_h Wrote: I think we should restore some objects from Ceebot-Teen for these exercises. There was a lot of useful stuff for things like drawing exercises.Well, I decided to remove them in early GOLD production, as we really don't needed them. Yeah, I know that we have a license for those assets, but I think we should for now focus on the main Colobot's objects to maintain, model format refactoring and remastering. Bringing them back now with all textures and object's logic would make some mess, maybe not in the code (as we refactored most of object's logic structure) but most in the game's files or models/textures remastering schedule (well, at least I like to have less files to care as possible). But I don't denying that to bring them back to the game at all. They are really great, eye-candy (especially if in the future we'll use cell-shaded graphics in "teen" levels or something similar) and kid-friendly comparing to the Nevada's or other empty and unfriendly worlds from original Colobot. Well, other thing is that how we could blend them with others "normal" Colobot levels in one, big Programming Course that consist of 3 parts + Competitions & Challenges? We'll place them only in Easy Exercises even if there's still in Medium and Hard some interesting concepts to use? krzys_h The Programmer Posts: 828 Threads: 26 Joined: Oct 2012 Reputation: 113 #51 09-30-2015, 05:45 PM (This post was last modified: 09-30-2015, 05:45 PM by krzys_h.) I'm attaching levels from Ceebot-Teen (just the base decorations, no level logic yet) as userlevels for use with latest dev binaries and data files. Also, properly textured screenshots: EDIT: Small update - found one more level in free games, and restored map images Attached Files   TeenExercises.zip (Size: 76.26 KB / Downloads: 376) krzys_h The Programmer Posts: 828 Threads: 26 Joined: Oct 2012 Reputation: 113 #52 09-30-2015, 09:42 PM I'm trying to get an overview on what will the basic exercises look like. I think that the exercises from CeeBot-Teen are pretty good for begginers, except for the fact that we don't want to use repeat() and for() is too complicated so early on. Code:```Easy exercises ============== (CeeBot-Teen based) Most exercises are copied from CeeBot-Teen, but I'd love to have new help files written for them, the original ones are not very descriptive In each exercise SatCom opens automatically Note that CeeBot-Teen uses different distance units, so I'm kinda sticking to that (normal missions is 1 meter -> 4 engine units, Teen is 1 centimeter -> 1 engine unit) I. Moving 1.1. Straight forward * Hello, this is C:GE, and this is SatCom, use F1 to reopen it if needed! * what a "program" is? what is the computer's "language"? * what do we need to do? Move forward 40 centimeters to the WayPoint * how to open the program editor * what to type - "move(40);", don't touch anything else (you can always click "New" if you remove something by mistake) * how to start the written program * how to reset if you mess it up 1.2. Turn and move * oh no, the robot is turned 90 degrees away from the WayPoint * the algorithm is a bit more complicated: 1) Turn 90 degrees left (and explain how much 90 degrees is - I have no idea how young kids will be using this ;) 2) Move forward 40 cm * what exactly to write * remember, you can always reset 1.3. The second cross * copy of the previous program * add the following at the end: turn(90); move(80); 1.4. More crosses * copy of the previous program * how to turn right (negative values) * add the following at the end (you have to write the instructions yourself!): 1) Turn right 90 degrees 2) Move forward 100 centimeters 1.5. The last crosses * copy of the previous program * find the next cross * only a map, no instructions 1.WIN. A winning screen * chapter complete! II. Drawing 2.1. Draw a line * hey, a new robot! * pendown(Red); to put the pencil on paper, then move 20 cm forward 2.2. Draw another line * draw a line, this time using Green * no program given here 2.3. Draw an "L" * an image of what to draw * reminder of useful instructions 2.4. Draw an colorful "L" * change color for the second line * explain the full algorithm, but no code 2.5. Move the pen up * two pieces of paper, don't draw between them * penup() * explain the algorithm (without code) 2.6. Something in the way * almost like the previous one * there is some kind of can in the middle * you need to move around it using turn() 2.WIN. Yay, chapter finished! III. LOOPS 3.1. Draw a square 3.2. (repeat would go here, but I don't want it, and it's too early for for(), not sure what to do) 3.3. Hexagon * this shows how to modify the previous program to draw more edges * what the turn() angle should be? 3.4. A circle * just do the same with 36 steps 3.5. Suprise * do this and see what happens: - pendown - repeat 18 times:   - move 10   - turn 160 left   - move 10   - turn 140 right * can you guess? * speed modes 3.WIN. Yay you understand loops now! IV. Shooting (yeah, I had enough typing, just look at exercises from Teen) 4.1. one target 4.2. four targets 4.3. eight targets 4.4. move around the square and shoot 4.5. targets on the other side (you need to turn around) 4.6. targets in the middle, not the ends 4.7. 4 targets in a line 4.WIN. yay! TODO: some grab/drop some radar (as simple as possible, teen had find which is something like radar+goto) some if instructions some labiynths``` krzys_h The Programmer Posts: 828 Threads: 26 Joined: Oct 2012 Reputation: 113 #53 10-04-2015, 06:42 PM I've updated my script to make use of Ceebot-Teen envrionments. I also hopefully made it easier to understand for younger children. There is still a few chapters missing, but please take a look and tell me what you think: https://docs.google.com/document/d/1vXOb...29_aA/edit [Yeah, I'm doubleposting, I'm terrible] DavivaD Crimson User Posts: 667 Threads: 149 Joined: Oct 2012 Reputation: 25 #54 10-04-2015, 07:04 PM I will make the win scenes Sorry for my English RaptorParkowsky Turquoise Raptor Posts: 1,114 Threads: 32 Joined: Oct 2012 Reputation: 53 #55 10-04-2015, 07:40 PM (10-04-2015, 07:04 PM)DavivaD Wrote: I will make the win scenesNot until the script isn't finished. @krzys_h : Well, there's a lot of mess in this script, but it's readable. As far as I understand, there's still no "Hard" exercises. Well, it would be great to move that on our TerranovaTeam's Google account and start polishing this script. krzys_h The Programmer Posts: 828 Threads: 26 Joined: Oct 2012 Reputation: 113 #56 10-04-2015, 07:51 PM (This post was last modified: 10-04-2015, 07:51 PM by krzys_h.) (10-04-2015, 07:40 PM)RaptorParkowsky Wrote: As far as I understand, there's still no "Hard" exercises.I think we should focus on easy to medium exercises for now. We won't be able to do everything at once, and we wanted to finish these exercises this month to send that email. (10-04-2015, 07:40 PM)RaptorParkowsky Wrote: Well, it would be great to move that on our TerranovaTeam's Google account and start polishing this script.Wait a moment, I was pretty sure this was on TerranovaTeam account EDIT: And I was right, it is on TerranovaTeam account Simbax A Cat Posts: 837 Threads: 80 Joined: Oct 2012 Reputation: 141 #57 10-04-2015, 09:40 PM Why do you all keep changing something that is good? This whole thread is a big mess... I don't know what are we doing right now. Please, don't say that we're not doing the first version of the course and we're doing some Teen bulls**t instead...   tomaszkax86 TerranovaTeam member Posts: 157 Threads: 5 Joined: Mar 2013 Reputation: 60 #58 10-04-2015, 10:42 PM I think they want to use Ceebot-Teen elements in new exercises, but I can't be sure at this point. Can someone properly explain what's going on? "After three days without programming, life becomes meaningless." ~The Tao of Programming krzys_h The Programmer Posts: 828 Threads: 26 Joined: Oct 2012 Reputation: 113 #59 10-05-2015, 07:20 PM I suggested using some exercises from Ceebot-Teen, there were 3 people who liked that post and nobody was against it, so I tried to add them into our exercises script. We might have to rethink that later, but I think it's a good idea for now until we try to put the exercises more into the game universe, which we decided to to at a later date. Another thing I did was to slightly modify the order in an attempt to a) avoid introducing both new game concepts and programming concepts at the same time (as pointed out by @Mrocza) and b) modify the order a bit to split them into "easy" ones (mostly about general programming concepts and only the needed game basics) and "medium" ones (mostly about some advanced in-game things) kevinvr TrackedGrabber Posts: 36 Threads: 8 Joined: May 2014 Reputation: 2 #60 12-18-2015, 03:32 AM This is an interesting idea. I have started going through the games again and I think what I would like to see is that firstly the solutions or walkthroughs should be fixed and I am willing to help as much as I can with that. The idea of having exercises in programming the bots is great. I would love some examples of how to use the new programs to build things using the grabbers and also to build new items in the factories etc. My programming skills are quite pathetic, but I see there is a lot of new stuff here and it is very exciting. Thanks for all your hard work! KendyBot ...dreaming of autonomous replication. « Next Oldest | Next Newest »