Posts tagged ‘standards’

The biggest concerns for institutionalized CS education in the United States: Standards, limited models, and undergraduate enrollment caps

I was interviewed for the SIGCSE Bulletin by my long-time collaborator, Leo Porter (see https://sigcse.org/sigcse/files/bulletin/bulletin.51.1.pdf).  I talk about this blog, how I started teaching in 1980, about Media Computation, and about what inspires me.

One of the questions relates to the recent discussion about standards and frameworks (see post here).

LP: You have worked with education public policymakers in “Georgia Computes!” and Expanding Computing Education Pathways (ECEP) over the last dozen years. What’s your biggest worry as US states start institutionalizing CS education?

I have two. The first is that the efforts to standardize CS education are making the bar too low. When the K-12 CS Ed Framework was being developed, decisions were being made based on how current teachers might respond. “Teachers don’t like binary, so let’s not include that” is one argument I heard. I realize now that that’s exactly the wrong idea. Standards should drive progress and set goals. Defining standards in terms of what’s currently attainable is going to limit what we teach for years. Computing education research is all about making it possible to teach more, more easily and more effectively. I worry about setting standards based on our limited research base, not on what we hope to achieve.

The second is that most of our decisions are being made around the assumption of standalone CS classes and having teachers with a lot of CS education. I just don’t see that happening at scale in the US. Even in the states with lots of CS teachers in lots of schools, a small percentage of students take those classes. This limits who sees computer science. To make CS education accessible for all, we have to be able to explore alternative models, like integrating computing education in other subjects without CS-specific teachers. If we only count success in CS education as having standalone CS classes, we are incentivizing only one model. I worry about building our policy to disadvantage schools that want to explore integrated models, or have to integrate because of the cost of standalone CS classes.

Since this interview, I have a third concern, that may be more immediate than the other two.  This is what I wrote my CACM Blog on this month. The NYTimes just published an article “The Hard Part of Computer Science? Getting Into Class” about the growing CS undergraduate enrollment and about the efforts by departments to manage the load.  Departments used to talk about building capacity, but increasingly, the discussion is about capping or limiting enrollments.  The reason why this is concerning is because we’ve been down this road before — see Eric Roberts’ history of CS capacity challenges. Our efforts to limit enrollment send a message about computer science being only for elites and being unwelcoming to non-CS majors. This is exactly opposed to the message that Code.org, CS for All, and the AP CS Principles exam is trying to send. We’re creating a real tension between higher education and the efforts to grow CS, and it may (as Eric suggests) send enrollments into the next dive.

February 18, 2019 at 7:00 am 8 comments

Public Review Period for K-12 CS CSTA Standards Now Open

Note that this is not the framework — standards are the curriculum specifications which can be based on a framework.  These are designed to align the K-12 CS Framework.

Go to the page linked below to find the links which will lead you to the standards specific to various grade levels.

The public review period for the revised K-12 Computer Science (CS) Standards is now open! In revising the K-12 CS Standards toward a more final form, the taskforce took specific steps to closely align its work with that of the K-12 CS Framework.  This alignment will strengthen the value of both resources as tools to communicate the CS concepts and practices critical to student educational experiences today. The Computer Science Teachers Association invites teachers, curriculum supervisors, administrators, business leaders, the broad education and business communities to review the standards and offer feedback. The public review process is now open and ends Wednesday, February 15 at 11:59 PM PST.

Source: Public Review Period for K-12 CS Standards Now Open! – CSTA

February 3, 2017 at 7:00 am 1 comment

New ISTE Standards emphasize computational thinking with a better definition

ISTE has just released their ed-tech-influenced standards for students for 2016, and they include computational thinking — with a better definition than the more traditional ones.  It’s not about changing how students think.  It’s about giving students the tools to solve problems with technology.  I liked the frequent use of the term “algorithmic thinking” to emphasize the connections to the history of the ideas.  This definition doesn’t get to systems and processes (for example), but it’s more realistic than the broad transferable thinking skills claim.

CT-ISTE

Students develop and employ strategies for understanding and solving problems in ways that leverage the power of technological methods to develop and test solutions.

Source: For Students 2016

August 12, 2016 at 7:53 am 5 comments

My Review of K12 CS Ed Framework: A Prelude to a Dagstuhl Seminar on CS Ed Assessment

I’m sharing in this blog post my comments on the K12 CS Ed framework, to serve two purposes.

First, to remind you to do the review which you can start here: http://k12cs.org/review/. The review period ends Wed Feb 17 at 11:59pm PT. Please participate. If you disagree with what I write below, be sure to do the review yourself and counter what I say!

Second, I’m writing from Schloss Dagstuhl where I will be attending the first (to my knowledge) Dagstuhl Seminar on CS Education, on Assessing Learning in Introductory Computer Science (click here for more info). As the seminar leaders say in their introduction, “What is needed are shared objectives and assessment methods that enable more useful computing education research while providing guidance to those outside the area.” The K12 CS Framework is an attempt to define shared objectives, which are a necessary predecessor to effective measurement of learning.

Now, the seminar leaders also raise the research question, “What outcomes would we like to see in non-major courses that are not merely preparing students to write scripts needed on the job?” Providing students with the CS knowledge so that they can “merely prepare to write scripts needed on the job” is an important goal.  I’d agree with “in addition to” more than “merely.” Outcomes for non-majors will likely be radically different than for majors — which will be the focus of my poster presentation later this week.

Criteria for Concepts and Practices

Concepts and practices should…

  • have broad importance across the field of computer science

I agree. Breadth is good. It’s not important to cover the field of computer science. There is more in mathematics and science than can (or should) be covered in K-12 education.

  • be important and relevant to all students’ current and future lives

This is the most important criterion, in opposition to “be important to computer scientists.”

  • have potential for connections with other disciplines’ practices, such as Math and Science
  • be a useful tool for developing and illuminating more ideas in computer science.

The former is very important. The latter is much less so. CS is very new. I’m not sure that we have the right ideas to teach everyone. Given a choice, it’s much more important to teach everyone CS that helps them learn math and science and is useful to understand computing in their lives. I’d rather not (for example) teach hex and octal just because we use hex and octal in CS.

Core Concepts

Computing Devices and Systems

Overview: Computing systems include a broad range of devices that incorporate hardware and software to process information using a variety of inputs and outputs. The term is not limited to computers themselves, but rather includes many everyday objects that contain computational components that sense and act on the world. Complex systems are built from simple components that interact under the control of an operating system in an ever-changing world of technology.

This is quite nice. I have a couple of suggestions. Great research by people like John Pane at CMU has shown that novices think of programs as responding to events, being reactive (e.g., think apps, games, GUI interfaces). Thinking of computing as input-processing-output is an older model, difficult to understand, and less common today.

Are operating systems so important that they belong in the overview? Yes, students should know about operating systems, but they’re not key to CS. I’m thinking of Dan Ingalls’ famous 1981 quote in Byte magazine:

Operating System: An operating system is a collection of things that don’t fit into a language. There shouldn’t be one.

Computing devices require continual diagnosis, maintenance, and upgrades. Effectively maintaining and troubleshooting complex devices is not only a critical skill, but is also essential for sustainability and cost-saving efforts. Researching and applying solutions found in existing knowledge-base resources and recognizing patterns play an important role in troubleshooting.

I strongly disagree with that first statement. I run software that’s been unchanged for over 15 years. It’s a goal of software not to require continual diagnosis, maintenance, and upgrades. It’s worth discussing why software needs continual diagnosis, maintenance, and upgrades, but it is not a key concept and assumption of CS that it does.

A computing system is comprised of an integrated collection of computer components that work together in a hierarchy to process information. At its most basic layer, a computing system operates through binary calculations conducted by transistors; at more advanced layers, a computing system is capable of performing high-level tasks, including the ability to interact with other computing systems.

Transistors? Really? Everyone has to know about transistors?  Computing can be mapped to a wide variety of underlying mechanisms (see the Tinkertoy Tic-Tac-Toe computer).

An operating system allows computer components to work together. Without an operating system, computing devices have minimal, if any, utility. The complexity, capability, and compatibility of an operating system impacts the functionality of a computer system.

This is obviously a false statement. The Internet has no operating system, yet leads to many components working together to great utility.

This would be a great place to introduce systems thinking. What are ways to organize components? An operating system is one. Having a powerful set of guidelines that define interactions (like in the Internet) is another. Which works better?

Networks and Communication

Overview: With the very first computing devices, knowledge and information became a very powerful thing. Sharing of that early knowledge gained from computing was a challenge. Networking and communication systems were designed to facilitate the interconnecting of devices and sharing of information. The practices of networking and computing now encompass reliability, authentication, confidentiality, security, acceptable use, filtering, cryptography, and mitigating security concerns and system breeches. A computer or computing system can no longer exist in isolation with the age of the Internet, and with demand for immediate connectivity of large numbers of new devices, this is an area that will continue to see lots of growth and innovation. Without networks and communication, the rest of the computing world would be isolated and the speed of innovation would be much slower.

This is really quite nice — I don’t have any concerns.

Protocols are designed, refined, and selected based on the desired result of communication among devices. Protocols are developed or updated as additional devices need to be connected and the security concerns, regulation, and standardization of devices change.

I’d rather see this section be a statement about communication. Protocols are a set of agreements, made by human beings. They can be structured in a range of ways. This is a great place to connect to other systems that communicate.

Transmitted data may be passed between many devices before reaching its final destination. Computing devices choose paths to transmit data based on a number of factors including routing algorithms, distance, security, redundancy, speed, error handling, and amount of information supported.

The first sentence is absolutely an important idea for understanding the Internet. The rest goes way too deep to be useful for all high school students.

Sure, talk about how the Internet routes data. I think it’s even useful to talk about UDP, in the sense that data can get out of order and there has to be an effort to serialize it and guarantee its delivery. I love the idea of talking about routing so that we can explain by policy ideas like censorship or even “turning off the Internet” are both so hard to actually implement. It’s important to talk about the Internet as a collection of networks held together by guidelines making it complicated to change. It’s super important to point out that there is no master operating system of the Internet — which is a great place to tie into system ideas of decentralized thinking in science.

I’d like for every student to know about the Domain Name Server system. It’s a great example of mapping (how names are mapped to addresses). It’s an amazing example of a decentralized system. It’s useful to know that it’s a separate system, e.g., your “Internet” connection may be working, but you might not be able to get to Google if your DNS server is failing.

As the size and complexity of networks grow, so does the need for systems to prioritize, distribute, load balance, be redundant, perform Quality of Service, provide gateways, be resilient and adaptable; through the use of Access and Distribution Layer Switching.

I don’t see any part of this which is useful for all students to know. I can’t find any definition of what “Distribution Layer Switching” is.

Data and Information

Once collected, data can be stored using computers in a variety of ways. The choices we make about how that data is represented, organized, and physically recorded has impacts on cost, speed, and reliability, as well as accessibility and security.

You’re missing an important point here: that in the end, everything in the computer is represented in binary, usually bytes. Everything, and the computer does now know which byte is a character in a text, the red channel of a particular pixel, or part of an instruction to the virus or to the operating system. The notion that everything in the computer is a representation is a powerful idea. It’s useful because it allows us to understand how we could possibly get a virus from a picture or Word file.

Yes, there are cost, speed, and reliability implications, but those are much higher levels of abstraction and not useful to everyone. Not everyone makes cost estimates of data representations. Everyone gets viruses.

Data often needs to be transformed from its raw state to be easily understood. Data can be transformed through mathematical expressions, aggregation (sum/average of rows/columns), rearrangement, and visualization. The type of transformation can influence the people who view the data.

These are narrow notions of transformation. How about just talking about noise and error? People make mistakes with data. That’s a powerful idea that crosses disciplines.

Data about prior events can be used to predict future events based upon computational models of varying complexity. The accuracy of the prediction depends on the choice of factors and the amount and diversity of data used to produce the model.

This is counter to how science thinks about the world today. This is the billiard ball, Newtonian model of the universe. Let’s not tell students this.

Programs and Algorithms

 

Types allow programmers to think of problems in terms of data and variables. Programmers use abstraction to define new data types, combine data with operations, and hide implementation details. Collections of data or data structures provide simple interfaces coupled with specific efficiency properties. (introduced at earlier grade bands: data representation, primitive data types, and operations associated with types)

I’m worried about this assumption that predecessor concepts will be introduced in elementary school and then expanded upon in high school. We have very little CS in schools today. States will choose where to emphasize: Build up high school CS first? Elementary school CS first? For at least a decade yet, few students will have K-12 CS Ed.
What happens to high school students who don’t get the predecessor concepts? Just give up on them and wait for the elementary school students?

Control constructs determine when sequences of instructions are executed. Recursion is a control technique in which a procedure calls itself. This is appropriate when problems can be expressed in terms of smaller versions of themselves. Selecting from different control structures that can be used to solve the same problem introduces a tradeoff between runtime efficiency and code readability. (introduced at earlier grade bands: sequence, iteration, branching, events, nesting, and competing control structures)

Not everyone needs to know recursion.

I wish that we taught students a simple notional machine and described everything in terms of that. Here’s what I teach my CS students: A computer can only do six things:

  1. They can store data with a name(s).
  2. They can name parts of programs (instructions), and follow those instruction when commanded.
  3. They can take data apart.
  4. They can transform data into other forms.
  5. They can follow a set of instructions repeatedly.
  6. They can test data (is this true or not?), then take actions depending on what the result is.

Everything that I teach in Python, I relate to one or more of those six points. I make sure that I relate everything to a small, easily learnable notional machine.

I do not see why K-8 students should learn about nesting and competing data structures. This is an example of teaching things that are in CS, but are not useful in math and science.

There are several steps in the development process, including problem clarification, design, implementation, and testing. Teams creating computational artifacts must make important design decisions and iteratively refine them. Different programming environments have distinct resources and features. Selecting from different programming languages and libraries introduces tradeoffs between functionality, efficiency, design and implementation time, security, and personal experience or preference.

No, not everyone needs to know this level of a software development process.

Impacts of Computing

K-8 Progression

In early grades, students differentiate between responsible and irresponsible computing behaviors. Students learn that responsible behaviors can help individuals while irresponsible behaviors can hurt individuals. They examine legal and ethical considerations for obtaining and sharing information and apply those behaviors to protect original ideas. As students progress academically, they engage in legal and ethical behaviors to guard against intrusive applications and promote a safe and secure computing experience.

9-12 Statement

Laws impact many areas of computing in an effort to protect privacy, data, property, information, and identity. The legal oversight of computing involves tradeoffs; such laws can expedite or delay advancements and infringe upon or protect human rights. Ethical concerns also shape computing practices and professions. International variations in legal and ethical considerations should be examined.

This is a great point to larger systems issues of politics and history. Describe democracy as a similar set of tradeoffs and design considerations.

The seven practices of computer science are the behaviors and ways of thinking that computationally literate citizens use to fully participate in the modern data-rich and interconnected digital world. Students in grades K-12 should engage in all seven practices over each grade band with increasing sophistication over time.

1. Recognizing and Representing Computational Problems

2. Developing Abstractions

3. Creating Computational Artifacts

4. Testing and Iteratively Refining

5. Fostering an Inclusive Computing Culture

6. Communicating About Computing

7. Collaborating With Computing

I’d rather see 2 as Using Abstractions. Not everyone is going to Develop Abstractions. Developing Abstractions isn’t necessary for everyone. It’s a difficult and challenging thing for students to learn, but you can be effective at using computing without it.

Communicating About Computing

Computationally literate citizens use a variety of mechanisms to share information and insights about computer science. This includes communicating about their design processes, the elements and functionality of computational artifacts, and both the technical and societal implications of computational solutions. For example, they write clear comments on their code, document their work through technical writing, and create demonstrations that include visualizing multiple representations and account for the diversity of audiences members. They attend to precision by using language in contextually appropriate ways (for example, the term function has meanings in both mathematics and computer programming).

These are really programmer-centric ways of talking about computing. Can we open this up, or not list any at all? I like the idea of videos or even dance about computing, not just comments in code.

Overall

It’s a starting point. I hope that it gets revised a lot before going out to states for standards.

Mostly, I want the framework writers to emphasize what everyone needs to know and teaching computing as a generative set of ideas. We can use computing as a powerful lever for learning in a wide variety of areas. Don’t teach everyone things about computing that are not generative, that only teach about CS itself.

February 14, 2016 at 11:49 am 19 comments

Linking CSTA Standards to other National Standards

CSTA has just published a useful set of documents, mapping their CS standards to other standards, including the Common Core. This is important for helping computer science teachers argue for how computer science helps achieve the goals of a variety of learning objectives.

When designing state and district standards and school courses and curricula, it is often helpful to know how the CSTA K-12 Computer Science Standards correspond with other common national standards. To help with these efforts, we have created a series of downloadable documents that match the CSTA standards to the following standards documents:

  • Common Core State Standards
  • STEM Cluster Topics
  • Partnership for the 21st Century Essential Skills

via CSTA – CSTA K-12 Standards.

January 24, 2013 at 1:14 am Leave a comment

National Academies Report Defines ’21st-Century Skills’

I looked up this report, expecting to see something about computation as a ’21st-century skill.’ The report is not what I expected, and probably more valuable than what I was looking for.  Rather than focus on which content is most valuable (which leads us to issues like the current debate of whether we ought to teach algebra anymore), the panel emphasized “nonacademic skills,” e.g., the ability to manage your time so that you can graduate and intra-personal skills.  I also appreciated how careful the panel was about transfer, mentioning that we do know how to teach for transfer within a domain, but not between domains.

Stanford University education professor Linda Darling-Hammond, who was not part of the report committee, said developing common definitions of 21st-century skills is critical to current education policy discussions, such as those going on around the Common Core State Standards. She was pleased with the report’s recommendation to focus more research and resources on nonacademic skills. “Those are the things that determine whether you make it through college, as much as your GPA or your skill level when you start college,” she said. “We have tended to de-emphasize those skills in an era in which we are focusing almost exclusively on testing, and a narrow area of testing.”

The skill that may be the trickiest to teach and test may be the one that underlies and connects skills in all three areas: a student’s ability to transfer and apply existing knowledge to a problem in a new context. “Transfer is the sort of Holy Grail in this whole thing,” Mr. Pellegrino said. “We’d like to believe we can create Renaissance men who are experts in a wide array of disciplines and can blithely transfer skills from one to the other, but it just doesn’t happen that way.”

via Education Week: Panel of Scholars Define ’21st-Century Skills’.

August 13, 2012 at 7:11 am 1 comment

Disappointing Support for new NRC Framework for Science Standards from P21

I received the below statement via email, and I found it somewhat disappointing.  Wholehearted support for the NRC Science Standards even though they ignore computing?  From companies like Intel and Cisco?  I had not heard of P21 previously, and wonder what if there’s any connection between this group and Computing in the Core.  My guess is that there isn’t, but there probably should be.

P21’s statement on new framework for
voluntary Next Generation Science Standards
 
 
Washington, D.C. – June 5, 2012 – The Partnership for 21st Century Skills, P21, the leading national organization advocating for 21st century readiness for every student believes the National Research Council’s new framework for science standards offers an exciting new vision for 21st century teaching and learning.
 
The Partnership for 21st Century Skills commends the National Research Council for its Leadership States and partners developing the Next Generation Science Standards. P21 recognizes that the fields of science and engineering represent not just leading sources for economic advancement, but serve as dynamic platforms for pursuing new knowledge that can lead to a love of learning and support the development of the 4Cs – creativity, collaboration, communication and critical thinking. This conceptual framework can begin to reshape what students need to know and be able to do in order to cultivate 21st century leaders in science and citizenship. 
 
P21 particularly recognizes the conceptual shifts in the NGSS as well as the inclusion of the science and engineering practices in this new approach to standards development. 
 
The conceptual shifts emphasize real world interconnections in science, interdisciplinary integration across core subjects, and conceptual coherence from kindergarten through 12th grade, each of which aligns with P21’s approach to 21st century teaching and learning. More importantly, they emphasize not just the acquisition, but the application of content. P21 is pleased to see the NRC and the Leadership States embrace these shifts as each one is critical to preparing students for life and careers in the 21st century.
 
The eight science and engineering practices also directly align with elements of the P21 Framework. From asking questions and defining problems to using models, carrying out investigations, analyzing and interpreting data, designing solutions and using evidence, these practices form the essential elements of the critical thinking and problem solving components of the P21 Framework. In addition, P21 commends the NGSS for recognizing the importance of communicating information as a scientific practice.  
 
Collaboration and teamwork are essential for academic and career success; therefore, P21 is pleased to see that the requirement for collaboration and collaborative inquiry and investigation begin in kindergarten and extend throughout the standards.
 
P21 looks forward to working with the NRC, the P21 Leadership States and partners to ensure the next steps in this process of creating science standards continue to value not only content knowledge but also necessary skills for growth and success in the 21st century workplace.  
 
About P21: P21 is a national organization that advocates for 21st century readiness for every student. As the United States continues to compete in a global economy that demands innovation, P21 and its members provide tools and resources to help the U.S. education system keep up by fusing the 3Rs and 4Cs (critical thinking and problem solving, communication, collaboration and creativity and innovation). While leading districts and schools are already doing this, P21 advocates for local, state and federal policies that support this approach for every school.
 
P21 Members: Adobe Systems, Inc., American Association of School Librarians, Apple Inc., Cable in the Classroom, Cengage Learning, Cisco Systems, Inc., The College Board’s Advanced Placement Program (AP), Crayola, Dell, Inc., EdLeader21, EF Education, Education Networks of America, Ford Motor Company Fund, GlobalScholar, Goddard Systems Inc., Hewlett Packard, Intel Corporation, Knovation, KnowledgeWorks Foundation, LEGO Group, Mosaica Education, National Academy Foundation, National Education Association, Pearson, Project Management Institute Educational Foundation, The Walt Disney Company, Wireless Generation, Verizon Foundation, and VIF International Education.

June 13, 2012 at 7:35 am 3 comments

Next Generation Science Standards available for comment now through 1 June

Check out “Gas station without pumps” for more on the Next Generation Science Standards, available now for comment (but only through this week).  There is a bit of computational thinking and computing education in there, but buried (as the blog post points out).  I know that there is a developing effort to get more computation in there.

The first public draft of the Next Generation Science Standards is available from May 11 to June 1. We welcome and appreciate your feedback. [The Next Generation Science Standards]

Note that there are only 3 weeks given for the public review of this draft of the science standards, and that time is almost up.  I’ve not had time to read the standards yet, and I doubt that many others have either.  We have to hope that someone we respect has enough time on their hands to have done the commenting for us (but the people I respect are all busy—particularly the teachers who are going to have to implement the standards—so who is going to do the commenting?).

I’m also having some difficulty finding a document containing the standards themselves.  There are clear links to front matter, how to interpret the standards, a survey for collecting feedback, a search interface, and various documents about the standards, but I had a hard time finding a simple link to a single document containing all the standards.  It was hidden on their search page, rather than being an obvious link on the main page.

via Next Generation Science Standards « Gas station without pumps.

May 28, 2012 at 2:16 pm 2 comments

Systems Engineering Body of Knowledge has been updated

Not directly related to the 2013 Computing Curriculum revision, but another important and relevant standards effort:

The growing maturity of any discipline is marked by many milestones; e.g., university degree programs that teach it, professional societies that nurture it, and scholarly journals that report advances in it. One important milestone is establishing an authoritative guide to a discipline’s body of knowledge. This wiki site is that guide for systems engineering. Version 0.75 of the Guide to the Systems Engineering Body of Knowledge (SEBoK) is a work in progress, intended for early adopters. The aspiration of the sponsors and the several dozen authors who have worked tirelessly since September 2009 is to create an extremely useful, widely accessible, and easily updated authoritative guide to the systems engineering body of knowledge.

This wiki contains information on 120 topics in systems engineering, written by experts from around the world. The process being used is transparent with a third round of community review now underway. Yet, the SEBoK is far from complete. In fact, if the SEBoK effort is successful, it will never be ‘’complete’’ because it will continue to evolve and grow from broad use. A wiki implementation was chosen precisely because it facilitates rapid feedback from the community and easy updates to reflect that feedback and advances in the field.

via Guide to the Systems Engineering Body of Knowledge (SEBoK) v. 0.75 – .75 Sebokcase.

March 21, 2012 at 8:51 am Leave a comment


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

Join 9,005 other followers

Feeds

Recent Posts

Blog Stats

  • 1,879,910 hits
October 2021
M T W T F S S
 123
45678910
11121314151617
18192021222324
25262728293031

CS Teaching Tips