Jeff Elkner's How to Think... was not only the easiest introduction to the syntax of the language, I still use it as one of my references as well as for my students. The tutorial started out as a series of explanations and tutorials but recently has evolved into a much more interactive experience. For many students it is difficult to get software installed on their home computers and sadly it can be difficult for teachers to have it on their school network. Brad Miller has released an updated version of How to Think Like a Computer Scientist with interpreters built into the lesson so students can learn right from the browser.
The ability to program from within the browser is making a huge impact on one's ability to learn right away. Some great examples of this beyond How to Think... are: W3 School (HTML, CSS, Javascript, etc), SAGE (Math), and CodeAcademy (lots of great potential here).
You will need a Google account (free) and an up to date browser (Chrome, Firefox, IE). In addition to the interactivity, video tutorials and an administrative back end is being tested and will be opened up at the end of the semester for use with your students. Brad Miller, continues to refine this project and is committed to making it useful and open to as many as possible. New tutorials have been added to take you from Hello World to full blown Object Oriented Programming (trust me it's awesome).
Subscribe and Connect to BrokenAirplane and stay up to date with the best resources for your classroom.


Hi,
ReplyDeleteFirst, thanks for your excellent website. I was wondering if I could get your advice on something. I'm trying to make a free website that will allow my students (and anyone else) to practice the math problem types that come up again and again on standardized tests (percents, averages, ratios, etc.) At a minimum, the program would generate typical problem types. Ideally, it would generate harder or easier problems based on what students have missed in the past. I worked through all but the last few chapters of "How To Think Like A Computer Scientist", which was very helpful--I was able to write code that could randomly generate many of the problem types. However, it seemed like there wasn't an easy way to use python to create a program that would run in a user-friendly way on a website. In other words, a student could work within 'IDLE' on my laptop but I don't know how to make an application that can be accessed easily on the web. Also, eventually I'd like to create problems with shapes and math symbols and I wasn't sure if I could do this with python. In any case, is there a way to do it with python and is that the best way to do it, or should I learn some other program? I've been told javascript would be better but I really have no idea myself.
Thanks for your help,
Mike
Hi Mike,
ReplyDeleteThanks for the compliment and the comment.
Python is considered a "scripting language" which means it often runs behind the scenes embedded in another language. I encourage people to learn Python as a first language because it is clear and easy to learn in my opinion.
From Python you can learn many other languages that are similar to Python that can fit your needs. The languages are similar enough that you can start coding right away.
If you want to create a web app using Python, you might consider Django (https://www.djangoproject.com/), otherwise Javascript would work as well. You might consider Code Academy (http://www.codecademy.com/) or W3 School (http://www.w3schools.com/js/).
Google has tutorials at the Google Code University (http://code.google.com/edu/) and Nic Parlante (Google/Stanford) has tutorials at Coding Bat (http://codingbat.com/) and is offering an online class this February http://www.cs101-class.org/
Hope that helps, let me know how your project goes and if anyone else has any suggestions be sure to leave the comment.
Hi Mike,
ReplyDeleteWhat you're proposing is a fairly large project to implement, even for an experienced web developer. Luckily, the internet to the rescue :)
http://www.khanacademy.org/
The Khan Academy has assembled a world-class team of developers to build exactly what you're envisioning. It's 100% javascript on the server and client and it randomly generates problem sets for a certain "class" of problems (percentages and averages all the way up to calc). It also has some adaptive learning properties baked in so students can progress at their own pace.
Best news is that it's all absolutely free and open. Not only could you choose to direct your students via their website, if you require, you can add your own additional exercises via their github repository! https://github.com/Khan/khan-exercises
They've designed a fairly simple HTML-based declarative language for defining problem types, which allows someone with a little bit of programming background to define new types of problems.
I haven't used it extensively myself (not an educator), but I've heard very good things about what they're doing. I would encourage you to check it out.
Hi Wes,
ReplyDeleteThanks, I have checked out Khan Academy--it's a really great site. There are certain types of problems that I want for my students that I haven't seen in its practice sections (not so much different concepts as different ways of presenting them). I also have my own ideas about which problems are related. I didn't know that you could make your own problems through this github thing, though--sounds very interesting. In any case, I kind of want to learn more about computer programming anyway, so it's as much a fun project as anything else. Thanks for the suggestions.