Archive for February, 2016
SIGCSE 2016 Preview: Parsons Problems and Subgoal Labeling, and Improving Female Pass Rates on the AP CS exam
Our research group has two papers at this year’s SIGCSE Technical Symposium.
Subgoals help students solve Parsons Problems by Briana Morrison, Lauren Margulieux, Barbara Ericson, and Mark Guzdial. (Thursday 10:45-12, MCCC: L5-L6)
This is a continuation of our subgoal labeling work, which includes Lauren’s original work showing how subgoal labels improved learning, retention and transfer in learning App Inventor (see summary here), the 2015 ICER Chairs Paper Award-winning paper from Briana and Lauren showing that subgoals work for text languages (see this post for summary), and Briana’s recent dissertation proposal where she explores the cognitive load implications for learning programming (see this post for summary). This latest paper shows that subgoal labels improve success at Parson’s Problems, too. One of the fascinating results in this paper is that Parson’s Problems are more sensitive as a learning assessment than asking students to write programs.
Sisters Rise Up 4 CS: Helping Female Students Pass the Advanced Placement Computer Science A Exam by Barbara Ericson, Miranda Parker, and Shelly Engelman. (Friday 10:45-12, MCCC: L2-L3)
Barb has been developing Project Rise Up 4 CS to support African-American students in succeeding at the AP CS exam (see post here from RESPECT and this post here from last year’s SIGCSE). Sisters Rise Up 4 CS is a similar project targeting female students. These are populations that have lower pass rates than white or Asian males. These are examples of supporting equality and not equity. This paper introduces Sisters Rise Up 4 CS and contrasts it with Project Rise Up 4 CS. Barb has resources to support people who want to try these interventions, including a how-to ebook at http://ice-web.cc.gatech.edu/ce21/SRU4CS/index.html and an ebook for students to support preparation for the AP CS A.
Defining Computing Education Research at University of South Florida
I just recently visited the computing education research web pages at the University of South Florida. It’s an interesting contrast with the post about how those of us at Georgia Tech do computing education research. The definition of the field is pretty much the same, but with different emphases and priorities.
Computing Education Research belongs to this last category. Discipline-based educational research has been pioneered in disciplines such as Math and Physics for decades. It has been embraced by Faculty from the various computing disciplines for a little less longer but with great enthusiasm. The objective here is to conduct formal educational research while leveraging expertise in the domain being taught. Often, CER faculty will find themselves partnering with education researchers as they validate how educational theories or frameworks fit or may be adapted to address the specific learning barriers encountered by their students. Again, a CER Faculty may or may not be directly teaching the courses related to their research focus; e.g. a faculty interested in conducting research on the pedagogy of programming might partner with a colleague who will help him experiment with various interventions and measure their impact on student learning. The key here is to conduct educational research with expertise on the nature of the discipline being taught.
Source: CEReAL
Review the Draft of the 2016 CSTA K-12 CS Standards
It’s a little weird that the CSTA Standards are out for review now, when the Framework is just finishing the first round of public comment (see my review here). The CSTA Standards have a different goal than the Framework, from my reading of the standards presentation — it’s about reflecting teacher’s process and classroom practice. The review period ends March 3, so get your comments in soon.
The CSTA K-12 CS Standards Revision Task Force members have been diligently working to revise the 2011 CSTA K-12 CS Standards to ensure they are current, valid, and the best they can be. The task force members very much appreciate all of you who took the time to provide us with input on the 2011 CSTA K-12 CS Standards during the public feedback period in September – October 2015. Your input, along with the draft K-12 CS Framework and practices, standards from other states and countries, and related national standards informed the task force members as they revised, deleted, and added to the 2011 CSTA K-12 CS Standards. You may view the standards development process on the CSTA Standards Webpage. The first DRAFT of the 2016 CSTA K-12 CS Standards is ready for public review and feedback. We need your assistance once again!
Source: DRAFT 2016 CSTA K-12 CS Standards: We need your feedback! | The CSTA Advocate Blog
What can undergraduate courses do to improve diversity in computing?
Dan is one of the best computer science teachers I know, and I strongly agree with the goals he describes below. I’m not sure how much intro courses can do to recruit more diverse students. At Georgia Tech, Media Computation has been over 50% female since we started in 2003, but that’s because of what majors are required to take it and the gender distribution in those majors. I know that Harvey Mudd, Stanford, and Berkeley have grown their percentage of females, but their undergraduates get to choose their majors while on-campus. At schools like Georgia Tech, where students have to choose their major on the application form, the decision is made off-campus.
One clear thing we can do in undergraduate courses is retain more diverse students. In our BS in CS, we graduated 16% female BS in CS students in Spring 2015, which is pretty good. Taulbee Survey says that the national average is only 14.1% (see report here). But our enrollment in CS is 25% female. We lose a LOT of women who decide to try CS. I’ve talked about some of the reasons in past blog posts (see post here about bad teaching practices and here about my daughter’s experience in CS at Georgia Tech).
Dan Garcia says there’s another important issue: Once courses are created, educators must make sure they’re reaching a diverse audience. Women and minorities are grossly under-represented, not just in tech fields, but also in computer science classes.Teachers should shake the trees and reach out to more kinds of students, not just the student who’s doing well in math. And, he says, connect computer science to bigger, more controversial topics, Garcia says, because coding and data are connected to issues of power. With the persistent digital divide, he says, educators must ask, “What does that mean for equity? What does that mean for fairness? Privacy issues? Hopefully the curriculum brings equity as part of it,” he says.
Source: Adding ‘Beauty And Joy’ To Obama’s Push For Computer Science Teaching : NPR Ed : NPR
Dagstuhl Seminar Poster: Critiquing CS Assessment from a CS for All Lens
Today’s the last day of the Dagstuhl Seminar I’ve been attending on Assessing Learning In Introductory Computer Science (see seminar description here). We all presented posters about the theme, and I presented a poster where I critiqued CS assessment from a CS for All Lens (see Slideshare link).
Not everyone who learns CS is going to want to be a software engineer. Then why teach them CS? And how would you teach them, if the goal is not for students to develop software to professional standards? That’s what my new book is about.
If we have different learning outcomes, assessment has to change, too. I argue that we have to consider what the learner wants to do and wants to be (i.e., their desired Community of Practice) when assessing learning. Different CoP, different outcomes, different assessments.
I learned a lot from this seminar. I was in a great breakout group that came up with shared definitions of a notional machine and student misconceptions, and defined a research agenda for understanding student misconceptions. In a breakout group on conveying social and professional practice (bottom line for me: I’m not sure that we can or should in school), Amy Ko taught me a whole new way of thinking about MOOCs, about the positive role that they can play in society. The whole week has me thinking more about adult learning and how we support lifelong development. I have plans to write blog posts about these themes in future weeks. But first, a long trip home.
A MediaComp MOOC in Processing
I was excited to read this in Katrina Falkner’s blog at the beginning of the year. They’re teaching a Media Computation MOOC in Processing! I highly recommend looking at the actual blog post and the links, to see the kinds of work that the students are doing. (I wrote and scheduled this post when I first saw Katrina’s blog post, and it’s coincidence that it’s publishing when I’m with Katrina at Dagstuhl this week, discussing how we assess CS learning and attitudes.)
At the start of this year, we were also busy working on our Introductory programming MOOC, Think Create Code. We are really excited about this course, as we are have adopted the same Media Computation approach that we use in our on-campus course. We use Processing, and have built an EdX extension module to support an open art gallery where students can share their work, explore others and discuss. We will be using this course as part of our future on-campus offerings as well, allowing us to focus more of our in class time on working closely with our students. We launched Think Create Code in April, and ended up working with over 20,000 students from 177 countries. It was amazing to see the work of our students, and to see a fantastic blending between the artistic and computer science communities. The course now runs as a self-paced course open to all.
The need for feedback to improve undergrad CS teaching
Because of the kind of work that we do in my group at Georgia Tech, we visit a lot of computer science classrooms, recitations, and labs. Sometimes what we see is counter to what we now know is effective. Here are two examples from this semester:
- We see small group recitations, where students sit for 90 minutes and passively listen to a recap of the lecture. No peer instruction. We know active learning is better, and we know that it’s even easier to do active learning in small groups.
- We see intro courses teaching recursion before iteration. One of the few replicated results in CS Ed is that iteration should precede recursion. John Anderson and company found that teaching iteration first was better even when teaching Lisp, and Susan Wiedenbeck replicated the result (see blog post).
I can’t really blame these teachers. How could they know that there is a better way? How could we make it better? By what mechanism do we help CS teachers improve? This is a technology transfer problem. The research knows a better way. How do we change practice?
I’d argued previously that we should change promotion and tenure requirements to encourage active learning, and received massive pushback. I don’t think we’ll see that happen anywhere anytime soon. Teachers don’t want to feel “forced” to teach better.
Instead, what kind of feedback mechanism could we create so that undergraduate teachers learn that they’re not using effective methods? At my school (and I’m betting at most undergraduate institutions), the only feedback that a teacher gets is from student surveys, course-instructor opinion surveys. That’s not going to help with this problem. How could students know that the class would be better with peer instruction? How could students know that they should have seen iteration before recursion to learn more effectively?
Questions like these have been asked on the SIGCSE-Members list recently. What do you think? What kinds of effective feedback mechanisms have you seen to improve CS teaching? How do CS teachers get informed about research on better practices?
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:
- They can store data with a name(s).
- They can name parts of programs (instructions), and follow those instruction when commanded.
- They can take data apart.
- They can transform data into other forms.
- They can follow a set of instructions repeatedly.
- 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.
Marvin Minsky and understanding things in more than one way
Marvin Minsky died last month. I never met Marvin. I met his daughter, and worked with people who knew him well. He must have been a remarkable person.
The NYTimes piece has several quotes from Alan Kay about Marvin. Below is my favorite. I’ve heard it before, and I think about it often when designing classes and lessons.
I want students to understand what I do in class, but not memorize it. I want them to understand it in more than one way. It’s why I emphasize revision and multiple iterations so often in a class. I want them to understand well enough to transfer the knowledge, at least in near contexts.
For Dr. Kay, Professor Minsky’s legacy was his insatiable curiosity. “He used to say, ‘You don’t really understand something if you only understand it one way,’” Dr. Kay said. “He never thought he had anything completely done.”
Source: Marvin Minsky, Pioneer in Artificial Intelligence, Dies at 88 – The New York Times
CRA Report: The Importance of Computing Education Research
Steve Cooper organized a series of workshops (see blog posts here and here) exploring how we might grow computing education research within computing departments. How do we make sure that computing education research (CER) faculty succeed (e.g., get tenured and promoted)? How can we have CER PhD students within computing departments? Interesting to note that in Craig Wills’ recent analysis of CS department job ads, CS Education Research is in the “other” category. (Thanks to Yasmin Kafai for pointing this out.) Too few departments were interested in CS Ed to appear on his graphs.
The report with recommendations from those workshops is now out and available here. Quoting from the report:
This growth is an unparalleled opportunity to expand the reach of computing education. However, this growth is also a unique research challenge, as we know very little about how best to teach our current students, let alone the students soon to arrive. The burgeoning field of Computing Education Research (CER) is positioned to address this challenge by answering research questions such as:
- How should we teach computer science, from programming to advanced principles, to a broader and more diverse audience?
- How can we ensure that we retain this more diverse audience through inclusive pedagogy and generally more effective teaching?
- How can teaching approaches and their assessment (regarding student learning) scale effectively?
- What training should K-12 teachers receive? What methods have been shown to be effective?
- How can computer science teaching adapt to how different people learn and build on age related learning progressions?
- How should computing be taught and integrated into other disciplines?
We argue that computer science departments should lead the way in establishing CER as a foundational research area of computer science, discovering the best ways to teach CS, and inventing the best technologies with which to teach it. This is not only in the best long-term interest of our field, but also the long-term interests of society. This white paper provides a snapshot of the current state of CER and makes actionable recommendations for academic leaders to grow CER as a successful research area in their departments.
Shifts in gender ratios across roles in higher education
A recent article in The Chronicle talked about just how white higher education faculty are — see article here. Most of the student protests about equity and diversity on college campuses this last year demanded more minority faculty.
In this graph, I found a different and fascinating story in just the first two bars in each set:
Professors are overwhelmingly male. Associate professors are only slightly more male. Assistant professors are slightly more female. Instructors are much more female.
It’s not surprising, but it’s interesting to see it. The women in academia have the lion’s share of the lower status jobs, and the men have the lion’s share of the higher status jobs. When you take into account the landed-gentry/tenant-farmer relationship between the tenure track faculty and the teaching track faculty (see previous blog post), the relationship between gender and academic power becomes much more stark.
CS Teaching Faculty are like Tenant Farmers
There are many, many teaching jobs available in computer science right now. Scarcely a day goes by that there isn’t another ad posted in the SIGCSE Members list — sometimes for many positions at the same department. A great many of these are at Universities, with a clear statement that this is a Teaching track position, not a Tenure track position.
Many of these ads, when posted to SIGCSE Members, contain a paragraph like this (edited and hopefully anonymized):
(Highly-ranked University)’s full-time (without tenure) teaching faculty positions are called (pick one of:) Lecturers with Security of Employment, Professors of the Practice, or Teaching Professors, or Lecturers, or Instructors. These positions typically involve a teaching load of two courses each semester, advising responsibilities, and service (committee work) as well. (Highly-ranked University)’s computer science teaching faculty are NOT treated as second class citizens. We vote at faculty meetings, represent the department on university committees, and are generally well respected inside and outside the department. We currently are seeking more (see ad below).
From time to time, I write the person (almost always a teaching track faculty member) who posted the ad, to follow-up on the “NOT second class citizens” part.
- Do teaching faculty get to serve on the hiring committee for teaching faculty? Usually yes.
- Do teaching faculty get to serve on the hiring committee for tenure-track faculty? Usually not. This question often results in a snort of laughter. Why should teaching professionals be involved in hiring tenure-track faculty? That seemed obvious to me — teaching faculty are hired to be experts in teaching, and tenure-track faculty do teach.
- Do teaching faculty serve on tenure-track promotion and tenure committees? Almost never, despite the fact that tenure track faculty are expected to teach and are supposed to be evaluated (at least in part) on that teaching. Shouldn’t professionals with expertise in teaching have a voice in evaluating teaching of tenure-track faculty?
- Do teaching faculty have a voice/position at the Dean/Chair’s Cabinet/Executive Committee? I know of only one in the US.
Maybe I have been watching too much “Downton Abbey.” The treatment of teaching track faculty by tenure track faculty sounds like the relationship between the landed gentry and the tenant farmers. The University teaches as one of its primary roles, just as the estate survived through farming (and the sales and rent that were generated). The tenure track faculty (landed gentry) leave most of that to the teaching track faculty (tenant farmers). It’s a delegated responsibility, like custodial and lawn management services. The teaching track faculty don’t own the department or programs (land). The tenure track faculty make the decisions about hiring and promoting the teaching track faculty. The teaching track faculty don’t make any of the decisions about tenure track faculty. Of course, the greatest match with the analogy is that tenured faculty can’t be fired — like the landed gentry, they own their positions. Teaching track faculty are rarely tenured. One of the teaching faculty with whom I work has only a six month contract and can be fired with a month’s notice.
It is in our best interests for teaching track to be a profession. Teaching track faculty should be experts in teaching. Members should be expected to join professional organizations like SIGCSE (see previous post about the lack of membership in SIGCSE), to attend and present at organizational meetings, and to improve their practice. They should have a promotion path and evaluation as rigorous as the tenure-track promotion and tenure process. I’m pleased to see these ads, because they suggest national searches for good teaching track faculty — as opposed to hiring (for example) graduate students and post-docs who don’t want to leave their home institution.
A first step towards professionalization of teaching track faculty is to treat them with the same respect as tenure-track faculty. Tenure track faculty are treated as experts in research. Teaching track faculty should be treated as experts in teaching. If both teaching and research are important, then treat the teaching track faculty like the research faculty. There should be a comparable sense of responsibility, power, and ownership.
How to Participate in the K12 CS Framework Review Process
I’ve mentioned the K12 CS Framework Process a couple of times before (see this blog post). It’s now available for public comment.
Individuals and institutions are invited to be reviewers of the K-12 CS framework. Institutions, such as state/district departments of education and organizations (industry, companies, non-profits), are responsible for selecting an individual or a group to represent the institution. Reviewers can choose to participate in one or both of the two review periods:
- Feb 3 to Feb 17: Review of the 9-12 grade band concepts and practices
- March 14 to April 1: Review of the entire K-12 concepts and practices
There will be a public webinar (save this link) to launch the first review period on Feb 3 at 8pm ET / 5pm PT. Learn about the development of the framework and how to provide an effective review.
Find different instructions for individuals and facilitators of group reviews, including an informational session kit for review group facilitators at http://k12cs.org/review. Visit this page after 9 am on Feb 3rd and you’ll be able to access the framework draft and an online feedback form for the first public review
Sincerely,
Lian Halbert, K-12 CS Framework development staff
P.S. Are you attending SIGCSE 2016 in Memphis this March 2-5? We will hold a Birds of a Feather session on Thursday March 3 for all SIGCSE attendees – feel free to invite folks so they can learn about the K-12 CS framework.
Summarizing the Research on Designing Programming Languages to be Easier to Learn: NSF CS Ed Community Meeting
I’m at the NSF STEM+Computing and Broadening Participation in Computing Community Meeting. At our ECEP meeting on Saturday, we heard from White House Champion of Change Jane Margolis. She did a great job of getting our states to think about how to change their state plans to emphasize diversity and equity — more on that in a future blog post.
I moderated a panel yesterday on how to integrate computing education into schools of education. Here’s the description of the session — again, more later on this.
Integrating Computing Education into Preservice Teacher Development Programs
(Mark Guzdial (moderator), Leigh Ann DeLyser, Joanna Goode, Yasmin Kafai, Aman Yadav)
For computing education to become ubiquitous and sustainable in US K-12 schools, we need schools of Education to teach computing.
- What should we be teaching to preservice teachers?
- Where should we teach CS methods in preservice teacherdevelopment?
- How do we help schools of Ed to hire and sustain faculty who focus on computing education?
Panelists will talk about how CS Ed is being integrated into their preservice teacher development programs, and about alternative models for addressing these questions.
Yesterday, our other computing education research Champion of Change, Andreas Stefik presented a summary of the empirical evidence on how to design programming languages to make them easier to learn. Follow the link below to get to the two-page PDF pamphlet he produced for his presentation — it’s dense with information and fascinating.
This pamphlet is designed to provide an overview of recent evidence on human factors evidence in programming language design. In some cases, our intent is to dispel myths. In others, it is to provide the result of research lines.
Computer science is the study of computers and all the phenomena surrounding them
One of the common questions in CS education is, “What is computer science?” I recently looked into the original article in Science that introduced the term in 1967 from Allen Newell, Alan Perlis, and Herbert Simon. They define computer science as the study of computers and the phenomena surrounding them.
I do see the point that what computer scientists are really interested in is computing, which is separate from computers themselves. That’s a distinction that is mostly lost on students, though, and is not all that important to emphsize now that computers exist. We can argue that computer science existed before computers, but that’s a thought experiment. What we study today is based on the reality that the devices exist.
CMU keeps a library of correspondence from Herb Simon and I found this letter (see link here) interesting because it shows Simon making a similar distinction. Computers had to exist before computer scientists before we could really define a field: “A point of our letters was that, whether genuine substance now exists in computer science or not, computers constitute such a rich set of phenomena that it obviously will exist. (In a sense, there had to be plants, then botanists, before there could be botany.)”
There are computers. Ergo, computer science is the study of computers. The phenomena surrounding computers are varied, complex, rich. It remains only to answer the objections posed by many skeptics.
Objection 4. Computers, like thermometers, are instruments, not phenomena. Instruments lead away to their user sciences; the behaviors of instruments are subsumed as special topics in other sciences (not always the user sciences – electron microscopy belongs to physics, not biology). Answer. The computer is such a novel and complex instrument that its behavior is subsumed under no other science; its study does not lead away to user sciences, but to further study of computers. Hence, the computer is not just an instrument but a phenomenon as well, requiring description and explanation.
Recent Comments