0 Favourites

Does Construct 2 teach good programming thinking?

  • From another perspective, I personally believe knowledge of Unity/Unreal Engine would be more relevant as we move towards the future

    If you really want to teach to beginners what programming means, you can use C2 just for making them doing a fun work but your risk is to let them believe it's always so easy. No syntax problem, the interface telling you everything etc. because when they will meet the hard reality of code, they can be disapointed too.

    Gentelmans. Don't be ignorant . Remember how it all started? First it was about setting bits with 0s and 1s. Then we recieved another virtualization which was Assembler. Still everybody dreamed to make soft easier so finally we got human readable programming virtualizations like ANSI C. Next step was OOP paradigm, design patters, frameworks, programming IDE tools which done some things for us and many other things along the way and up.

    So we are doing still the same thing just using new virtualizations of programming itself. If you meet a hardcore programmer from '70s he could say "Oh man, you use mouse and color monitor to highlight syntax? - you're not a real programmer!" . The times change. Drag & drop programming like here in C2 is not something for kids to play. It's just new thing which will get more and more popular. Other engines started to build their drag&drop systems now as well... as Godot for instance which announced recently that they want it as well. Unreal engine has it as well if I'm not mistaken.

    Anyway this is the future. All of you who are working with tools like C2 you are precursors of modern programming. Almost no one code with Assembler these days and there will be time when no one will code with regular programming language. That's a sure thing. Just need a time to let technology get steady. Right now we have some performance issues etc, but VERY soon this will not be a problem - you know that.

    So if you ask me what is the future? I say that a tool of the future is the one which gives the same result in smaller amount of time. Remember when Ruby language popped up? Everybody were like "WTF is this?!" It was some weird language without semicolons, very heavy etc. But you could do things ten times faster than with other languages, and it got popular in result.

    C2-like engines are the future. Not discouraging from learning other engines and coding - it's always good to know as more as possible. But C2-like engines are the future for sure.

  • Well the point of mentioning Unity and Unreal is that they are accessible 3d engines that can handle 2d as well, whereas C2 is 2d only.

    Of course as times change new engines and languages will grow in popularity, but those two are relevant today and the near future in that if you are looking to get hired at a larger developer, knowledge of them will be more valuable than knowledge of C2.

    But then we are straying from the topic of the viability of using C2 in class, which I think is an excellent idea tool for beginning programming incidentally. I'd prefer C2 over Visual Basic (my first class) for sure.

  • BackenFreak

    I dunno if i express myself correctly but i'm with you from the start i came here talking with all of you :p

    When i said C2 was at an upper level of programing i wanted to say all of what you said in your (big) answer :p

    But imo, it's still important to know the basis of what you sit on.

    I think people will always use C2 on a better way in knowing Javascript even if it's not at all required to do awesome games with this knowledge.

    (damn i didnt know it was possible to do so much philosophy with everyone around a software)

  • Construct 3

    Buy Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Buy Now Construct 3 users don't see these ads
  • Basically given the choice between a Construct 2 class and a Unity class in high school, I would definitely rather pick Unity.

    Thanks for your input. What you are saying is indeed a logical choice. However the only motivating thing for students would be that they work on a game and they would still have to face the traditional language which is a real discouragement for a lot of them. It would be still better to teach Unity instead today's command line based programs (that's what we have in the majority of the high schools), but I think it could be more real in a study group rather than a computer-science class.

    Of course as times change new engines and languages will grow in popularity, but those two are relevant today and the near future in that if you are looking to get hired at a larger developer, knowledge of them will be more valuable than knowledge of C2.

    True, but we have limited class numbers and we still have to teach all other aspects of computer-science beside programming. So while it would be a good idea to teach Unity as well, we don't have the lesson number for such a complex environment. Maybe in a study group (as I mentioned above) or in higher education. The job of the high school programming teaching is to have the students learn programming thinking. And for that knowledge we don't necessary need engines like Unity. What I really want to say here is that high scools can't prepare students for everything they need to get hired as a developer.

    As i said, your main thought will be "how to move my elevator ?" and not "should i use a OR or a AND in my test ?"

    That part of your previous post didn't clicked for me, but I get it now. Yes, in that matter C2 requires a different approach to teach the same thing.

    If you really want to teach to beginners what programming means, you can use C2 just for making them doing a fun work but your risk is to let them believe it's always so easy. No syntax problem, the interface telling you everything etc. because when they will meet the hard reality of code, they can be disapointed too.

    Yes, I'm glad you pointed this potential problem out. The teachers who teach visual programming will have to prepare the students that programming is not always this easy. Either by showing them examples or having them do simple tasks in both a visual programming and a traditional programming environment. But the latter requires more lessons.

    So we are doing still the same thing just using new virtualizations of programming itself. If you meet a hardcore programmer from '70s he could say "Oh man, you use mouse and color monitor to highlight syntax? - you're not a real programmer!" . The times change. Drag & drop programming like here in C2 is not something for kids to play. It's just new thing which will get more and more popular. Other engines started to build their drag&drop systems now as well... as Godot for instance which announced recently that they want it as well. Unreal engine has it as well if I'm not mistaken.

    Yes, Unreal has a node based system called blueprints. This always comes up in larger topic when visual and classic languages get compared, and it's always true. We are experiencing the spread of a new programming approach. I too believe that in a few years more and more environments get visual programming modes and later that type of development will rule the market. Think about kids nowadays. They use smart devices from early ages and they tend to go for the easier solution in solving a problem. They are the perfect candidates for visual programming. And we shouldn't forget that these languages evolve. More and more things are possible with them as new iterations come out.

    C2-like engines are the future. Not discouraging from learning other engines and coding - it's always good to know as more as possible. But C2-like engines are the future for sure.

    Can't agree more. Life-long learning is also important.

    But imo, it's still important to know the basis of what you sit on.

    ...

    (damn i didnt know it was possible to do so much philosophy with everyone around a software)

    It's important. And it's very important for a teacher.

    You can do as much talk about a software as you want if you have such a great Community

  • You can do as much talk about a software as you want if you have such a great Community

    That's true. That's why there's so many people he stating that they are "addicted" to this forum

  • Seriously, i wanted to talk more to Scirra community, being more present because i use C2 everyday so i wanted to be helpful but i didnt know where to start.

    And finally, when i believed i would be helping beginners, i'm doing teaching philosophy :p

    Awesome !

    I won't say i am addicted but that's true that's it's very enjoyable to talk to ppl who accept advice and learn with everyone.

  • [quote:2miepjqt] It's unlikely that a high-school student will learn how to code a software from ground up in school using traditional languages.

    actually in the UK primary school curriculum (5-12 year old) there is a requirement that all students must be taught a "real-world" programming language. I think it's harsh but I can see the point in that it is more valuable if they succeed.

    R

  • actually in the UK primary school curriculum (5-12 year old) there is a requirement that all students must be taught a "real-world" programming language. I think it's harsh but I can see the point in that it is more valuable if they succeed.

    R

    Yes, if they do. But experiences from all over the world state that students who go to college can't program well enough or can't program at all. So a lot of the universities have to start again from the beginning. Also, I think students that young will find those languages too hard.

  • If the question is: Is C2 a good tool to teach newbies how to think about programming then I would say it is probably the best out there at the moment.

    Kids these days lose focus so quickly that by the time you were halfway through coding up something simple in a traditional language you would have lost about half of them at least.

    With C2 you have events that are readable and building blocks that they can experiment with. Where they go after they are interested in programming is up to them.

  • Kids these days lose focus so quickly that by the time you were halfway through coding up something simple in a traditional language you would have lost about half of them at least.

    Yes, this is true. A few years ago it was that an average student can focus for about 20 minutes before they need to take a break (the teacher would tell a short story, ask them something interesting, etc..). Nowadays that focusing time is much less. The kids grow up with their attention divided so they will divide their attention in class too and can focus for shorter periods.

  • I'm currently teaching a BTEC Level 3 Games Dev unit at a college (16-19 year old learners).

    Currently been delivering it in VB.net / Visual Studio because this is what we have (learners have to create a space invaders style game).

    Going to be moving to C2 for next year for exactly this reason; going in cold with learners who don't know programming and 16 weeks to teach them "to make games" is very challenging if they don't have a programming background.

    In all honestly i've spent most of my time when delivering this unit fixing basic programming syntax problems rather than getting my guys to produce good results and working content. C2 offers a straightforward path into games dev that can be really easily built on in future if the students choose to, or provides them with a solid grounding in how game engines work and how to produce good quality content. It's worked extremely well with the group i've trailed it with and they've managed to produce in 2 weeks what the other groups has achieved in 10 weeks.

    For reference: my actual background is in UDK/Unreal 3/Unreascript with only using C2 for mobile games in the past but as a jumping off point for games dev it's pretty much second to none. Also Scratch is delivered as part of the curriculum in schools now, so the learners are already familiar with the visual scripting style and can pick up actual programming more easily later on.

    Anyway, as someone who is actually teaching games at the moment I thought my perspective might be helpful here.

  • I teach a college elective course called Interactive Game Design using C3 and UE4. The students are mainly art students and definitely not programmers.

    They take very well to Construct (and less to UE4). I usually start out the semester with 2 weeks of BASIC programming (repl.it) and we make text based games. But the biggest challenge besides picking is the actual game loop which is why I start them with learning old-school loops in BASIC so we have a common frame of reference for what is happening in the game engine. A lot of my students are animation students so they understand frames per sec so that's also another way to explain it.

    But wrapping their heads around triggers (green arrow Events) opposed to something like: System Event: Health <= 0 ---- they have a hard time grasping this will run 60 times per second.

    The first few projects I only use behaviors and little Event usage. Then I get a little more advanced with variables and basic AI. The other major hurdle is teaching them "flags" or booleans. I don't even touch arrays unless the student is more advanced. UI stuff I also keep VERY basic as that can become some of the most difficult things to code...

    A lot of students go on to make really interesting games and I think they get a lot from the class because they've been able to produce something they are proud of.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)