Computer Science, before branching off to the AP exam, began with all students learning BASIC which, in many cases, was followed by LOGO. Pascal was the first language of the AP exam and was supplanted by C++ and then JAVA, the current language of the exam.
Today, new tools and environments have been developed to interest younger students. Several of these are listed in the Programs section below.
If you teach intro. to programming, this "Last Lecture" is great to watch. There are some wonderful moments, great nuggets/tips from an incredibly talented teacher, professor, and researcher who has been pushing limits on how to get more students interested in computer science, more diversity, in the ranks. Java Codings for Learning
Retrieved from ISED-L
- Alice is the best thing since sliced bread! I am in my second year of using it with high school students. There are many books and I have copies of all, but the best one is probably Starting out with Alice, but it is too expensive for general issue. I have standardized on Alice in Action by Joel Adams. I use the book and all the other available help and tutorials that are found on the Alice web site. Each student works at their own level, more or less individually, as I find this works best for animation. I also encourage co-operative learning between groups of students for the sharing of ideas that they come up with. Using it for game design gets brilliant results. I recommend What Video Games Have To Teach us About Learning And Literacy by James Paul Gee. Also Don't Bother Me Mum I'm Learning by Marc Prensky as reading for this type of teaching methodology. You might want to consider Exploring Wonderland: Java with Alice and Media Computation by Wanda Dann, Stephen Cooper, and I. We wrote this for a CS1 and with the AP A in mind. The book leverages the strengths of Alice to introduce computing concepts and reinforces the concepts using Media Computation in Java. It stays in the moviemaking context which kids find highly motivating. It also switches back and forth between Alice and Java which helps the kids transfer the knowledge while they still remember it. Teachers who have tried the book with AP classes have said that the kids really enjoy it. The book is quite easy to read. (due to be published in summer, 2009)
- Game Maker is a free object oriented programming language which some students prefer.
- GreenFoot was recommended by Fred and is a dialect of Java. Some use it with high school students.
- Invent Your Own Computer Games with Python is a free eBook that teaches game programming in the Python scripting language. Python has a gentle learning curve, while still being a sophisticated enough language to be used in the professional software industry. This book provides complete source code for games, teaching the programming concepts from these examples.
- Mindstorms Robotics is a software accompaniment to the popular Lego robotics kits.
- Jeroo - another introductory programming environment where students program Jeroo to navigate around an island. The idea of the software is to quickly move students from programming Jeroo to more complicated programming projects.
- Karel Robot - an excellent tool for teaching fundamental of programming. Students learn to program Karel, a software robot that must be made to navigate and accomplish taks in the "world." There are versions supporting Pascal, Java, C and more. Roland Untch's site has good resources on Karel. Richard Pattis wrote the book on Karel, Karel The Robot. Very helpful for teachers and possibly high-school students. Platform independent Java version of Karel called, JKarelRobot availble here from Oberlin along with some help pages.
- PopFly is a Microsoft product that enables web based mashups.
- Processing Processing is an open-source, Java-based programming language that came out of a project at the MIT Media Lab. It's a great, straight-forward programming environment that appeals both to the students who are interested in writing code and those who are drawn to the visual nature and possibilities of the tool. -Packer Collegiate Institute. It is created to teach fundamentals of computer programming within a visual context and to serve as a software sketchbook and professional production tool. Processing is developed by artists and designers as an alternative to proprietary software tools in the same domain.
- Python has been mentioned as a good environment for teaching programming.
- RoboMind is a simple educational programming environment with an own scripting language that allows beginners to learn the basics of computer science by programming a simulated robot. RoboMind is available in twelve languages as stand-alone application for Windows, Linux and Mac OSX. It is free and open source. The difficulty level of the exercises can be tailored to the audience. That is why RoboMind is found at primary schools, high schools and universities.
- Runtime Revolution -- like the old hypercard
- Scratch is a very popular drag-and-drop programming environment for elementary school children. It is also used at colleges, including Harvard University. A list of the best resources for teaching Scratch is available at www.kidslike.info
- Squeak - multimedia authoring tool built on Smalltalk that allows very young students to being programming. Alan Kay and his team developed the software. Read about Squeak and Alan Kay for more information. The book Powerful Ideas for the Classroom is a good way to get started. See the Squeak page for more information
- Triplets is a project for middle schools in Memphis, TN that includes summmer professional development for teachers.
Java Programming ResourcesEdit
- Wikipedia Java Programming Entry
- MIT Open Courseware
- Another MIT Open Courseware course
- Berkeley Webcasts/Podcasts - Java Course
AP Java Course TextbooksEdit
Retrieved from ISED-L list-serv 4/16/08, CC3.0 a, s-a, nc license
- I've been using the Litvin's Java Methods A & AB for the past two years. It is OK but not great. I'm wondering if any of you AP Comp. Sci. teachers are using a text that you really love?
- I taught using Cay Horstman's "Java Concepts" last year. The kids loved it and it helped me teach the class more effectively. It seemed to fit with the AP's recommended curriculum very well, I only taught a few chapters out of order. There is a new version coming out in fall '08.
- Blue Pelican Java Text and Materials. The electronic text is still available on-line.
- Wu, An intro to oo programming with Java, McGraw Hill. Lots of diagrams, each chapter has a full development-based case study, very clear writing. There are "normal" and "comprehensive" editions. http://highered.mcgraw-hill.com/sites/0072946520/information_center_view0/
- Cay Horstmann, Java Concepts (Wiley), (college level,)
- Bergin, et al, Karel J Robot (Cafepress.com)
- Beth Brown, Programming in Java text by Lawrenceville. Has exercises, examples, vocabulary call outs, etc.
How to Design Programs - it can be found online at http://htdp.org/
You can see a review of the best programming languages for teaching children programming at www.kids like.info http://www.kidslike.info/computer_programming_educational_programming_languages
Retrieved from ISED-L list, 2/9/08:
- We're teaching programming using Logo (Microworlds) in the 5th grade, Scratch in the 6th, and Runtime Revolution in the 8th. (Runtime Revolution is a successor to the old HyperCard (a terrific multi-media environment with a powerful yet easy-to-understand scripting language behind it. Infinitely better than HyperStudio.) Our department feels that exposure to different languages helps students learn to transfer skills from one environment to another -- a valuable tool for anybody to have in their toolbox. Any of the java environments (Karel, Alice, Greenfoot) we leave until high school; java's syntax is too complex to have middle schoolers spend time on.