Does Construct 2 teach good programming thinking?

For educators around the world who use Construct 2 in classrooms

Post » Thu Apr 07, 2016 8:40 pm

I'd like to address the questions in the title and below to teachers and developers alike. I'm really curious about this topic, especially since there was a mention in the forums a while ago, when someone said that Construct 2 teaches bad programming practices.

What is you experience regarding the programming knowledge (or computational thinking) you learned from using Construct 2? Do your students or you benefit from that knowledge? If you tried other programming methods after Construct 2's visual event system, what was your experience? Did you felt yourself a bit familiar in the new environment?

Thank you for anyone who can spare the time to answer these questions. ;)
B
135
S
33
G
17
Posts: 1,557
Reputation: 20,717

Post » Thu Apr 07, 2016 9:16 pm

Well that's a nice question.

I am with programming many years already (you can check my experience on my online CV BackendFreak.com - it's not really up to date but still) and with Construct 2 only a year (but intensive ;)). The first thing to mention is that even though I am fluent in direct programming I love making apps with C2 because it saves you enormous amount of time comparing to normal coding.

If you ask about programming thinking then I would say - yes. Programming is basically a specific logic/way of thinking. And C2 has that logic. So for newbies it is pretty cool to start with C2 and then go to coding. After you got familiar with C2, you understand what are conditions (if statements), functions, arrays etc. So once you jump into programming, this knowledge is very useful.

But if you ask about good programming practices, then I'll rather say - no. In real programming one of the most important things are encapsulation and semanthic. I don't see anyone talking about that in C2. I see people code snappets on the forum which are really far from or even opposite to what a good programming practice is about.

I'm working now on MoModth, and I really try to make it as much as possible encapsulated and semantically correct. And it is possible but I really struggle sometimes to connect things in the smart and "clean" way. C2 doesn't have features which would let you organize your code/events in the way that you could say it's a very good programming practice. Functions are always global, you almost can't manage groups (besides toggeling), can't include event sheets by events etc...

So again. Yes C2 helps you with understanding what programming is about, but C2 is just another layer over programming language so obviously it has limited possibilities. With raw programming you have to take care of way more things around but it also takes much more time. I'm not saying that C2 is teaching bad practices... it just doesn't teach good ones, because it's simply not a direct programming.

I'd say, that if you make your C2 events as much encapsulated and semanthic as possible then you do the most what's possible. There is simply no way to learn programming patterns and other good programming techiques with C2, because C2 does not have such low level possibilities.
ImageImageImage
B
27
S
16
G
74
Posts: 977
Reputation: 41,673

Post » Fri Apr 08, 2016 4:35 am

@glerikud
Hey there! That's a hefty question but I will try and keep it short and sweet.

In general, I think Construct 2 does a great job of getting into programming/thinking. Like the response above, he feels like some people aren't doing certain techniques just because people aren't talking about it but we most certainly are! Most of us that are using some of the techniques you would see in other languages, are busy and don't post much about it.

Say the port I'm doing now which is a roguelike shooter (Relic Hunter Zero), I've been trying to be really good with where I am putting my code. Before I was bad at putting Global variables all over in different sheets, but over time with C2 it has slowly taught me to be more organized with code which a lot of other languages I don't get to because I'm too worried about the code not working or the syntax being wrong. I will start writing some functionalities and once I can tell it's getting big, start a new Sheet for specific functionalities (I have a sheet for Controller controls, sheet for Keyboard/Mouse, a sheet for Shooting functions, sheet just for Guns and characters, etc).

So to stop from going on too much, I think it's a great learning tool and believe you can truly learn some great things working in C2.

And our community is great!
Twitter: https://twitter.com/pudgyplatypus

Learn to make a clicker game for cheap!
https://www.scirra.com/store/games-with ... e-game-666

Try out Pixel Golf on the Scirra Arcade!
https://www.scirra.com/arcade/sports-ga ... el-golf-67

Pudgy Platypus Games website!
www.pudgyplatypus.com
B
59
S
20
G
5
Posts: 212
Reputation: 7,390

Post » Fri Apr 08, 2016 5:36 pm

BackendFreak wrote:I love making apps with C2 because it saves you enormous amount of time comparing to normal coding.

Is it still true if you are using popular frameworks or a well-know engine like UE4 or Unity?

Also, if I understood your post right, you are saying that if someone gets familiar with C2, it's easier for them to jump over to traditional languages?

Djfuzion wrote:And our community is great!

True. It's the best I've seen so far. It's amazing that how helpful the people are whenever they are on this forum or on Facebook or in a Skype group, etc.. C2 has it's magic :D
B
135
S
33
G
17
Posts: 1,557
Reputation: 20,717

Post » Fri Apr 08, 2016 6:27 pm

glerikud wrote:
BackendFreak wrote:I love making apps with C2 because it saves you enormous amount of time comparing to normal coding.

Is it still true if you are using popular frameworks or a well-know engine like UE4 or Unity?

Of course. Every engine saves your time comparing to pure coding. Even game dev libs like CreateJS saves you a lot of time. But still not as much as C2.

glerikud wrote:Also, if I understood your post right, you are saying that if someone gets familiar with C2, it's easier for them to jump over to traditional languages?

Yes exactly. It's because you are already familiar with the programming logic/thinking and have some basic knowledge like what functions are etc. So yes it is easier to jump over to traditional programming after you are familiar with C2. Not saying it will be super easy, but still easier.

I do recomment everyone to go throgh some programming tutorial just to get a point of what is going on there below. Even if you don't plan to code as proffessional, go and read some JavaScript tutorials. "With knowledge comes understanding" - grab as much as you can ;).
ImageImageImage
B
27
S
16
G
74
Posts: 977
Reputation: 41,673

Post » Fri Apr 08, 2016 10:31 pm

I don't use C2 in teaching, but my feeling is that C2 is NOT a good learning environment by default. I can see how a good teacher could utilise it in a structured learning plan, but as a standalone tool, no.

Why not, it's too forgivin in many ways - it enables quick and dirty coding and coding by hacking. I may be old-school but I still remember being taught that you should have your code written on paper before you ever touch a keyboard. Okay that was more decades ago than I want to admit, but formal processes, logic and structures are important which C2 doesn't inherently force on you... but then it shouldn't.

So my opinion, C2 does not teach necessarily teach you to code well, it does empower you to start coding and doing something (like basic in old days) but C2 is hugely enhanced if you already know how to code well (whether formally taught or not).

PS: just to emphasise, a good teacher can make anything work

PPS: scratch is a much better learning tool for coding than C2
B
7
S
3
G
1
Posts: 184
Reputation: 1,352

Post » Sat Apr 09, 2016 12:32 am

rho wrote:I may be old-school but I still remember being taught that you should have your code written on paper before you ever touch a keyboard.


That reminds me my college times ;). We had to write program in Pascal on paper in 15 minutes every time class started. One missing semicolon was a failure ;). Kinda hard times but fun when I look back now.
ImageImageImage
B
27
S
16
G
74
Posts: 977
Reputation: 41,673

Post » Sun Apr 10, 2016 8:16 am

rho wrote:Why not, it's too forgivin in many ways - it enables quick and dirty coding and coding by hacking.

Well, yes. If the students discover the software by themselves and the teacher won't oversee their works/projects (even the ones they make at home) this can be a problem. But this can be a problem in any environment in my opinion.

rho wrote:PPS: scratch is a much better learning tool for coding than C2

One of the big differences is that Scratch is a LPE (learning programming environment), so it was designed to teach programming. While C2 is a game engine and it was designed to create products with it. The thing is, that C2 is so easy to use that it can be used in education too.
But if a student won't go forward to a university or won't extend his/her knowledge in programming then staying with the software they learned with can be a big difference. It's unlikely that a high-school student will learn how to code a software from ground up in school using traditional languages. Let's say the class learned with Scratch. The student will be able to create small projects and share them online for remixing. But if they used C2, then the students can make games or apps, so it's not necessary for them to move forward if they are the designer types. Most of the students won't learn coding by themselves and most of them won't even practice what they learned.
I'm not saying that C2 can be the solution for everything, I'm just throwing some thoughts in. However I'd be interested in why did you say that Scratch is the better tool for learning (even if it is, even if it's not). Can you elaborate?

BackendFreak wrote:That reminds me my college times ;). We had to write program in Pascal on paper in 15 minutes every time class started. One missing semicolon was a failure ;). Kinda hard times but fun when I look back now.

These time are always fun to look back. :D But when we were there... wasn't so funny.
B
135
S
33
G
17
Posts: 1,557
Reputation: 20,717

Post » Sun Apr 10, 2016 9:25 am

When I was still 14 Visual Basic was my first programming language then after a year I found Construct 2. The knowledge you get from other programming languages makes construct 2 easier especially when visual basic is like an english programming language and almost similar to C2. But I noticed now in my college year that Construct 2 exposure doesn't help me in learning HTML+Javascript, C++ or anything for C2 is very simplified that it skips the other important fundamentals in programming. But the good thing about learning C2 is that your mathematical and logical thinking is improved in other Programming Languages, for example the variables and formula coordination like a+b+c, a<0, a=a*b+1 or sin()cos(). Mathematical and Logic are all the same for every programming language so this is a +1. And C2 also gives me the idea of "If", "Else", "Else If", "While", "For", "For Each", "Repeat" even better.

But totally I believe that learning first a programming language makes your life even easier in C2 than it already is but learning C2 as a start in learning other programming languages is kind of ineffective except for the other things. But this is just my opinion.
The Things you can create is only limited by your imagination. If you don't have the skills then use your motivation as a natural force to exceed all expectations. Chadori RebornXD
B
64
S
18
G
90
Posts: 1,118
Reputation: 59,565

Post » Sun Apr 10, 2016 12:39 pm

The first time I put my hands on C2 I didn't know how to code except had some BASIC knowledge. At the same time I started learning C# and the Object concept was very abstract to me, but C2 helped me a lot in understanding this concept. Overall, I think C2 is good for understanding the concept of objects, variables, loops, conditions, arrays, even functions to some extent. I can't tell if it teaches good programming practices since I'm no good in any other real programming languages, but it certainly helps a lot.
B
79
S
21
G
23
Posts: 513
Reputation: 18,648

Next

Return to Education and Construct 2

Who is online

Users browsing this forum: No registered users and 0 guests