Posts tagged ‘K12’

Do we know how to teach secure programming to K-12 students and end-user programmers?

I wrote my CACM Blog post this month on the terrific discussion that Shriram started in my recent post inspired by Annette Vee’s book (see original post here), “The ethical responsibilities of the student or end-user programmer.” I asked several others, besides the participants in the comment thread, about what responsibility they thought students and end-user programmers bore for their code.

One more issue to consider, which is more computing education-specific than the general issue in the CACM Blog. If we decided that K-12 students and end-user programmers need to know how to write secure programs, could we? Do we know how? We could tell students, “You’re responsible,” but that alone doesn’t do any good.

Simply teaching about security is unlikely to do much good. I wrote a blog post back in 2013 about the failings of financial literacy education (see post here) which is still useful to me when thinking about computing education. We can teach people not to make mistakes, or we can try to make it impossible to make mistakes. The latter tends to be more effective and cheaper than the former.

What would it take to get students to use best practices for writing secure programs and to test their programs for security vulnerabilities? In other words, how could you change the practice of K-12 student programmers and end-user programmers? This is a much harder problem than setting a learning objective like “Students should be able to sum all the elements in an array.” Security is a meta-learning objective. It’s about changing practice in all aspects of other learning objectives.

What it would take to get CS teachers to teach to improve security practices? Consider for example an idea generally accepted to be good practice: We could teach students to write and use unit tests. Will they when not required to? Will they write good unit tests and understand why they’re good? In most introductory courses for CS majors, students don’t write unit tests. That’s not because it’s not a good idea. It’s because we can’t convince all the CS teachers that it’s a good idea, so they don’t require it. How much harder will it be to teach K-12 CS teachers (or even science or mathematics teachers who might be integrating CS) to use unit tests — or to teach secure programming practices?

I have often wondered: Why don’t introductory students use debuggers, or use visualization tools effectively (see Juha Sorva’s excellent dissertation for a description of how student use visualizers)? My hypothesis is that debuggers and visualizers presume that the user has an adequate mental model of the notional machine. The debugging options Step In or Step Over only make sense if you have some understanding of what a function or method call does. If you don’t, then those options are completely foreign to you. You don’t use something that you don’t understand, at least, not when your goal is to develop your understanding.

Secure programming is similar. You can only write secure programs when you can envision alternative worlds where users type the wrong input, or are explicitly trying to break your program, or worse, are trying to do harm to your users (what security people sometimes call adversarial thinking). Most K-12 and end-user programmers are just trying to get their programs work in a perfect world. They simply don’t have a model of the world where any of those other things can happen. Writing secure programs is a meta-objective, and I don’t think we know how to achieve it for programmers other than professional software developers.

January 14, 2019 at 7:00 am 16 comments

What universities can do to prepare more Computer Science teachers? Evidence from UTeach

UTeach has published a nice blog post that explains (with graphs!) the ideas that I alluded to in my Blog@CACM post from last month.  While currently CS teacher production is abysmal, UTeach prepared CS teachers tend to stay in their classrooms for more years than I might have expected.  More, there is evidence that suggests that there is significant slice of the CS undergraduate population that would consider becoming teachers if the conditions were right.  There is hope to imagine that we can making produce more CS teachers, if we work from the University side of the equation.  Working from the in-service side is too expensive and not sustainable.

Michael Marder, Professor of Physics and Executive Director of UTeach, and Kim Hughes, Director of the UTeach Institute, write…

The number of computer science and computer science education teachers prepared per year is smaller than for any other STEM subject — even engineering and physics — and while estimates vary, it is safe to say it is on the order of 100 to 200 per year, compared to the thousands of biology or general science teachers prepared. 

The U.S. has around 24,000 public and 10,000 private high schools. Only 10% to 25% have been offering computer science, so to provide all of them with at least one teacher at the current rate simply looks impossible.

Source: What universities can do to prepare more Computer Science teachers

January 5, 2018 at 7:00 am Leave a comment

Advancing Computational Thinking Across K-12 Education, across Many Disciplines – Digital Promise #CSEdWeek

New report on coding, computer science, and computational thinking has just come out from Digital Promise.  I have been critical of some definitions of computational thinking (as I described in my book). I like the way Digital Promise defined them, and particularly how they connect CT to learning in other disciplines.

Advocating for computational thinking throughout the K-12 curriculum does not replace or compete with efforts to expand computer science education: on the contrary, it complements them. Where computer science is not yet offered, integrating computational thinking into existing disciplines can empower educators and students to better understand and participate in a computational world. And schools already teaching coding and computer science will benefit from weaving computational thinking across disciplines in order to enrich and amplify lessons that are beyond the reaches of computer science classes.

We offer a number of recommendations to move this work forward. Among them are advocacy campaigns, curriculum and resource development, professional development for teachers and administrators, and continued research.

Source: Advancing Computational Thinking Across K-12 Education – Digital Promise

December 8, 2017 at 7:00 am Leave a comment

Keeping the Machinery in Computing Education: Back to the Future in the Definition of CS

I’ve been excited to see this paper finally come out in CACM. Richard Connor, Quintin Cutts, and Judy Robertson are leaders in the Scotland CAS effort. Their new curriculum re-emphasizes the “computer” in computer science and computational thinking. I have bold-faced my favorite sentence in the quote below. I like how this emphasis reflects the original definition of computer science: “Computer science is the study of computers and all the phenomena surrounding them.”

We do not think there can be “computer science” without a computer. Some efforts at deep thinking about computing education seem to sidestep the fact that there is technology at the core of this subject, and an important technology at that. Computer science practitioners are concerned with making and using these powerful, general-purpose engines. To achieve this, computational thinking is essential, however, so is a deep understanding of machines and languages, and how these are used to create artifacts. In our opinion, efforts to make computer science entirely about “computational thinking” in the absence of “computers” are mistaken.

As academics, we were invited to help develop a new curriculum for computer science in Scottish schools covering ages 3–15. We proposed a single coherent discipline of computer science running from this early start through to tertiary education and beyond, similar to disciplines such as mathematics. Pupils take time to develop deep principles in those disciplines, and with appropriate support the majority of pupils make good progress. From our background in CS education research, we saw an opportunity for all children to learn valuable foundations in computing as well, no matter how far they progressed ultimately.

Source: Keeping the Machinery in Computing Education | November 2017 | Communications of the ACM

November 20, 2017 at 7:00 am 3 comments

More Teachers, Fewer 3D Printers: How to Improve K–12 Computer Science Education 

A nice summary of where we’re at with CS Ed in the United States, where additional funding and effort should go, and where it shouldn’t.

Addressing the teacher shortage should be the number one use for the new funds allocated by the Trump administration, says Mark Stehlik, a computer science professor at Carnegie Mellon University. A lack of qualified teachers is the biggest barrier to CS education in the U.S., he says, and he thinks the problem is going to get worse. An earlier generation of CS educators has started to retire, and he says younger CS graduates “aren’t going into education because they can make twice or more working in the software industry.”

One solution could be to expand the reach of each CS educator through online classes. But “online curricula aren’t going to save the day, especially for elementary and high school,” Stehlik says. “A motivated teacher who can inspire students and provide tailored feedback to them is the coin of the realm here.”

Where the money should not be spent? On hardware and equipment. Laptops, robots, and 3D printers are important, says Code.org’s Yongpradit, “but they don’t make a CS class. A trained teacher makes a CS class. So money should be focused on training teachers and offering robust curriculum.”

Source: More Teachers, Fewer 3D Printers: How to Improve K–12 Computer Science Education – IEEE Spectrum

October 18, 2017 at 7:00 am 8 comments

The Role of Emotion in Computing Education, and Computing Education in Primary School: ICER 2017 Recap

I wrote my Blog@CACM post in August about the two ICER 2017 paper awards:

  • Danielsiek et al’s development of a new test of student self-efficacy in algorithms classes;
  • Rich et al.’s trajectories of K-5 CS learning, which constitute an important new set of theories about how young students learn computing.

Rich et al.’s paper is particularly significant to me because it has me re-thinking my beliefs about elementary school computer science. I have expressed significant doubt about teaching computer science in early primary grades — it’s expensive, there are even more teachers to prepare than in secondary schools, and it’s not clear that it does any longterm good. If a third grader learns something about Scratch, will they have learned something that they can use later in high school? Katie Rich presented not just trajectories but Big Ideas. Like Big Ideas for sequential programming include precision and ordering. It’s certainly plausible that a third grader who learns that precision and ordering in programs matters, might still remember that years later. I can believe that Big Ideas might transfer (at least, within computing) over years.

I was struck by a recurring theme of emotion in the papers at ICER 2017. We have certainly had years where cognition has been a critical discussion, or objects, or programming languages, or student’s process. This year, I noticed that many of these papers were thinking about beliefs and feelings.

I find this set of papers interesting for highlight an important research question: What’s the most significant issue influencing student success or withdrawal from computer science? Is it the programming language they use (blocks vs text, anyone?), the kind of error messages they see, the context in which the instruction is situated, or whether they use pair programming? Or is the most significant issue what the students believe about what they’re doing? And maybe all of those other issues (from blocks to pairs) are really just inputs to the function of student belief?

(Be sure to check out Amy Ko’s summary of ICER 2017.)

September 1, 2017 at 7:00 am 4 comments

US States Move toward CS Ed: MA, CA, and the challenge of local control

I review for the WIPSCE conference (an international conference on K-12 computing), and found a phrase in one of the papers I was reviewing about computing education now being mandatory in the United States.  Well, not really — kinda, sorta, in someplaces.  It may be hard for educators outside the US to understand the decentralized nature of computing education in the US.  The individual 50 states control primary and secondary school education by law, and some of those states (notably, California, Massachusetts, and Nebraska) are “local-control” — the state itself decides to shift almost all of the education decision-making to the individual school districts (easily a hundred in a small state, multiple hundreds in large ones).

Recently the National Association of State Boards of Education has come out with a policy update about CS education in the states.  Useful — except for the local control states, where the state boards of education don’t really have that much power.

While educators and parents recognize computer science as a key skill for career readiness, only five states have adopted learning standards in this area. Tides are changing, however, as the Every Student Succeeds Act (ESSA) recognizes with its call on states to provide a “well-rounded education” for students, to include computer science standards. This NASBE Policy Update outlines what states need to consider as they develop computer science standards and improve instruction, highlighting several promising state efforts already under way.

Source: NASBE – States Move toward Computer Science Standards

How do local control states implement reforms like computing education? In California, they’re trying to pass legislation to create an advisory board about integrating CS into education. It’s all about advice and recommendation — the state can’t make the districts do much.

California legislators are reviewing a bill that would create an advisory board to integrate computer science into education.The Assembly legislation would create a 23-person panel overseen by the state Superintendent that would deliver recommendations by September 2017 on how to improve computer science education, and establish curriculum standards for grades K-12.The panel would comprise teachers, administrators and professors across K-12 and higher education, as well as representatives from government, parent associations and student advocacy organizations. The bill is backed by Microsoft and Code.org.

Source: California legislators push computer science education bill

Massachusetts has just come out with their new state standards. I haven’t gone through them all, but from what I’ve seen (and knowing people who helped build it), I believe that they’re really high-quality. But they’re just voluntary. The districts have to be coaxed into adopting them.

Massachusetts public schools may start using new digital literacy and computer science standards as soon as this fall. The state board of elementary and secondary education unanimously approved the standards, which are voluntary, at its monthly meeting Tuesday.”Today’s vote recognizes the importance of digital literacy and computer science to modern life, work and learning,” board chairman Paul Sagan said in a statement. “These standards will help our students think about problem solving in new ways and introduce them to valuable skills they will need in today’s economy.”

Source: Mass. Has New K-12 Standards For Digital Literacy, Computer Science | WBUR News

August 1, 2016 at 7:57 am Leave a comment

Older Posts


Enter your email address to follow this blog and receive notifications of new posts by email.

Join 7,062 other followers

Feeds

Recent Posts

Blog Stats

  • 1,690,963 hits
October 2019
M T W T F S S
« Sep    
 123456
78910111213
14151617181920
21222324252627
28293031  

CS Teaching Tips