You are on page 1of 4

Indy Coders: Computer Programming

Basics for 6th Grade and Up


Course Description
Many of the electronic technologies we use every day -- from our computers, to our phones,
to our cars, and even our home appliances -- run programs that determine how they operate.
This makes knowledge of computer programming fundamental to a deep understanding of
technology and how it works. While we won’t be able to learn in this course how to write
software that does really complex things, like modeling world weather patterns or untangling
the mysteries of DNA, and we won’t be coding up the next hit video game, we will explore
some of the common programming concepts that are at work in all software, including
weather and chemical modeling programs (and even video games). In the process, we will learn
something about how the computers that surround us work. We will flex our mental muscles a
bit and perhaps even have some fun.

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.

Note to Parents on Student Aptitude


Like other STEM disciplines, computer programming requires significant intellectual concentration and
dedication. We want to ensure a productive and engaging environment for students to absorb the
sometimes complex and challenging concepts and skills that are taught in this course. We welcome all
students 6th grade and above who are curious and demonstrate a strong interest in the class. Students
with interests in technology/computers, students who like intellectual games and puzzles, and students
who have an affinity for or interest in math will probably enjoy this class and 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.

Tentative Weekly Syllabus and Meeting Times/Location


The first class will be Wednesday, February 20. And we’ll meet every Wednesday (when school
is in session), for 12 weeks.

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?

Materials, Skills, & Resources


Students are required to purchase a prepared USB flash drive ($6, with any extra over our costs
going back to the PTO). The drive will be available for purchase on the first day of class and
students should bring money with them that day.

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.

● Portable Python -- A Python interpreter, development environment, and other


software, all in a single Windows program that installs on a USB drive. Students
will use Portable Python for most of their development work in the class. (http://
www.portablepython.com/)
● Python Tutor -- Another primary teaching resource for the class, which also links to a
number of Python language textbooks. (http://pythontutor.com/)
● Kahn Academy computer science videos -- Salman Kahn’s videos introducing
programming concepts using Python. (http://www.khanacademy.org/science/
computer-science)
● PowerTyping -- Free, simple typing lessons and games. (http://www.powertyping.com/)

Here are a couple of recent articles discussing computer science and STEM education. (More for
parents than kids, really.)

● “Why American Students are Trailing in Computer Science” (http:/


/www.huffingtonpost.com/kiki-prottsman/computer-science-
education_b_2386421.html)
● “Infographic: The Value of a STEM Education” (http://www.edutopia.org/stw-college-
career-stem-infographic)

About the Instructor


Ken Petri is the Director of The Ohio State University Web Accessibility Center, where he works
with campus IT and developers and with students and staff with disabilities to help ensure
the web is accessible to people of all abilities. Though he has been working in computers and
programming professionally for 10 years, he came to Computer Science relatively late. Prior
to computers, Ken studied and taught English and has broad interest in the creative arts. He
believes firmly that programming is a creative act, somewhere between science and art, and
hopes to convey to students some sense of programming as “craft,” puzzle, mystery, passion,
and game. Ken has a Master’s degree in English and Bachelor’s degrees in Computer Science
and Journalism. He and his wife Tammy have a daughter, Eva, who is in 5th grade at Indianola.

Reach Ken at kennpetri@gmail.com or 614-218-1499.

You might also like