Introduction to CS Education

Yes, I know its been a while, and will probably be at least another week until I pick up regular postings again :) But, I wanted to share this quote from my Intro to CS Education course that I taught this semester:

This course raised the bar for computer science education, both in expectations on the students and in the teaching of the course itself. Before entering this class, I thought education was synonymous with communication, and that to be a good educator it sufficed to refine clarity in communication. After taking this course, I am amazed at my naivete. I now have an appreciation for assessment, metacognition, motivation, engagement, cooperative learning, cognitive architecture and many other concepts that contribute to good teaching.

This was written in one of the online course evaluations that are done at the university level and I think it sums up a resolution of my goals for the course.

December 1st, 2009, posted by Leigh Ann

They dont applaud anymore

I’ve always been impressed by the tradition of applauding for the pilot when you land in Europe (at least I’ve experienced this in Greece and Italy when I traveled a few years ago). On this trip, there was no applause upon landing and it prompted some thoughts that have made their way here (in front of all of the readings that I need to write about).

Why do we applaud things? We applaud them because they are unusual, because they are exceptional, or in appreciation. As things become common place we are less likely to applaud what would have caused us to applaud early on. Have we stopped applauding computer science?

New developments, new applications, new inventions - while applauded within our own community do not often make the larger news in current times. I wonder what affects that has?

Just some quick notes - more about Koli perhaps on the way home.

October 31st, 2009, posted by Leigh Ann

In continuation..

Starting with Mark Guzdial’s blog on What Changes CS Education? to Alfred Thompson’s post on What does it take to make a change in CS education? there has been an interesting thread of conversation going on. Because the semester is in full swing and I have a LARGE machine learning homework out right now I originally started just a comment on Alfred’s blog. Well.. For any of you who know me, I am very passionate about this subject and after writing a few paragraphs figured it was getting too long for just a comment.

So to start, here is my comment on Alfred’s blog, with more, new comments below:

::sigh::

Forgive me for being an education purist, but I think this is part of the reason why we are in the pickle that we are in as a discipline. Relying on tools or the industry to define the introductory experience, and even more so the novice experience is .. well.. crazy? ineffective? ridiculous? not sure what the right word is.

When the biology department tries to decide what biology knowledge makes someone a literate citizen they don’t look at what professional biologists are doing. They don’t look at what nifty tools are available for teaching biology. They decide what it should mean for your average American to have an understanding of biology. They define a set of broad standards that would allow a knowledgeable teacher to implement those standards in a classroom in one of many different ways, potentially using one or more of the tools available to them. Then they train the teachers. To BOTH have an understanding of biology AND an understanding of what it means to teach biology - both to be familiar with the standard curriculum and the pedagogical nature of the course.

How is this different from what we do? We argue about what the right “foundation” is. College CS people argue about why AP is not good, but the AP program is one of the few programs with a solid curriculum, that does TEACHER TRAINING. While there are great things being done in a few places, its often hard to find something (outside of AP workshops) that a new/novice teacher can hold on to, and take back to their administrator as “standard”.

We need to stop arguing about language, tools, etc. and decide what it means for the AVERAGE American to be literate in computing. (notice the computing - not the computer science, its a bigger question than just CS) Then we need to write a set of standards, or agree that the ACM’s standards are good. There needs to be consensus in the message coming out from our community. Then there are the economics to consider. How are schools going to pay for this?

and now for the new part

It really does boil down to economics in the long run. We can train 10,000 new teachers, and ACM can publish excellent standards that are used by every CS teacher in schools, but unless we somehow make it cost beneficial or cost neutral to schools - those 10,000 teachers (for the most part) will not find a job unless they are filling a retiring teachers spot. There are two types of economics going on here. First, the money issue, how in the world are schools going to afford to pay for a new teacher for a course that is not required, and currently doesn’t exist in the school so there is no demand for it?

Secondly, the economics of the student’s schedule. Students’ days are currently full. Any high school teacher can tell you that. The days we remember of study halls in high school or “free periods” are a thing of the past. In the competitive college market students have taken to PACKING their schedule with as much as the possibly can, with the largest percentage of AP classes they can to try and get into the best schools with the best scholarships. As of right now, college admissions officers give no more weight to AP CS than any other ELECTIVE AP. So why take CS, when you can take a language, art, music or one of any other AP courses? And if it is not an AP course why take it when an AP course has more weight on your transcript?

So, there is no money to hire teachers for this elective course. And there is no student demand for the course. How does picking a better tool fix the economic problem we are facing? How does writing a better textbook fix this? Yes, it may change what is happening in colleges, or in a few established HS programs - but there are bigger issues here.

I have some ideas about this, but to save time I’m going to leave this with the questions. (Machine Learning - homework calls) But as we consider whats going to make the LARGE changes, in the location that we all agree is where it needs to be (K12), the economics are undeniable and unavoidable. Lets keep those in mind too.

September 20th, 2009, posted by Leigh Ann

Commonsense Computing: Episode 1

In preparation for writing the introduction/motivation section of a research proposal I’m reflecting on some previous work in assessing naive understanding of computing concepts. One of the articles recommended to me by Sally Fincher at ICER was the Commonsense Computing series. The first paper in that series looked at students naive concepts of sorting.

First let me say I approve of the work and most of the methodology that was applied. I’m in the middle of my own process for writing research proposals which are a combination of drawing on similar work and also exposing weaknesses in that work with motivate your own work. This blog is not meant to be critical, just observant of some of the things in the paper I feel were important for me to think about.

First of all, their selection of students (first day of a computer programming class) may already introduce a bias into the student’s answers. Because students have already enrolled and showed up to a class which is generally understood to exist in a computational setting, that may have shifted the student’s perceptions in that direction. Is that necessarily a bad thing? I dont know, after all we teach them these concepts in a computational setting. One of the things I’m hoping to explore in my own work to help provide a measurement of how much the questions get answered by “what they think is the right answer, or what the teacher wants to hear” is the idea of attachment strength. If anyone knows of an article that talks about attachment strength to a model I am looking for a good citation for the paper. (as well as a little help in designing that part of the assessment)

The second to last paragraph in the introduction states “The results suggest that beginners can describe algorithms, but their models of the machine and instructions differ from those of many instructors. In particular, the results suggest that instructors should guide students to understand a virtual machine in which numbers are primitive objects …” This lead to a note in the margin that reads: Are the students’ models “wrong” or just abstracted at a different level? Why should we guide them towards a NEW model rather than providing insight into their own?

The paper states in a couple of places that one of the goals of this work is to inform better instruction based upon the findings, but the largest instructional change recommended was to shift from while loops to do-until loop structures. Any intuitions expressed by the student that appear to represent a different level of abstraction were labeled as a misconception and it was recommended that the instructor work to move the student to the instructors way of thinking. While this is probably the correct response in most cases, I’m wondering if it is right in all. Are there cases when a misconception is based upon a different level of abstraction where we should simply introduce students to the concept at their abstraction level and then progress to a deeper one over time? I guess this is one of the broader questions I hope to address in my work. hm.. Any comments would be much appreciated. Even if they are based on naive models :)

August 20th, 2009, posted by Leigh Ann

Teaching: The profession you should and shouldnt do..

This morning I read an article about Sarah Fine and the reaction to her decision to leave an inner city DC school. No one questions that Sarah is an exemplary teacher, and her decision prompted both outrage that she should “abandon” the class as well as understanding.

It reminds me a little of some of my own challenges - when I first decided I wanted to teach, that it was important to me I had to justify this decision with several people - including my then significant other who thought that was a waste and that I should go into the computer industry. The number of times I heard the phrase “those who cant, teach” made me question my decision to the point where I actually interviewed with several companies for systems administrator positions.

I started teaching in an inner city school in Ft. Lauderdale FL. 2000+ students and I was a minority. I had a student threaten to turn his gang on me for trying to enforce school policy. (that was on the second day) I did eventually leave that place due to the communities reaction to a tragedy that occurred. I did keep teaching, but I moved to a suburban school district with different problems.

I was burned out after two years, and if I hadnt had the option of moving to a better district I’m not sure how much more I would have lasted through. Now, as I hope to make a change, to contribute to a community of educators in a different way I again face questions. Only this time its along the lines of “why are you leaving? your students need you”.

It feels like a double standard. First teaching isnt good enough for intelligent, hard working people (clearly they should do something with better options for success) and yet, when they can take no more of the lack of support and difficulties that Sarah describes they are berated for leaving. We need to let our teachers know we value them - right from the time they decide to be a teacher. Maybe then more smart, excited people will pursue and stay with teaching.

If you have a teacher in your life (either a colleague or one of your childrens’ teachers) who is doing a good job, let them know you are glad they made the decision long ago to be a teacher. One comment like that used to get me through a whole semester.

August 19th, 2009, posted by Leigh Ann

Marcia Linn and the ICER Keynote

Earlier this morning Marcia Linn gave the Keynote at ICER entitled “Learning to Teach Computer Programming”. The work that she talked about, while containing some historical perspective about teaching computer science, was mostly about a new report “Fostering Learning in the Networked World: The Cyberlearning Opportunity and Challenge” and two initiatives: Computational Thinking and 21st Century Skills Movement.

I have not read the Cyberlearning report, so I do not have a lot to comment about it.

As far as the Computational Thinking and 21st Century Skills movement - first I was very happy to hear the “21st Century Skills” agenda introduced at a computer science. She even gave a link to the 21stcenturyskills.org website and showed their “rainbow” curriculum model.

Marcia showed us a simulation from the WISE collection of Science simulations and tried to model how this was a computational thinking/21st Century Skill activity. (It was about global temperature and you could control the amount of C02 that was added to the environment) I was not convinced that it was truly a computational thinking activity. One of the features of computational thinking that I was struck by the first time I heard Jeanette Wing speak about it was the idea that Automation was one of the three key aspects of computational thinking. Its not just about looking a representation of information, but it is about somehow automating some process. The WISE collection of activities is great, but I’m not sure its really computational thinking.

Marcia also talked about a cycle of knowledge building that can be used through a tutor or electronic environment where students go through a 4 stage process of generating ideas, adding ideas, evaluating those ideas and finally sorting the ideas based on the evaluation. This reminded me a little of the misconception research that says you need to expose student’s misconceptions in order to move past them, however it was unclear how incorrect ideas in this process would be “weeded out”.

Still processing what my take away from that talk will be.

August 10th, 2009, posted by Leigh Ann

Lots of talk about certification

The CSTA and others have been talking a lot about certification as their new report “Ensuring Exemplary Teaching in an Essential Discipline”. The question is as we talk about certification in CS I would caution us against relying too heavily on models of certification for other disciplines.

There was an interesting article a short time ago in Curriculum Matters (an Education Week blog) about some of the identified problems with the teaching profession, especially in STEM disciplines. Also at this year’s IES (Institute for Education Sciences) conference I attended a panel on teacher certification (they were comparing alternative certification against traditional certification, and showed no significant difference in student performance between the two.

As we move computer science forward and hope to better prepare our CS teachers for the classroom, lets make sure that the preparations themselves are right.

July 20th, 2009, posted by Leigh Ann

Star Trek Technology and CMU

So this is a re-post from Peter Lee’s Blog. Apparently CMU professors were asked when the last Star Trek movie came out about how much of the Star Trek technology could become real one day.

This is a great video to show your students to help encourage them to not see technology as fixed, and that no idea is impossible to explore. It may not be possible to make right away - but isnt the journey just as fun?

July 20th, 2009, posted by Leigh Ann

What should Computer Applications in the 21st Century look like?

So, those of you who have talked to me in the past year or two probably know my opinion about “computing for everyone”. I believe that we cannot push an additional course into the already packed HS student schedule, and should instead take advantage of the computer applications requirement that exists in most schools.

That means re-designing computer applications and providing quality professional development for MANY applications teachers that often have business backgrounds and not computer science ones. I think this is much more feasible than requiring a computer science course for every student in addition to the current requirements and trying to put a qualified computer science teacher in each of those classrooms.

In a resent browsing of academic standards in the 50 states for another research project (that you will hear more about later when it becomes public), I came across a newly minted course description for computer applications in Alabama. Now I know you may say - Alabama? when thinking about rigorous standards and technological advances your first thought probably isnt Alabama (unless you are going alphabetically). Yet they seem to be ahead of the rest of us. The course standards can be found here, Its the Technology Education Course of Study.

Tell me what you think. What are they missing? Why are they good standards for EVERY child in high school? I’d love to start a conversation about the standards (not the tools or languages - I think thats another conversation).

(BTW - I REALLY like this course description. REALLY REALLY… I think all they are missing is a standard about open source at this point.)

July 14th, 2009, posted by Leigh Ann

Thinking about computing and doing good for humanity

One of the things I love about being at CMU is the ability to see talks given by the professors here (and even sit in on some of their classes). One of the favorite lecturers in the CS department is Luis von Ahn. Luis developed an entirely new field of computer science called “human computation”. Here is a great video of Luis at the CCC event at the library of congress talking about how his research has changed the world.

I think this is a great thing to show students as it really starts to give them a window into the idea that computer science is not all about the programming - yes there is programming involved in a lot - but it is so much more than that.

July 9th, 2009, posted by Leigh Ann