Teaching students programming using Unity

I want to teach students programming through unity simulation. Let us assume we have a conveyor belt, and I want to simulate it. Of course, with the help of C# script, I can simulate the conveyor belt, but I want students to write the program (code) to simulate the conveyor belt.

As the students will be totally new to programming, I don’t want them to use unity C# script directly as it will be for them very complicated, instead I want them to write a very basic program (may be in python) to simulate the conveyor belt in unity. Is there any way out?

Thank you in advance!

Just because it might look complicated to you, it’s not. There are hundreds of millions of developers using C# all over the world. Even monkeys like me can figure it out.

Teach your students in C# under Unity and then they’ll have a useful skill to put on their resumes right away.

When you work under Unity there are three major areas of language knowledge:

  • C# language syntax (organization, structure, grammar, punctuation)
  • the .NET API (all the tools that come with C#: lists, dictionaries, file IO, etc)
  • the Unity API (everything in the using UnityEngine; namespace)

I call these “API buckets”: you may find this helpful to organize your learning.

Please don’t multipost, answered here also Teaching students programming through unity simulation

Why do you think python is easier than C#?

It is double difficult to learn Unity AND programming. For totally new/inexperienced programmers I suggest to learn C# outside of Untiy as it adds some additional complexity. The free C# Yellow Book by Rob Miles is a good start.

In any case. If your students are not willing to learn C# it makes no sense to let them learn Unity at all. Then stick with Python. I have read about an attempt to integrate LUA with Unity but I don’t know where this lead. Maybe look in the AssetStore if you find a Python interface there. Another possibility would be visual programming. But I’m not a fan of this either. Real programmers code binary ;).

1 Like

This may be true but I believe that the “interestingness” of learning in an environment such as Unity, where you can trivially have access to pretty much everything, far outweighs the extra complexity.

Don’t forget that a huge part of learning is motivation. If I had to learn C# (or ANY programming language) in a business context, I would have long-ago lost interest and just made a career out of basket weaving. Interactive game software is infinitely more interesting than sorting a list of names and addresses!

3 Likes

I understand that. But when you learn juggling you also start with one ball ;). I learned TurboPascal back at University and just “abused” it to make (flickery) games.
The point is I see many new user struggling with this complexity. They ask for every missing bracket and semicolon after an if. This could be avoided if they learn programming in a “formal” way first. All that “motivation” does not help when you don’t grasp the basic concepts.
In the end everyone has to decide for him-/herself how to approach it. Some people can cope better with the one or other method. And I’m not hindering someone to do it ;). That’s why I called it “suggestion”.
But I agree that game development is way more interesting than “normal” programming (business, website, database stuff). The element of creativity is a huge driving factor.

1 Like