Solution: Grades 6 to 8
Learning
Objectives:
The middle school computer science curriculum is based on the students
reaching a milestone in their computer science education. This milestone
marks the time when students can easily transition from simplified and
graphical programming languages and software to high-level, widely used,
robust, real-world programming languages. Students will make web pages
using HTML and then move on to Python. Python's syntax is simple, and
its library is extensive enough that students will not find themselves
reinventing routine functions when they could be sovling mroe interesting
problems. Furthermore, Python can be used to teach multiple programming
paradigms (object oriented, imperative, and functional). It also has
a fully dynamic type system and automatic memory management (garbage
collection), making it more manageable than low-level languages like
C and C++.
The programming
curricula will continue to be supplemented with written algorithmic
exercises exploring more theoretical areas of computer science. Programs
like The Incredible Machine and Armadillo will continue to be used as
well, with the puzzles increasing in difficulty according to the quickly
accumulating student skill and experience with such puzzles. As in the
Sivilotti and Demirbas study, students also
can use acting and other means to explore more advanced algorithms.
Alignment with existing
criteria:
By middle school, the students in this program will have reached a milestone
in terms of their understanding of computer science and programming
that will enable them to take computer science independently of other
subjects. Until this point, the curriculum has been structured in such
a way that it integrates well with other subject areas, including math,
science, geography, and reading. Now, computer science will be a standalone
subject focusing more on its own subject area (in terms of programming
and algorithms), complemented by other subjects instead of being used
to complement them. Note that as an exception, the HTML portion of the
curriculum can, and should be, closely connected to a project from some
other class.
6th grade: Introduction
to HTMLStudents will create websites in conjunction with another
large class project. For example, many middle schools do a Holocaust
unit or a US Presidents unit, which would provide the perfect content
for an educational website. This part of the 6th grade curriculum will
last a maximum of 2 months. After that, the students will be introduced
to the Python programming language using a programming environment like
RUR-PLE, similar to the "Karel
the robot" environment often used to teach undergraduate CS.
7th grade: Students will start learning Python without an environment
like RUR-PLE. In the process, they will be introduced to basic data
structures, including lists, queues, and stacks. The students will be
introduced to conditional statements and loops. Standard input and output
will be covered along with numbers and strings. With these tools in
hand, many interesting and non-trivial programming projects and assignments
will be within the scope of the class.
8th grade: Classes at this level will cover more advanced Python
features. The data structures used will be extended to sets (fits well
into teaching the concept of a mathematical set) and dictionaries (hash-maps).
The students will learn more advanced functions on string data types
and how to construct their own data types. The goal will be to create
some algorithmically challenging, but not syntactically confusing programs.
|