Indy Coders: Computer Programming Basics For 6th Grade and Up
Indy Coders: Computer Programming Basics For 6th Grade and Up
This course will introduce students to computer programming concepts using a powerful,
widely used, and relatively easy to learn programming language called Python. (Python is not
a “toy” or “teaching” language. It is an industry standard language used by major companies
and research organizations, including Google, Yahoo!, Industrial Light & Magic, NASA, and many
many others.) In the first class session, we will discuss what a computer program does and
what programming languages are, and students will get a first taste of Python. In subsequent
weeks, we will explore central concepts in programming through demonstrations and fun and
challenging programming exercises that students will code and run themselves.
Students will be introduced to Python through free software. They will be able to take home
the software and programs they work on in class. The class will meet once a week for an
hour, after regular classes have ended. Students will be encouraged to experiment more with
programming on their own through optional homework assignments.
Though the course cannot teach students how to write production-ready software, students:
● will learn computer program syntax, logic, flow
● will learn the basic building blocks of computer programs, such as variables, data types,
operators, conditionals, arrays and hashes (lists and dictionaries, in Python-ese), and
functions, with a quick glance at classes and object-oriented programming
● will get some experience with computer algorithms for sorting items and algorithms
that illustrate various mathematical concepts
● will be able to recognize logic and syntax errors in a program and correct them (how to
“debug” a program, in other words)
● will learn how to write programs that draw shapes while illustrating various
programming concepts
● will learn how to take a user’s input while a program is running and use that input to
change the program’s output
● will learn how to read in and process information from a text file
● will learn how to build up small pieces of code into larger and more complex programs
(in other words, how to write functions (and classes, if we have time))
Depending upon interest, in later semesters, we may build on the experience and knowledge
we gain in this course and move on to explore areas such as web or game programming.
Though the class is aimed at students in 6th grade and above who have demonstrated such aptitudes, if
your 5th-grader expresses interest and you think he or she would be able to fully participate, he or she
will be considered for the class.
If you have questions about the course or whether or not your child is well-suited for it, please email or
call the instructor, Ken Petri. His contact information is below.
The class is held in the Indianola computer lab. It starts at 3:45 PM (hard start at 4) and ends at
5 PM.
Topics and coverage will evolve over the course of the class. We will go as fast as we can, while
trying to make sure students understand concepts well enough to build off of them.
Below is a tentative, initial outline of what we will be covering.
● Week 1: What is a programming language and what is a program? What are errors and
debugging? Our tools: getting Python up and running.
● Weeks 2: Variables, types, operators, and expressions. Collecting user input.
● Weeks 3: Simple lists, loops, importing modules, and the Turtle.
● Weeks 4 and 5: Making decisions: Logical operators and conditional execution.
● Weeks 6 and 7: Functions, flow of execution, passing parameters, returning values, and
basic recursion.
● Weeks 8 and 9: String manipulation, tuples, more list operations, and dictionaries.
● Weeks 10 through 12: Reading from and writing to a file. Some sorting algorithms. What
are “objects” and what’s next?
Most of the programs we will write will be developed using the software installed on the drive,
and we will be using the drives to store the files containing the programs we write.
In addition to the USB drive, we will be using a number of resources on the web, including
a couple of online programming textbooks, as references. Some are available from the links
below.
Finally, programming involves typing. Some facility with the keyboard will be helpful. There are
a vast number of online typing tutorials and exercises. One is referenced below.
Here are a couple of recent articles discussing computer science and STEM education. (More for
parents than kids, really.)