Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
New programming course
I think that avoiding major spoilers (i.e. aliens) is the best we can do for now. Honestly, this is what I thought was going to happen anyway from the very beginning, I was just hoping somebody might have some genius idea how to avoid spoilers, but I guess we've proved this is not possible with the current form of Colobot plot.
Yeah, the best solution would be abusing your development powers and making own enemies, as somebody (I think Tomangelo...?) said earlier. Perhaps stick to idea of NASA training, and assume that programming course is an simulation? This would get rid of practically all spoilers in one blow, it's just matter of thinking about proper enemies, that behave as close to Alien Insects, but without actually suggesting their existence.

But as anotherbody (I am clearly losing track of who said what) said, thinking about how to avoid spoilers just halts programming course, and additionally seems to draw Simbax insane Big Grin
"Deep within all of us lives an idiot, and if you let that idiot dictate your decisions your live is going to be rough."
~ Ryan Letourneau, 2k15
Spoilers are unavoidable. Even if we'll replace aliens with offensive PracticeBots, there is still flying, shooters, organic parts, maybe even buildings.
Spoiler :
[Image: unknown.png]
I was thinking, would seeing a flying robot really be such a big spoiler to the game? Wouldn't the only spoiler be when the player was able to control the bot manually?
People are right, we have a huge paradox on our hands. We can't teach things without showing them (how would you prepare someone for a maths exam without showing them any sample questions, or even equations?). We can't do it in a practical way, it's possible to do the theory, but that would make the game just a programming book.
I like @radioactivity's idea about 3 separate story modes (they could be completely different/unrelated plots).

My idea, although not a perfect solution, would be to unlock exercises as the player progresses through the story mode. This is only possible if we're allowed to alter the story missions. The mechanics would be something like: the player finishes the mission that introduced a grabber, unlock all exercises to do with radar/fetching things etc. Or the player just finished a mission which introduced him to the last of the buildings needed to create a sustainable base, unlock exercises about production line/base management.
This of course falls flat on the face when we have players who are only interested in the exercises, such as competitions or workshop participants (could add an option to unlock all exercises then, since the players aren't interested in the story mode anyway). Or if we're not keen on changing the story missions.

Information related to how to use the objects/robots/buildings could be in the SatCom on the relevant mission (the general idea i got from reading the thread is that we want to hold the player's hand from the very beginning, having exercises/tutorials for things as simple as ore->converter=titanium. I think this would be an overkill and what Epsitec people did was good enough.

Hopefully this might spark some other ideas.
I just want to focus on the essential part of programming course which is teaching how to program and tasks for the player without wondering if I can put an AlienAnt or LeggedGrabber or PowerPlant or whatever in an exercise... Right now even the first exercises are impossible to do unless someone provides a new enemy and a garage or whatever, or unless we could just stick to the first version and place there SpaceShip and AlienAnts and in fact don't care about the plot until later like we decided a long time ago.

I honestly don't care about the current plot. I said many times that I find it almost non-existent, unimportant and full of logical errors and I'd rewrite it from scratch. But it's a thing to discuss another time. Right now I want to improve the programming levels of the game and of course halting this improvement because of some stupid plot is driving me insane, because it should not matter in the current, or maybe even future, situation.

Maybe we should split the project and make two games instead: "Colobot: Gold Edition" and "Ceebot: Gold Edition", if programming course and missions can't coexist with each other! I'm sure they could if we cooperated, but it's impossible because some people care only about missions (and usually don't want any changes, good or bad) and others care only about programming and both have completely different priorities and visions which contradict each other.

If I was as obsessed with this game as some people in this community, I'd probably already forked the game and focused on the educational and programming aspects of it. But I'm not. I don't care what you decide to do, the implementation of this course hasn't been started anyway, I just want a clear decision. Clear. Right now nothing is clear, that's the main problem with GOLD currently. Everyone is scared of doing anything innovative, but the list of ideas and proposals to discuss is steadily growing. We already have a decent remake, but the technical issues we are working on are the "easy" part of the game development. Now we're getting closer to the actual game design and it's time to decide what we want to make or just forget about it and focus on fixing bugs, refactoring and other technical aspects forever. The choice depends on the whole TerranovaTeam. Do we want to change this game or not? Do we want to keep maintaining a technical remake or do finally something creative with it?

I'll leave this question for you to discuss. I've already stated my opinion many times (I want changes), also here, and I don't feel a need for repeating myself.
[Image: XvN5CTW.png] [Image: UYXyyMS.png]
IMO changes are good. To make my stance on this clear: I am not a Colobot hardcore, just like @Simbax. A remake doesn't have to be orthodox. I'm fine with changing the plot, even writing a new one. This game is already moddable guys, if some die-hard fan wants to play the original plot with original plot holes, he's very welcome to create and share the zip file. Right now the plot seems to halt the exercises, and the plot does not seem to be going away any time soon.

I say, forget the spoilers. Make the perfect programming course, worry about the plot later. Besides, the game's still in alpha, anything can and will change. An art analog to what @tomaszka86 said: You'll never even begin drawing if you're afraid of making a mistake. You want to make it the perfect drawing from the get go, so you just stare at the blank canvas, wasting hours thinking on how to make the best first stroke of the pencil.
If we would go as far as remastering plot, I think we should keep original plot anyway, even as secondary campaign, or something. It's not existence of original plot, but it's precedence. It's the fact that we take plot as point of reference for programming course.

Can't we make like poll about this thing? So instead of throwing arguments around we can talk about results and conclusions?
"Deep within all of us lives an idiot, and if you let that idiot dictate your decisions your live is going to be rough."
~ Ryan Letourneau, 2k15
No. Poll results can be misinterpreted easily as the last incident showed and I don't want to see worthless numbers, I want to see opinions, discussion, people. Anyone can vote and forget about it, but if someone writes a long, coherent post it shows that they care.
[Image: XvN5CTW.png] [Image: UYXyyMS.png]
It's even important to have plot in exercises? I think it's minor problem. Main purpose of this course is to have the best teaching value, not to make people amazed with plot depth.
But... This don't have to be NASA training. This can be even story set in the same time as/after main story. Second Me have another mission, but must complete it without manual control over bots, because only space suit that support this feature, was given to first Me from original campaign.
Spoiling main campaign by showing aliens is unavoidable. Even if you change alien models, you still spoil everything about enemies but their look. If you change their mechanics or avoid to use them, then player will be completely confused in case of true aliens and teaching about fight will be wasted.
@Smok there was an idea to make prequel about first expedition, where you can't manually steer robots, only Cbot.
Spoiler :
[Image: unknown.png]
My Idea: Maybe TargetBots instead of Aliens?
Sorry for my English
[Image: 76561198127157465.png]
What do you guys are talking about? What plot? What spoilers? I thought it was decided long time ago, possibly even in this thread and in previous versions of the script (I don't have time for reading all this stuff again). It was decided that in first phase of new Exercises development we will focus about educational aspects only. That means we can just prepare basic level template for all the exercises and just make those new exercises using all existing assets and don't care about plot, spoilers, etc. at least for now.

You have to do something to have a good start with. Exercises should be made for educational purposes first and there should be no such silly reasons to stop developing them. Every aesthetical and plot related things can be polished later. There should be no Aliens? Sure, in the second phase of the development you'll just change that into some kind of ParalyzeBot or as I suggested earlier a practice bot on wheels with UFO painted on a dummy cartboard by one of the NASA Techs. There should be no WingedBots? Yeah, remember that?

[Image: screen72b.jpg]

There would be some kind of CopterBots if jet engine based WingedBots (which are able to fly also in space) are too advanced for exercise prequels and they spoil Missions.

See? It's not that hard to discover how to avoid something and how to build good, colobot-compatible plot and assets. Especially when you have story_&_design-focused brain and play in Epsitec games from 2003 to this day like me.

But this thread isn't about plot related things! It's about how to build a good programming course. It's about how to learn other people how to play this game and how to think in CBOT. So I ask you one question: could you just let @Simbax and other people to work on the level template and upmost important SatCom descriptions? Or do you just want to talk about every single possiblity about this game forever and finally do nothing because everything is bad and so hard to do?

Just optimize your minds and focus on that how you'd wanted to learn programming in "Colobot: Gold Edition". That means how to use currently existing tools and assets to make this new Programming Course as good as possible without messing with things that are currently impossible to do with this engine.

I'm back here only because of my childish love to that game. I know you hate me for the last month. I also don't like this how my reputation has been completely erased only by one thread, even if I didn't really sabotaging the project and still think this was unnecessary and unjustified. But well, I used to that and I think you'll also. Just focus on the game, not on me and everything will be alright.
I was just worried that the script is not as envrionment-independent as I hoped and we would have to redo too big parts of it to adjust it later. I never said we should focus on the plot part of exercises now.
Raptory saves the day!

@krzys_h , I see your concerns here, but really, as long as there is certain area for every mission, where you do exercises (Say 50x50 square in center of map) Environment itself can be alternated nearly-freely and other things can be replaced, like in example provided by @RaptorParkowsky
"Deep within all of us lives an idiot, and if you let that idiot dictate your decisions your live is going to be rough."
~ Ryan Letourneau, 2k15
...and they lived happily ever after. The end.
Spoiler :
[Image: unknown.png]
You know, guys
Last year I partook in an educational experiment. The professor, that organized this experiment had the problem with some parts of his desired educational process. What he did then? He called to the woman, who is probably one of the most experienced people on this field, she is a founder of about 100 schools in America (I'm from the University of Warsaw) and active teahker. Our professor took here advice and solved his problem.

From what I've read here, I see that this is what you might need. An advice from a real teacher with a real experience in teaching youngsters programming every day. It might help you set your priorities in creating the new course and/or better understand the principles underlying the old one.
You are certainly awesome programmers but have you ever taught anyone programming?

My advice for you is to speak to the best teachers in Poland and abroad, record what they'll say and then discuss it and make decisions. The fact, that your community is diffused allover the world is your advantage.
I tried to teach programming many people, but most people have no desire to learn whatsoever. It's hard to teach someone if it feels like one needs to use a heavy hammer to finally get some knowledge inside someone's hard head. If someone wants to learn programming, then one has already done half of the job. It is pleasure to teach and help such people.

The other half of the job is to learn the necessary theory and use it in practice to make real programs, even as simple as an algorithm implementation. Programming is about the wise use of available tools (language syntax, CS theory, etc.) to get the desirable result. In the new programming course, the player in each level will firstly learn a small portion of theory by reading SatCom and then he will immediately be given a task to complete to use the new knowledge. After that, he will be given a more challenging task to stretch the brain and therefore put the newly learned skill in the long-term memory (hopefully). The next challenges should be build the way that encourage to use the new knowledge for revision. I think that is the most we can do at this point, the rest depends on the learner.

Most math books take this approach: first show theory, then give (a lot of) different exercises. Some facts are easier to remember by discovering them by yorself instead of just reading about it. The harder the exercise, the more it will be rewarding after figuring it out and you'll start seeing connections between several facts which you would not have discovered by pure reading. The most successful programming books in teaching take similar approach.

I've already done my research about teaching programming (in fact, I'm constantly discovering new approaches and interesting ideas in teaching) and I've based the current sketch on the most valuable (in my opinion) resources. I'm not sure if even the best teacher could help us. We are making a game here, there will be no real teacher during the process of learning. We should take an example from online courses, books and other applications/games focused on teaching. Sure, an advice from a real teacher would be really helpful (@Mrocza already gave us many tips), but that's not everything. There is a significant difference between teaching a person, teaching a group and writing a book for self-learners. Teaching is so hard because it depends on so many variables it's just impossible to create a perfect learning environment for everyone.

Either way, we already agreed on the current programming course. If some teacher wants to give us any advice or critique, he's free to do so, it's a public forum. If someone has access to a good CS teacher (I've met not many of the good ones in my life TBH, not even talking about the ones teaching programming), then we would be more than glad if one asked him to look at our course, but it's not that much necessary, especially that this is not a very popular open source project and the best people tend to not work for free.
[Image: XvN5CTW.png] [Image: UYXyyMS.png]
I must admit that I'm a little bit disappointed with your overconfident answer. First you've said, that you had no success with getting kids interested than you say that team needs no help at all and know enough to make the best possible programing course.

You know, the question "how to teach people and get them interested" is one of the most nontrivial questions at all. There is very vivid branch of science that is constantly trying to improve methods and approaches. Maybe, if the profile of this project is rather self-learning, you should write an e-mail to one or two authors of the best self-learning books or interactive courses. They usually like to talk about their work. Don't be arrogant, this is a very difficult problem.

I've read the whole discussion. Filtered out the horrible part, I realized that you didn't even asked yourselves some crucial questions like: Is it more instructive to make step by step tutorials or give exercises witch demand searching for answer in docs? Or maybe at first like this and then like that. And what do you mean by "rewarding"? What is this reward? Pure knowledge? Understanding? Benefit in game? Benefit later? What's the palyer's motivation? You assume that he want to play or to learn? Does he make exercises for fun or because this game was recommended by Polish Ministry of National Education as a teaching aid for learning the basics of algorithms and object-oriented programming? He want to automate boring part of the game with robots? He likes remarkable features of robots like instant knowledge of position of everything even if it is hidden somewhere on the giant map or the great precision to use robot as measuring devices, universal compasses or just having absolute power on them? Or he don't even know yet? Should you inform him about possibilities of usage in game or let him discover them by himself?

Now, these are not simple questions. I don't expect you to answer them right away. I don't know an answer to any of them. Those questions are not all that one can pose. I know that this is very hot topic in your team so I'm maybe stirring up a hornets' nest but I think your team is really awesome and I love what you've done with Gold edition. I think that YOU are the right persons to answer those hard questions and you will. You feel this game as no one else and my suggestion to ask someone was because my questions is just one point of view. All my experience are private lessons and that's not much. (But i've managed to interest someone uninterested once) I think that there are better questions to be asked than mine and tips to get but the final decision on shape of this course is yours - Terranova Team. And' thats the best part. Just don't treat it too lightly.

Also i advice to consult with real life teachers because there are things trivial for you, experienced programmers that you might not even know that can be hard at the beginning. When you understand such ideas as monads or programming in logic, old and familiar ideas might seem very natural end obvious. Only someone with huge experience with teaching actually know what is problematic for students at the beginning.

Best wishes,
Karol

Edit:
@Simbax, I've just read your posts in shoutbox and some of my objections seem completly missed right now. I can see that you don't treat it too lightly and you are not arrogant. I'm sorry for that words.
(07-18-2016, 07:06 PM)Karol Wrote: I must admit that I'm a little bit disappointed with your overconfident answer. First you've said, that you had no success with getting kids interested than you say that team needs no help at all and know enough to make the best possible programing course.


I must admit that I'm a little disappointed that you interpreted my post as overconfidence, because I'm the most diffident person I know and I actually don't like overconfident people very much. This means my writing is bad, which I unfortunately know for a long time now and I still haven't made any improvement despite many tries. Just know that I didn't intend to make my answer look like a sign of arrogance.


(07-18-2016, 07:06 PM)Karol Wrote: You know, the question "how to teach people and get them interested" is one of the most nontrivial questions at all. There is very vivid branch of science that is constantly trying to improve methods and approaches. Maybe, if the profile of this project is rather self-learning, you should write an e-mail to one or two authors of the best self-learning books or interactive courses. They usually like to talk about their work. Don't be arrogant, this is a very difficult problem.


Yes, I know that this question is nontrivial, although I wouldn't be so sure if it is indeed "the most nontrivial" question, that is a very brave statement, but I'm not going any deeper with that, because it doesn't matter and I just like to philosophize, as my mother would say. 

The profile of this project is actually a mystery to me, since many fans actually love Colobot more because of different aspects than programming, although I believe that a viable tool for self-learning is at least one of the main goals of the project.

You say that we should write to some authors. I want to make clear that I don't criticise your idea as you can read in my previous post, I actually approve it. I've said that critique and advice from good people would be helpful. The thing is that we're not full-time developers and we're working on an open source project, where everyone does whatever one feels like doing, nothing less, nothing more, that's the nature of open source projects. And writing an e-mail or two is a task which one might not feel like doing. We don't even have a list of authors we would like to ask questions yet, we don't even have a list of concrete questions. Such e-mails are probably a material for live group discussions, as we usually do in such cases, because such e-mails are a voice not of one person, but the whole team, maybe even community.

So the point of my answer was not showing-off how great teachers we are, because we know nothing, but to gently point out, that your idea would be a great addition, but it is not necessary, because I think that if it won't happen, then it won't be the end of the project. I may be wrong, there are other people in the community who might think differently, but for me, it's not necessary. What is necessary for me is to get at least the first few chapters done in order for us to have something. Files are not set in stone, they can be changed at anytime and I'm 100% sure they will be changed myriad of times. So, I like your idea, but it is low on my priorities list at that moment in time. And my opinion is not the opinion of the whole team, mind you.


(07-18-2016, 07:06 PM)Karol Wrote: I've read the whole discussion. Filtered out the horrible part, I realized that you didn't even asked yourselves some crucial questions like: Is it more instructive to make step by step tutorials or give exercises witch demand searching for answer in docs? Or maybe at first like this and then like that. And what do you mean by "rewarding"? What is this reward? Pure knowledge? Understanding? Benefit in game? Benefit later? What's the palyer's motivation? You assume that he want to play or to learn? Does he make exercises for fun or because this game was recommended by Polish Ministry of National Education as a teaching aid for learning the basics of algorithms and object-oriented programming? He want to automate boring part of the game with robots? He likes remarkable features of robots like instant knowledge of position of everything even if it is hidden somewhere on the giant map or the great precision to use robot as measuring devices, universal compasses or just having absolute power on them? Or he don't even know yet? Should you inform him about possibilities of usage in game or let him discover them by himself?


We're only people, that's why this thread is on the forum so anyone can at anytime bring something new to the discussion. You ask those questions, someone else asks different questions, for someone else some of the questions have obvious answers, and some of them can be answered in the later stage of development. I'll try to answer your questions, of course only with my opinion, which is not the opinion of the entire team and may be not what we all agreed to.

"Is it more instructive to make step by step tutorials or give exercises witch demand searching for answer in docs?"

I think that this is quite obvious by the looking on the current sketch that we chose the latter. Well, at least I did, since I've written the whole thing (and I really hope that the proportions of authors are going to change sooner or later), and nobody else gave any objections to it, so I assume that everyone agrees or just doesn't care. Step by step tutorials are good for a cooking book, but programmers must learn how to think abstract to come up with new solutions, because, well, programming is basically about making cooking books for computers by experimenting with constantly new ovens and ingredients you've never used or seen before, and you have to know how to quickly learn to use the new ovens and how to recognise which ingredients are worthy. Maybe it's not the best comparison ever, but I hope you get my point.

"And what do you mean by "rewarding"? What is this reward? Pure knowledge? Understanding? Benefit in game? Benefit later?"

I assume that the biggest motivation is the feeling of "a-ha! it works!" after hours, days, weeks or even months of trying to figure out how to create or understand something. At least that's my motivation. Real life programmers might also be motivated by their salary <joking>. We can add more gamey rewards later, like achievements, skins, in-game money, ranking points or anything else. It's just a matter of time and people.

"You assume that he want to play or to learn?"

I assume he wants to learn by playing a game. If the player doesn't want to (self-)learn, then we lost before the race even started, unless we make the teaching aspect so sneaky, sneaky, that the player won't even notice that he's learning! That's a really hard to achieve goal though, if not impossible if we consider that programming and Computer Science just is difficult.

"Does he make exercises for fun or because this game was recommended by Polish Ministry of National Education as a teaching aid for learning the basics of algorithms and object-oriented programming?"

That's... a great question actually! It opened my eyes for another matter. I mean, how to make a game fun somehow even though a kid is forced to play it because this what a teacher or the Ministry of Education wants. You know, not only doesn't the kid want to learn, but also is forced to do it. This is a real challenge.
Well, I believe that if we improve graphics, add some cute gamey elements and make the course interesting enough by its writing, plot and gameplay, then at least some of the students should have fun. It's hard to tell, but as I said, we need to start somewhere, so we can play a little with it to see if it works and how can we improve it. Or we use the sneaky, sneaky teaching strategy as I said earlier, if we can.

"He want to automate boring part of the game with robots? He likes remarkable features of robots like instant knowledge of position of everything even if it is hidden somewhere on the giant map or the great precision to use robot as measuring devices, universal compasses or just having absolute power on them? Or he don't even know yet? Should you inform him about possibilities of usage in game or let him discover them by himself?"

We were discussing about that at some point in this thread. We must assume that the player doesn't know anything about the game, since it's totally possible to play the exercises before missions. At least for now. We could, of course, lock the programming course before the player beats the game, or unlock it after the first chapters of the game, but it's again something we can and probably will solve later, after we finally have a programming course at all and some reworked missions while we're at it.


(07-18-2016, 07:06 PM)Karol Wrote: Now, these are not simple questions. I don't expect you to answer them right away. I don't know an answer to any of them. Those questions are not all that one can pose. I know that this is very hot topic in your team so I'm maybe stirring up a hornets' nest but I think your team is really awesome and I love what you've done with Gold edition. I think that YOU are the right persons to answer those hard questions and you will. You feel this game as no one else and my suggestion to ask someone was because my questions is just one point of view. All my experience are private lessons and that's not much. (But i've managed to interest someone uninterested once) I think that there are better questions to be asked than mine and tips to get but the final decision on shape of this course is yours - Terranova Team. And' thats the best part. Just don't treat it too lightly.


Ah, that's so nice! I probably shouldn't be answering to that, because I don't feel like I did much for the project, it's our main programmers that deserve all the respect.


(07-18-2016, 07:06 PM)Karol Wrote: Also i advice to consult with real life teachers because there are things trivial for you, experienced programmers that you might not even know that can be hard at the beginning. When you understand such ideas as monads or programming in logic, old and familiar ideas might seem very natural end obvious. Only someone with huge experience with teaching actually know what is problematic for students at the beginning.


Fortunately, I'm not that advanced programmer and I'm well aware of that issue of taking some hard concepts too lightly after years of experience, so I think I am at least a little bit aware of the difficulty for our younglings, although I find myself thinking  that I made some levels too hard more often than too easy. The best person to clarify that is someone who has no or very little experience in programming at all and make one play the thing.

TBH most teachers I've met lose themselves in their difficulty awareness, but I may just be unlucky. Again, I'd be more than glad to see a good teacher helping us, but I don't know any good programming teachers (English, Math, sure, but programming I had to learn all by my own, and I had to help my classmates a lot with coding in class). Most courses on the Internet are bad and can even give you false knowledge (which is way worse than knowing nothing at all, because you spread false information and believe it's true!).

It's an open source project, anyone can help. You must understand that we see a lot of ideas before even the project happened. We get that everyone has ideas (some are bad, some are good) and wants to see them in real, but implementing them is not a trivial task and we have finite resources. You could make your idea happen more quickly by giving us a help hand, at least by listing some authors or teachers you would recommend. We all want to make this game great, but we're still only humans with our own lives and personal goals. And we're horrible at organising and prioritising, but don't say that to anyone, it's a secret.

Ugh, that's a long post, I hope that nobody has written anything significant while I was replying...

Edit:
(07-18-2016, 07:57 PM)Karol Wrote: @Simbax, I've just read your posts in shoutbox and some of my objections seem completly missed right now. I can see that you don't treat it too lightly and you are not arrogant. I'm sorry for that words.

No problem. Most of the time it's me who gets on people's nerves here Sad Maybe because I'm often getting angry at people, who knows!
[Image: XvN5CTW.png] [Image: UYXyyMS.png]
Woah, now I'm impressed. Big Grin That's very deep analysis.

[here was the part informing about my edit but i've just refreshed the page]

I can't wait to see what will be the actual outcome of your inner discussions and I hope I will. And I'll try help however I can.

As for the teachers, I don't know many but prof. Ireneusz Bujnowski is considered the best in Białystok and one of the best in Poland. He raised some IOI medalists and a lot of OI medalists. Maybe we could check who's teaching in III LO from Gdynia and generally check out the teachers whom raised IOI medalists allover the world. I might ask my friends to ask the professors at MIM UW if they know who is the best teacher at high school/gimnazium level.

Btw. I've once contributed the colobot code. I've wrote the small fix allowing Deffence Tower attack opponent in a Code Battle ^^

What I meant with "rewarding with benefits in game" was benefit of having automated some stuff but your version might also be interesting. I've imagined saying this, was that I like very much having a small, dumb programs like "go home" or "accio" (come to astronaut) "how far is it?" that makes repetitive tasks hand-off during missions or lets you use the power of your robots abilities.

Thanks for discussion Smile


Forum Jump:


Users browsing this thread: 14 Guest(s)