Computer Science: Where Are We Now?


IMG_2470
The view from my seat
At the NWAIS Educators Conference two weeks ago, I facilitated a session to gather teachers and school leaders to discuss the current state of computer science instruction in our schools. The importance of learning coding, in particular, has received much national attention lately through initiatives such as Code.org, Hour of Code, and the Maker movement. Computer Science courses at major universities have exploded in popularity. Technology use has become ubiquitous in practically all aspects of life and work. K-12 schools are wondering how to modify their programs in response. Should all students learn to code?
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 computerScratch 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: