Geeks With Blogs
Brian Scarbeau Insights from a seasoned Computer Science Trainer
I often receive e-mails from computer science teachers asking what I do in my Programming class at my school so I thought I'd share my response to a teacher in New Hampshire who recently e-mailed me. You ask an excellent question and I’ll try to answer as best that I can with the experience that I have on teaching programming to students. (21 years, 5 college and 16 hs). The first thing you need to know as a teacher is the math ability that your students have coming into your class. Also, what standards do you have in place for that programming course that you’re teaching. What goals do you have in mind for your students? For example, in my Honors Programming class, this is my feeder course to my AP Computer Science class and I may this class as fun as I can for my students. Some of these students will want to continue their studies of programming in more advanced classes and some will quit after this class. With my experience working with students it amazes me how even the smart students have a difficult time at thinking logically to solve a problem. However, I do have my students work in groups on some problems and students often time learn the requirements to write a program from scratch and understand the concepts you wanted to teach for your lesson but there are those that don’t. I am of the opinion that some kids get it and some don’t. Programming is much different than an applications class as you know but students who are superior at instant messaging, downloading music from iTunes and updating their MySpace web page often time have a hard time at programming. Again, this goes back to their math skills as far as do they have the “brain power” to accomplish the task at hand. The other concern is the motivation to not quit and the self discipline it takes to program. Here is what I do in my Honors Programming Class: The first thing that I teach my students are the concepts of programming. My class has all the computers in a horseshoe shape with armchair desks in rows in the middle with a smartboard in front of the room. My computer can project to the smartboard and is now wireless where I can have students come to draw on the smartboard or work out code on the laptop that I give them and all can see what’s going on. This works great for me! I teach them in a semester course working with variables, standard input, processing and output and them we work with conditional statements. Students need to see several examples for it to click for them. After this we review all loops and I give them an introduction to one dimensional arrays and learning how to write methods/functions OOP style. I use Visual Basic.NET with my students and they can download it for free from the Microsoft site: http://msdn.microsoft.com/vstudio/express/vb/ Microsoft has done an excellent job supporting high school computer science programming with this free software along with the video instructions and a free book as well. I use the Code Rules curriculum from https://www.mainfunction.com/DotNetInAction/Curriculum/ You need to login to the site to get this and I have the lessons on my site for you to view: Scroll down to Code Rules http://sws.lhps.org/CSCourses/HonorsProgramming/tabid/74/Default.aspx The students really like working on this curriculum. I do teach my students JAVA as well. I use the BlueJ IDE from bluej.org and the free JAVA download from SUN. I use the textbook JAVA Software Solutions from Lewis, Loftus and Cocking. This gives students an opportunity to carry over the concepts that they have learned into a different language and they soon realize that it’s pretty easy to do and all they need to concentrate on is different syntax of that language. Students like applets and they can have fun with programming them and being able to see the application on a web page. My students use Robocode http://www.ug.cs.usyd.edu.au/~csled/biwf/robocode/guide.html which allows them to program robots and have team competition as well. Again, I try to make the programming interesting and fun for them. This year I used KPL which was written in the Microsoft .NET environment. http://www.kidsprogramminglanguage.com/ It comes with a variety of different games and I had my students modify an existing game or create a new game from scratch. This was the final project I had them do. Your confidence will come as you get more involved in your teaching from year to year. Your enthusiasm about programming will carry over with your students. There are plenty of advanced things you can do with your more advanced students. We always get students like this in class and we should never get them bored so maybe the bored students that you have in class are just bored because they can program the easy stuff and they want more challenging assignments. Microsoft has a programming competition called Project Hoshimi and you can get more information from the mainfunction.com site. The enjoyment that I get as a programming teacher is to see the excitement that my students get when the light bulb clicks and they understand a concept or when they create a game that their student friends like. I have had opportunities in my career to train other teachers on languages and I’ve talked at many national conferences as well and I still learn something from another teacher. Keep asking questions and your fortunate to live in an area where there are two great people that can help you. Alfred Thompson is a former Computer Science Teacher and now works in the Academic area for Microsoft. Alfred.Thompson@microsoft.com He can come visit you and talk to you about teaching programming. Tom Indelicato is a formare Software Developer who teaches at Bishop Guertin High School can help as well . Indelicato@bghs.org Tom is on the Faculty Advisory Board with me and Alfred hired him when he worked at the same high school. I hope I answered your questions and continue to ask more. Good luck. Our course listings: http://www.lhps.org/academics/course-curr/currguide-05-06.pdf Posted on Monday, June 5, 2006 7:19 AM Teaching AP CS | Back to top

Copyright © Brian Scarbeau | Powered by: GeeksWithBlogs.net