I had a memorable time last weekend. My new Apple iMac came on a FedEx truck at about 9:30am. The publishing agreement for my textbook (second semester computer science) came about fifteen minutes later on a different FedEx truck. And then I turned 60 on Sunday. The first two were clearly exciting. (I am a new convert to the cult of Apple. My father was deeply observant, but I stuck with Unix/Linux, and what convinced me to convert was that I could get all the Mac features but still run X11 underneath and write, as I am now writing, in a standard Linux window with standard Linux tools. No need to dual boot)
I am scheduled to teach the second semester course in the undergraduate major next semester, using my pdf as the text. I started work on this book when I taught this course two years ago and wasn’t entirely happy with any of the books available. First of all, there is way too much material in the standard ACM/IEEE/ABET curriculum. It’s just not possible to teach all the material in the curriculum in one semester.
The approach I have tried to take in my book is that students in the first semester have become moderately capable of doing computing in a naive way. They should have mastered arrays and ArrayLists (we use Java in our first two courses as the programming language vehicle for teaching computer science and program design), linear search and lookup, and the organization of programs into perhaps three levels
of classes.
The computer can either be an object of study (if one is a hardware designer or a compiler writer) or a tool to be used for doing something useful. I assume that that there are far more students in the latter group than the former, especially when one is teaching courses that have students from other majors. For this majority of students who might use a computer to do something, the next steps after learning how to do things naively is to learn how to do things in a more sophisticated way, which would allow them to do bigger projects and run on more data.
Instead of linear search, then, binary search becomes the method of choice. More complexity and coding, yes, but more payoff if one has more searching to do. Instead of storing everything in an ArrayList, we use linked lists, stacks, queues, and such to provide more structure and allow for more efficient processing against the data.
And yes, there is some sophistication in the programming language that can be introduced. I view the entire notion of iterators as a way of eliminating the step that involves knowing what the underlying structure is. Instead of doing a “next” to get a node in a linked list, and then fetching the data in that node, we use the iterator to fetch the data directly. But again, this isn’t just a cool construct in the language that the compiler writers just had to do in order to show how clever they were; this is a feature that specifically eliminates one complication in naive programming and thus might reduce the number of bugs. As with everything, there is no free lunch; complexity in constructs requires complexity in program design and structure. But the complexity is sometimes necessary and must be mastered.
Or at least that’s what I am going to try to convince my students of next term.
Duncan Buell
CSTA Board of Directors
Category Archives: News and Views
Recruiting: Lessons for a CSTA Chapter
As we started the new school year, our small group of five (three college and two high school educators) is entering round two of starting a CSTA chapter. We created it last year and barely got it up and running. Now, we are committed to pushing ourselves into the educational battleground of Long Island.
The question we posed at our first meeting seemed simple enough: who do we recruit to be active members of the chapter? We made several attempts last year to solicit members through email and letter campaigns based on high school and college directories received from New York State Department of Education. Most of our attempts have yielded disappointing results.
We were brainstorming this at our first session this year:
Do we build computer science programs at the high school level by working from the top down by getting superintendents or principals to support CS?
Do we work with teachers even though our efforts to date indicate that very few teachers in our districts consider themselves computer science teachers (computer applications or computer lab administrators or tech teachers seem to be the norm).
What about parents? If parents demanded more CS wouldn’t administrators be forced to support the programs?
Are guidance counselors the answer? It would be nice to have a way to work with all these groups but time, money and manpower are limited.
What about the students? Can we go directly to the students and try to find ways to encourage them to push their parents to push their guidance counselors to demand of their administrators to build computer science into their curriculums?
Sounds like a bad nursery rhyme, doesn’t it? Hopefully, by the end of this school year, this group of CSTA chapter members will have found an answer, or at least a small hole to climb through.
What suggestions do you have for CSTA chapters that would like to attract more than a small core of teachers?
Ron Martorelli
CSTA Board of Directors
Notes on the Hopper K-12 Town Hall
For the second year in a row, the Grace Hopper Conference included a Town Hall meeting on K-12 CS education, bringing together K-12 teachers with people from industry, academia, and research. One of the questions discussed was what teachers feel they need. The answers ranged from political and infrastructure responses to “in the trenches” needs. Here are some of the responses:
* Teachers need a political partner, someone from the political world to witness our discussions and begin to understand that CS is in crisis, understand what teachers need. How about getting a U.S. senator or Arne Duncan to come to SigCSE to talk about the CS education act, etc. And, most important, get CS included in STEM.
* Teachers need equipment and training. Labs in many schools are too slow and too outdated.
* Teachers need access to research and data, plus help on how to put together grants in order to get resources into their schools.
* If companies cannot donate equipment, maybe they could bring commitment in on loan. Or set up a bus of equipment that could arrive at the school periodically so that students would have access to state of the art machines.
* As is often mentioned, teachers need help changing the image of computing within K-12 so that girls will be more likely to want to take the courses. In particular, need ways to reach girls in 5th-8th grade, which is the time when they start to fall out of math and science.
* Need a groundswell of support, educate parents and others in communities so that they understand how important it is that CS be taught and be required. People need to know that CS isn’t required, so that they can lobby for it to become required.
* Need teacher certification and teacher training programs that are focused on CS.
* The K-12 situation would be helped by a disarticulation of the pieces of CS. We need better understanding among administrators and policy making boards that CS is not IT, CS is not computer applications, but that CS is not just programming either.
* Teachers asked for online self-directed learning modules so that they can get up to speed on new CS material.
* Because standards differ in every state, administrative support is critical, as well as trustworthy curricular materials.
One issue raised was that there are many communities in which CS is not taught at all, so those communities would not have any teachers who could attend a town hall like this one.
The next question asked was what people who are not K-12 teachers see as their role in the work around K-12 education, either personally or as a group.
* We can break down the isolation many individual K-12 teachers experience. (One of the suggestions I made during my opening remarks at the Town Hall was that people in industry or college/university settings invite area K-12 CS teachers, giving them an opportunity to connect with each other).
* We can target the people who help kids make decisions. For example, a new corporate partnership will be announced soon which will reach out to parents and guidance counselors.
A final closing comment was that we figure out how to “network” our passion and sustain it so that we don’t leave meetings like the Town Hall and then lose all of our enthusiasm and energy. There are many ways ti do this but two good places to start are by participating in CS Ed Week and helping with CS activities in your area schools.
Valerie Barr
CSTA Task Force Chair
Real (ish) Life Computational Thinking
I went to see the most delightful talk this week, given by a graduate student. Like many academic talks, the speaker outlined a problem, described similar research and attempts at solutions, which have all failed, then argued for a new solution that he has done research on. The format, obviously, is not what was delightful, instead it was two other features of the talk.
First, the problem: “The dirty dish dilemma.” Our young grad student has lived for many years in communal houses. The policy is “clean your own dishes.” But sometimes dishes get left in the sink! Like the broken windows theory of crime, soon it snowballs into a sink full of dirty dishes and a lot of unhappy housemates.
When was the last time you went to a talk about something you actually found entertaining? This is so much better than the problem of writing across the curriculum or differentiated instruction! (And truly, I think life at most schools would be more improved by 30 minutes on solving the dirty dishes in the staff room sink than by 30 minutes on curricular reform.)
The second delightful part was his research method. It would be hard to go out to lots of communal houses, try different solutions, see which ones worked and then test the “working” solutions at other houses to make sure they really work. But it is easy to download NetLogo and create a model of dirty dishes, including the people who wash and dirty the dishes. And it’s very easy to modify the model once you create it – varying how slobbish the people are, trying different solutions, adding or removing constraints (like when Mom gets fed up and yells and all the dishes get washed at once). It was the most realistic example of the use of computational thinking I’ve seen, and at no time in the talk did the speaker use the phrase computational thinking, nor did he even appear to know that’s what he was doing.
Incidentally, the solution is to change the policy to one of small altruism. Instead of “do your own dishes” the policy should be “do your own dishes plus one other dish“. Then no one gets stuck having to clean up after everyone else just because their prep period is right after lunch.
Michelle Hutton
CSTA President
Loners Will be Loners … Or Not.
Many of us are fortunate to have taught classes in which all students are active participants and teaching and learning are natural activities in the classroom setting. Chattering among my students brings a smile to my face. But every once in a while, there is that one student who “prefers to work alone.”
The Hart Research Associates surveyed employers and concluded that a majority of employers believe that greater emphasis should be placed on a variety of learning outcomes developed through a liberal education. One such outcome is teamwork skills and the ability to collaborate with others in diverse group settings[3].
Computer Science Principles is a course presently under development and being led by a team of computer science educators organized by the College Board and the National Science Foundation. This course seeks to broaden participation in computing and computer science. Listed as one of six computational thinking practices covered in the curriculum is “working effectively in teams”[4].
A comment from one computer science teacher in response to a pair programming thread in an electronic discussion group: “The popular kids will always flock together and the loners will always be loners.” I would like to say, “Not so.”
Many teachers encourage productive teamwork by incorporating pair programming in their classes. “Pair Programming” is an agile development technique in which two programmers work together at one computer following specific techniques[1]. The intention is to have two people as resources; they are working towards the completion of the same task at the same time with two sets of ideas. They are working collaboratively to accomplish this task. This is very different from working cooperatively.
There are no loaners in my class. I have tried various techniques, some working better than others:
* I assign pairs and monitor all pair programming (they do this activity only during class time)
* I have allowed the “loaners” to work alone if they are willing to accept a grade deduction of about 20%. This is not a popular choice but has been accepted by a few.
* I assign pairs based on requests and honor requests of “I do not want to work with so-and-so”. All requests are confidential!
* I start the year with a pair activity to break the ice [2].
But I still search for new ways to eliminate the loaners so that all students WANT to work collaboratively on a team or use pair programming techniques.
What do you do to effectively eliminate the “loners” in your class?
Resources:
[1] Pair Programming: http://agile.csc.ncsu.edu/pairlearning/educators.php
[2] Pair Draw: http://industriallogic.com/games/pairdraw.html
[3] Hart Research Associates: Raising the Bar: http://www.aacu.org/leap/documents/2009_EmployerSurvey.pdf
[4] CS Principles: http://www.csprinciples.com
Fran Tees
CSTA Chapter Liaison
Things are Happening in Massachusetts
Things are happening in Massachusetts on the Computer Science education front. First, Dot Diva, a program sponsored by WGBH and ACM to promote the field of Computer Science for high school girls. The Dot Diva launch is September 27 in Cambridge, MA.
Another upcoming event to promote Computer Science for high school students is being sponsored by the Tech Hub Initiative, a group of industry and academic leaders focusing on mobilizing efforts and enhancing awareness of the need of computational thinking and STEM in education. This event, called the Tech Youth Summit, will take place on October 16 in Cambridge, MA. Students (and their teachers and parents) are encouraged to attend to learn more about paths in computer science. Hopefully, an additional outcome of this event will be a fuller understanding of students’ perspectives on computer science. Perhaps the students can give us some insight on ways that CS can be promoted to people their age.
Lastly, the founding of a local CSTA chapter in Massachusetts is in the works! Several people have been working on this and are planning an organizational meeting at the end of October.
As the school year gears up, it is energizing and motivating to me to see all these events taking place. I am excited to see where this will lead on the local front. What CS events taking place in your area? What has you excited as you start your new school year?
Karen Lang
CSTA Board Member
I Know What You Did Last Summer
If you are like most of the teachers I know (and how I used to be) then you probably spent your summer doing any combination of the following: vacationing, resting, conferencing, professionally developing, or working. And I would guess many of you spent more time doing the last two than the first three.
As teachers, we expect our students to hang on our every word (ok, really we would be happy if they hang on even 50% of our words) and to put into practice what we teach.
So, my question for you is: What did you learn this summer? And how do you intend to put it into practice? Our wish is for this blog to be very interactive, so we welcome comments from you so all our readers can live vicariously through you! I’m sure some of you attended the CS&IT Symposium or perhaps an Alice Workshop. Or maybe there was a workshop at a local university? Or maybe you taught a summer course and were surprised by a project one of your students created? Tell us about these experiences! We continue to grow through shared experiences.
As Vince Lombardi once said “The achievements of an organization are the results of the combined effort of each individual.” Do not be afraid to share something. CSTA is not just for you, it is you.
So let us know what you did last summer!
Mindy Hart
CSTA Board of Directors
Computer Science and Reading Literacy
Recently, my school received their results from the high stakes testing in our state. While my school maintained the Excellent rating for the fifth year in a row, my school is not meeting the AYP (Average Yearly Progress) reading requirement with our low socioeconomic status students. My school has now begun a school wide reading literacy program where teachers are asked to promote reading literacy within their subject area. Teachers have been encouraged to promote the reading of subject targeted materials in the classroom.
A close friend of mine is the Vocational Agriculture teacher. He has found a book with an agricultural theme and written in a style that would appeal to his Voc Ag students. His plans are to have the students read a chapter every couple of days and then to discuss it as an addition to his normal curriculum.
I would like to ask for some help from our readership. How do you promote or integrate reading literacy into your Computer Science program? What books, magazines, or online materials do you use and how do you use them in the classroom?
Dave Burkhart
CSTA Board of Directors
What Does a Computer Scientist Look Like?
Career and Technical Education exposed me to the field of computing. I joined two organizations in high school that changed my life. My participation in FBLA (Future Business Leaders of America) and ROCAME (Region O Council for the Advancement of Minorities in Engineering) allowed me to see what a Computer Scientist and Engineer “looked like.” These organizations also groomed me for the experiences that followed during my years as an undergraduate Computer Science student in the College of Engineering at North Carolina A&T State University. It was all relevant.
We as adults base our decisions on statistics and track interest rates for credit cards, various loans of all types and follow the Stock Market closely. This type of data is important to society and allows us to make effective decisions. Is this type of data relevant to our students when determining course enrollment or college majors? No. Do we provide students with effective and relevant data that would assist them in deciding to pursue a career in the field of Computer Science? My prior students were concerned with the amount of money they could make upon graduation. Some students were concerned about whether or not people represented in certain careers aligned with their profile or if they were “cool.” Did I mention they want to know how much money they are going to make?
When I toured companies as a high school student in ROCAME, I was convinced after my first onsite meeting. Why? The mentor assigned to our chapter discussed aspects of his job that seemed fun, he looked like me, I made a connection with his experiences and they aligned with my interests. He showed me what a person in his field looked like and made it relevant. We have a great responsibility to expose students to the field of Computer Science, be visible in their classrooms as well as during post school events.
I am currently employed in one of the largest districts in my state and there are less than ten Computer Science programs. How do we effectively integrate this field at every level in K-12 education and show students what a Computer Scientist looks like? How do we make it relevant?
The resource Pathways in Computer Science is posted on YouTube. It assists in marketing the field of Computer Science to students.
It’s a start.
Shemeka D. Shufford
CSTA Board Member
So What Are You Doing the Week of December 5?
The process of starting a new school year is empowering, exhilarating, and exhausting all at the same time. Even though it’s been five years since I was in the classroom, I still get the itch to make big plans and do new cool stuff. I even love the smell of a new school year. I can’t resist buying new markers and erasers!
This year holds even bigger opportunities for CS teachers. Computer Science Education Week (December 5-11) is your open-door to bragging about your students’ accomplishments to colleagues and parents, exciting students about the future they can have in CS, building your program with up-to-date resources, and in general, celebrating the power and joy of CS education.
This is a perfect time to plan collaborative projects between CS classes and other departments in your school. Showcase the impact CS has on every field and the power it holds to make the world a better place. Computer Science Education Week will be here before you know it, so it’s time to get cracking!
* Make plans now to do something fun in celebration of our week.
* Consider joining with colleagues near and far for joint activities.
* Check out the long list of classroom resources on the CS Education Week site.
* Plan to include the soon-to-be-available audio and video “morning announcements.”
* Share your ideas and plans here in the blog or thru the Connect With Us link.
* Involve the media in announcing and reporting your activities. It’s OK to brag!
Pat Phillips
Editor, CSTA Voice