Overview

A new “class” has been proposed which will concentrate solely on programming.

As of 08/08/2007, it was decided to see if there's interest in the programming class detailed below.

A form will be given out at the end of the Scratch Programming Class to decide if there's interest. At minimum, there should be at least *interest* from 5 students before proceeding, although if there's 1 student that arrives promptly after Saturday classes, I'm willing to stay for the 90 minutes which is recommended.

The form can be located here: workshop_interest_form

Purpose

Teach aspects of general computer programming. Different projects can be worked on during the class, making it more of a workshop rather than a class.

Some ideas are:

  • Classes would meet Saturdays after the kids' class.
  • Classes need not be on a regular basis.
  • Classes can be announced by e-mail.

Concepts

The following outline is very rough, and we should do research on existing programming classes. Here's rough concepts, and a FIXME that we should find existing ideas by Googling for a HOW-TO on teaching programming. Important points to remember are:

How vs. Why

People new to programming do not immediately need to know why something works. For example, it's more important to teach how to run your program, rather than why.

  • Simple “To run your program, type ruby myprogram.rb
  • Complex “Ruby is an interpreted language, so you have to type ruby myprogram.rb which means blah blah blah. C++ is compiled, blah blah blah blah”

Files and Directories

This subject is relatively simple, yet so much time is wasted because people don't know how to find something on their computers unless it's the first thing that pops up when they run a program.

It does make a difference to teach people how files/directories work on a computer. I went for about 2 years in college without using directories to separate my projects. How I escaped basic filesystem knowledge is beyond me, but I was astounded when I learned about directories :-O

Using the Keyboard

I want to throw this out, and get feedback. So much time is wasted when people look down to hunt for a key and don't watch the screen, then must backtrack over their mistakes. Perhaps the basic finger positioning can be pointed out and students can be awarded for becoming better typists. Many students have remarked “Wow, you type fast!”. I don't know whether to be embarassed for being so geeky, or proud that I don't take a minute to type something that should take 5 seconds. The point is not to be fast while you type, but to be able concentrate on what you're doing without being distracted by the keyboard.

Projects

Even when learning how to program, it's good to start with a purpose or a goal.

  • Baby-steps/Break it down
  • Programming can be overwhelming. It's easy to be distracted by games, new technologies, etc.
  • The amount of things that can be accomplished using computers/technology is growing exponentially, and nobody can be the best at everything.

Basic Programming

  • Control Structures
  • Variables
  • Conditionals (If)
  • Drawing

Programming Tools

  • Compilers, Interpreted Languages
  • Operating Systems

Issues

Enrollment

We need to determine the best method for enrolling students in this class. After the kids' class of June 2007, I sent a couple of e-mails asking about students' interest in an advanced class. One student has responded. Perhaps this is due to CIN being unavailable to provide Internet access.

I've attended some linux meetings which were held at public libraries, and noticed at least six or seven kids using the Internet on the library's computers. We should inform students about the various public facilities which provide computers and Internet access, so they can periodically check their e-mail and keep the skills they've learned in the classes.

E-mail lists are one way of getting students to enroll in this class, but what other methods are out there for recruiting students?

Mission Statement

The advanced programming class should probably state beforehand the concepts that will be taught, as well as the fact that there's not a computer waiting for students who complete these classes.

Tools

See Also

 
advanced_programming_class.txt · Last modified: 2008/12/07 12:31 by nate
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki