What programming language can I learn that would be best?

Ask questions about projects relating to: computer science or pure mathematics (such as probability, statistics, geometry, etc...).

Moderators: kgudger, bfinio, Moderators

Locked
SarahSkye
Posts: 9
Joined: Fri Jun 01, 2012 1:55 pm
Occupation: Student
Project Question: Math/Computer Science
Project Due Date: February 2013
Project Status: I am just starting

What programming language can I learn that would be best?

Post by SarahSkye »

I've come up with a general idea of what my project will be. I want to find out what learning style most students are most successful in. For example some students learn better seeing the information as text, like reading a book. Some learn better when they can read and hear it at the same time. Some learn better if it's made into a game and they can get competitive.

Anyway, I was thinking I could write a program to test which learning style students perform best in. I could write a few separate programs to test each learning style. For example one can have a quick math lesson simply print onto the screen, and then a set of relevant questions will print and the students answer them. Then another program could have text and audio at the same time for the lesson, and different students would answer the same questions as the previous program, only with a different learning style. And then another program could be more of a game.

I don't know what to use to make these programs though. I have a little experience with QBASIC but I'm not a very good programmer. I'm willing to learn, though. Which language should I use instead of QBASIC? I was thinking maybe Visual basic, but I've heard you get bad programming habits from it.

Maybe I could even use HTML and make it into a web page instead? I don't know. Does anyone have any idea what I should do?
hhemken
Former Expert
Posts: 266
Joined: Mon Oct 03, 2005 3:16 pm

Re: What programming language can I learn that would be best

Post by hhemken »

SarahSkye,

QBASIC is ancient and out of use, and Visual Basic may well lead you astray.

There are two broad approaches: 1) a standalone program that the user runs from an icon on the desktop or (GASP!) from the command line, and 2) something on a web page.

The first option is definitely more difficult because designing graphical interfaces within a program is difficult. The second is much easier because the web browser takes care of the really nasty stuff and you just lay everything out with HTML and CSS. Sound, video, and text are fairly straightforward to do on a web page, so I would strongly recommend that.

You still have two choices though: 1) an isolated html file (and possibly other parts such as CSS and Javascript) that will have a clickable icon on the desktop, and 2) a website where all the parts reside. The first choice is harder for users, because they would have to download things and put them in the right places. Each and every user would have to do it, and people who have problems will either give up or ask for your help. Not a big deal if it is a few people, a complete disaster if it is hundreds or thousands of people.

I would recommend you set up a web page somewhere free, such as wordpress.com (you can easily google for more). Setting up your own server and the like are also a pain and would be a huge distraction. Try to stand on the shoulders of giants and reuse what others have already done.

If you use something like Wordpress on a free Wordpress site, then the problem devolves into you creating web pages to test your different approaches using HTML, CSS, Javascript (and maybe jQuery to make it easier), and the Wordpress admin interface (which is pretty easy and powerful, BTW). This allows you to use your time wisely and efficiently, learning as few things as possible to get the job done. There are tons of books, tutorials, howtos, videos, etc. that will help you out.

Always remember: Keep It Simple! It will be very easy to go off on wild goose chases, so you must zealously stay focused and on-task!

If you use a free website host and build your web pages, then all you have to provide your test subjects is a URL. You can have one for each test page, and if the subject does not know of the other URLs, then they are limited to only doing the test you want them to do. The trick will be how to capture the results. If you go the Wordpress route, try looking at the plugins at wordpress.org to see if something can do what you need.

You may also set up pages at a free or cheap web host and write all of the back end code yourself using the Common Gateway Interface (CGI; http://en.wikipedia.org/wiki/Common_Gateway_Interface). That's the program code that will capture and store data from each user interaction. It can easily be used from a Wordpress page by putting in the appropriate HTML code to call the CGI program. The CGI code could be in any common web scripting language like Python, PHP, Perl, etc. Again, keep it as simple as you can. Don't get fancy.

Please let us know what you think and whether any of this is difficult to understand. The simpler you can keep it, the more likely you will be successful. Also, let us know if you prefer a standalone program, there are options that might be practical for you.

Good luck!

Heinz
Heinz Hemken
Mentor
Science Buddies Expert Forum
SarahSkye
Posts: 9
Joined: Fri Jun 01, 2012 1:55 pm
Occupation: Student
Project Question: Math/Computer Science
Project Due Date: February 2013
Project Status: I am just starting

Re: What programming language can I learn that would be best

Post by SarahSkye »

Lol, I know QBASIC is ancient. I used it in my science project last year :D

Making a web page does sound easier, and I'm interested in it...I'd to learn about something like C++ or something eventually, which is why I'd like to learn about other programming and eventually work my way up to where I really know what I'm doing haha.

I'd rather not use one of those websites where you don't really have to do anything but pick a template, and other things. I'd rather do it on my own, using HTML or something. (Sorry, I'm not very knowledgeable about these things, which is why I'm doing a science project with them, to learn about them). Seeing which learning style is best isn't the only part of the project, I'd like programming to be a part of it too...I'm not quite sure where to start though.
hhemken
Former Expert
Posts: 266
Joined: Mon Oct 03, 2005 3:16 pm

Re: What programming language can I learn that would be best

Post by hhemken »

SarahSkye,

If you want to learn cool programming stuff in the course of your project, then I would recommend doing it in Python using the Google App Engine:

https://developers.google.com/appengine/
http://ae-book.appspot.com/code

Read this book first (it's short) for a very useful overview (don't pay too much attention to the negative reviews on amazon, they're from people who already know what's in the book):

http://www.amazon.com/Using-Google-Engi ... 059680069X

Then read and use this one to build your app. By the time you hit the fourth or fifth chapter, you'll know more than enough to do your project.

http://www.amazon.com/Programming-Googl ... 059652272X

Python is very widely used and it will stand you in good stead for many years. You will be reusing your code for a long time. Also, setting up your site will be free and will easily deal with millions of hits at a time if you are smart and lucky enough to get that kind of traffic. You'll have some highly sellable skills to boot.

Good luck!
Heinz Hemken
Mentor
Science Buddies Expert Forum
SarahSkye
Posts: 9
Joined: Fri Jun 01, 2012 1:55 pm
Occupation: Student
Project Question: Math/Computer Science
Project Due Date: February 2013
Project Status: I am just starting

Re: What programming language can I learn that would be best

Post by SarahSkye »

On the python website they have a download, should I download one of those? If so, which one? There are a lot of different versions.

Also, what exactly is Google App Engine? Do I need it to write an application in Python? Or is it just somewhere to upload the Python program to where it'll be on a webpage?
hhemken
Former Expert
Posts: 266
Joined: Mon Oct 03, 2005 3:16 pm

Re: What programming language can I learn that would be best

Post by hhemken »

SarahSkye,

If you are on Windows, I recommend getting Python 2.7.3 from here (don't get any of the 3.x versions!):

http://www.python.org/download/releases/

If you are on Mac or Linux, you probably already have Python. Then get the Google App Engine SDK (Software Development Kit):

https://developers.google.com/appengine ... nvironment

That last link is a tutorial to get something started.

As to what the Google App Engine (GAE) is for, that's what the Using the Google App Engine book will tell you in detail (highly recommended and eye-opening). The short version is that it is a place for you to host a website that is entirely generated by program code, that is, a dynamic website. This is different from a static website, which consists of a bunch of pre-written HTML pages. The pages you will see on the website using GAE are all generated on the fly by your python code.

You do not need GAE to run Python programs. Once you download and install Python you can write programs to your heart's content. Using GAE solves all your problems with regards to giving users the latest bug-corrected version of your program, and having a relatively easy to create graphical user interface (GUI). Since your GAE python code will be writing HTML pages on the fly, creating the GUI is about as easy as creating HTML pages.

The fact is that regardless of how you approach your project, you'll have to learn a variety of new programming tricks. So, I would suggest that you make all that hard work be durable, and give you a foundation that you can use off and on for many years. GAE will give you that. Even if Google or GAE disappear a few years down the road, you will have enough knowledge to adapt to whatever new things take their place. Python isn't going to disappear any time soon, BTW. The user base and installed code base are far too large.

In any case, this is just a suggestion. Since you will have to face a learning curve or two, I suggest you make a calm, thoughtful, and informed decision. the Using the Google App Engine book will give you the basis for that. If you can get it from a library or a used bookstore, that would be great.

Good luck and keep us posted!


Heinz
Heinz Hemken
Mentor
Science Buddies Expert Forum
SarahSkye
Posts: 9
Joined: Fri Jun 01, 2012 1:55 pm
Occupation: Student
Project Question: Math/Computer Science
Project Due Date: February 2013
Project Status: I am just starting

Re: What programming language can I learn that would be best

Post by SarahSkye »

Thank you so much for all the help (: I think that's what I'll use. If I have any other questions, I'll ask on here! I'll probably need to just use tutorials and information from the internet for now, instead of the book from Amazon, because I'd like to get started right away so I can make some progress on it before school starts. Also, I don't want to ask my parents for money right now. Thanks again!
hhemken
Former Expert
Posts: 266
Joined: Mon Oct 03, 2005 3:16 pm

Re: What programming language can I learn that would be best

Post by hhemken »

SarahSkye,

Here is a pdf of the "Using..." book:

http://alexids.googlecode.com/files/Usi ... Engine.pdf
Heinz Hemken
Mentor
Science Buddies Expert Forum
hhemken
Former Expert
Posts: 266
Joined: Mon Oct 03, 2005 3:16 pm

Re: What programming language can I learn that would be best

Post by hhemken »

...and here is a copy of the corresponding "Programming..." book:

http://netoearth.com/book/ProgrammingGo ... Engine.pdf

That should keep you busy for a while! Read the "Using..." book first, though. Also, I wholeheartedly agree that you should make maximum use of any web resources you can find. There is no one-size-fits-all.

Good luck!
Heinz Hemken
Mentor
Science Buddies Expert Forum
SarahSkye
Posts: 9
Joined: Fri Jun 01, 2012 1:55 pm
Occupation: Student
Project Question: Math/Computer Science
Project Due Date: February 2013
Project Status: I am just starting

Re: What programming language can I learn that would be best

Post by SarahSkye »

Thank you so much! If I run into any problems I'll make sure and get some help here (:
SarahSkye
Posts: 9
Joined: Fri Jun 01, 2012 1:55 pm
Occupation: Student
Project Question: Math/Computer Science
Project Due Date: February 2013
Project Status: I am just starting

Re: What programming language can I learn that would be best

Post by SarahSkye »

Okay, I've read a bit about Python and downloaded it but haven't tried anything yet. Before I start, Just to verify, I'll be able to use audio files in Python?

Also, I read about something called Pygame. Would that be useful for the project I'm doing?
hhemken
Former Expert
Posts: 266
Joined: Mon Oct 03, 2005 3:16 pm

Re: What programming language can I learn that would be best

Post by hhemken »

Since GAE is basically a web-page generator, anything that can go in a web page is fair game, including audio, video, images, etc., so the answer would be yes.

Pygame would be a non-web alternative. I'm not familiar with it but the about page (http://www.pygame.org/wiki/about) sounds impressive. This would also work for your project.

The only drawback there might be to Pygame vs. GAE is that you would have to re-distribute the game to users after each bugfix. A website is always up to date. They would probably require a similar level of effort to make something useful, I would guess.

As they say, there's more than one way to skin a cat.

Good luck!

Heinz
Heinz Hemken
Mentor
Science Buddies Expert Forum
Locked

Return to “Grades 9-12: Math and Computer Science”