At the same time, I wonder whether parallels exist with the programming instruction movement of the 1980’s. More accessible computing languages such as BASIC and Pascal led to similar calls for programming literacy. Many K-12 schools offered their first programming courses, and a number of colleges made basic coding a graduation requirement. However, personal computers also became more available during this time, and technology literacy surpassed programming as the required competency. Programming receded as a K-12 course of study, even disappearing entirely from some schools.
At the NWAIS session, we discussed a series of questions that I think are fundamental to the question of computer science at K-12.I deliberately avoided typical questions such as what programming languages we teach or what computing platforms we use. Participants offered responses to these questions and shared a wide range of new ideas that they are trying at their schools.
What are the pros and cons of “coding?”
I asked this question to explore the distinction between
coding and computer science, which I think is fundamental to the
longevity and educational value of computer science instruction in K-12
schools. Coding refers to the writing of code, also known as
programming, a core concept in the field of software engineering.
However, software engineering is just one specialty in the discipline of
computer science, and it’s an applied field, not even in the core of
the discipline. A 2005 report by the CSTA Curriculum Improvement Task Force noted:
… the view that computer science equals
programming is especially strong in most of the curricula because
introductory courses focus (sometimes exclusively) on programming and
this focus limits the ability to reliably describe the intellectual
substance of the discipline. (Denning, 2004)
The core ideas in computer science are theoretical and
perhaps most accessible to K-12 education through the concept of
“computational thinking.” Logical and sequential reasoning, algorithms,
data structures, and systematic approaches to problem solving are some
of the principal concepts in computer science. Students can explore and
learn these ideas with programming and even without a computer! Scratch
is a popular learning environment in elementary grades in part because
it captures some fundamental CS concepts so well, although one might
argue that is miseducates for other concepts (e.g., variables).
Interestingly, the distinction between coding and computer
science did not resonate with most of the participants in our
conference session. While they expressed many positive reactions to the
nationwide emphasis on coding, they did not share our concern about the
potential conflation of coding with computer science. One school
did support the idea that computer science is broad field with many
applications. As an example, they offer two computer science electives,
Software Development and Design & Technology, that underscore such
distinctions.
Which department should house CS courses?
Similarly, the decision of where to house computer science
courses has many implications. At different schools, the math, science,
arts, and even languages departments house and provide credit for
computer science courses. However, theorists agree that computer science
is a distinct discipline, and universities typically have a college for computer science, sometimes joined with engineering.
Some high schools affiliate with this idea by creating a computer
science department even if it includes only one teacher. U Prep created a
“general studies” course category (not an actual staff department) to
house computer science, digital media, journalism, and global leadership
courses.
At the elementary level, the question is a bit simpler,
since the school day typically includes just two kinds of classes,
homeroom and specials. “Computer class” can house many applications of
technology, including computational thinking, what problems technology
is good (and bad) at solving, simple physical computing, computer
ethics, and basic software development. Or, computing can be integrated
within homeroom.
How may we reach all students with CS? How may we attract and retain girls and traditionally underrepresented minorities?
Historically, computer science courses have appealed to a
niche group of students, likely due to a self-reinforcing cycle of
cultural stereotypes, curriculum, and teaching styles. How may we
broaden the appeal of computer science so that all students at least
consider that they might find an elective course in computer science
interesting and fulfilling?
We are trying several approaches at U Prep. The school’s
first full-time computer science teacher earned her major in gender
studies, minor in theoretical computer science, and master’s degree in
teaching. She therefore possesses the variety of life experiences needed
to design our computer science program for content, teaching methods,
and social dynamics. We can deconstruct how different students
contextualize computer science within their cultural contexts and act in
a manner that is responsive to their needs.
Another key idea in our program is the introduction of
computational thinking to all students through the required courses in
our early grade levels. Our computer science teacher also partners with
our sixth and seventh grade science and math teachers to ensure that all
students have a direct, positive experience with computer science
before they have the opportunity to select subsequent elective courses.
How may we meet the needs of CS enthusiasts?
While it is critical to consider our “non-majors,” we also
want to meet the needs of our computer science enthusiasts and provide
welcoming spaces for geeks and non-geeks alike to explore and learn with
different technologies. We aim to provide students who express high
interest in computer science with a theoretical grounding through our CS
courses, as well as an array of student-led, faculty-supported clubs,
so that they may explore specialized fields such as mobile software
development, physical computing, web programming, and security.
How can you attract and retain great CS teachers?
It is very difficult to attract and retain full-time
computer science teachers at K-12. One may try to hire computer science
specialists, but they tend to have little teaching experience and more
lucrative job offers beyond education. Or one may hire candidates with
solid teaching experience but little subject matter expertise. Neither
case is ideal. At U Prep, we are trying a combination of both ideas,
following the model we learned about at Menlo School.
Our full-time computer science teacher plans to work with interested
math teachers to first integrate computer science instruction within
math courses and then recruit and train up interested math teachers to
teach introductory computer science courses. While this may blur the
lines between disciplines, it has a good chance of growing our pool of
qualified teachers of computer science.
Where may you get support and ideas?
During a time of rapid change in the discipline, and its
application to K-12 instruction, it is critical to have a solid network
of CS education professionals to share ideas and approaches, and provide
support for one’s work within schools. Here in Seattle, we are lucky to
have the Puget Sound Computer Science Teachers Association and the
University of Washington’s Computer Science and Engineering K-12 Outreach Program. Both are invaluable in our development of computer science curricula. You probably have a CSTA chapter in your area.
0 comments: