Saturday, March 13, 2010

0 It sounded like a good idea at the time

This session began with Robert McCartney - a 60 something (white, male) computer science professor dressed in a jeans and a pinkish colored blazer with a christmas hat on with bells.

"Bringing useful truth to SIGCSE since 2007"


Another session that SIGCSE participants look forward to. The contributors of this session describe pedagogical approaches that seemed to be good ideas but turned out as failures. Contributors describe their pedagogical experiment, the rationale for the experiment, evidence of failure, and lessons learned.

Robert McCartney - Computers in Modern Society
University of Connecticut

Some years ago, there was a general education course for students; primarily taken by seniors but designed for freshman students.

Bad course == opportunity

  • Old course material + cultural reading, overview of some fundamental computing topics + programming in scheme + flexible class project
  • Other great stuff: hand picked lab instructors; active learning in lecture, great material; general-purpose language
  • What went wrong? student complaints - "too much work for a freshman level course"; Chair received complaints from the Deans of three other schools; nearly half of the class dropped the course, even though a graduation requirement.
  • Of the 44 remaining students, exactly one written evaluation was positive; none were neutral.
  • Ended up dropping the course from the curriculum.
Why did the course go wrong?
  • Course did not match students' expectations
  • Poor understanding of why old course was unpopular
  • Different views of what is interesting.
After 14 years, they are now proposing a new general education course in CS. "Introduction to the principles of programming and computing" , based on Abelson & Sussman SICP, and including Scheme programming.

Edward Gehringer, NC State
The Plan
  • Collect data in one class to support two thesis projects, and lay the groundwork for future research proposals
  • When? Fall 2006
  • ECE/CSC 517 - OOP
  • The Software: Expertiza peer-review system; Distributed pair programming environment Sangam, Remote visual-display environment Facetop; Recording program Hackystat; Eclipse and NetBeans; web-services language Water
  • Goal: Sangam + Facetop: WOrld's best DPP Environment, ...
  • Sept 1: First Warning Sign - facetop only runs on Macs; only 5 students said they have programmed on a mac, but no one in class had a mac; so arranged to borrow Macs from another project.
  • Sept 11: More Trouble - the first assignment was refactoring Expertiza, could not get Expertiza to build in Eclipse
  • The Continuing Saga - Sept 13 - apologize for delay on projects
  • Sept 21 - graduate student drops out of grad school!
  • Other concerns: studetns with macs could not run Facetop; students not recording; semester half over before 1st due date; other grad student switched advisors.
  • Results: Instructor was an effective teacher (1.75); course was excellent (1.38)
  • Course got better ratings over the next several years.
*********************************************************************
Improving the Quality of Student Presentations (Or Failing To Do So)
Dave Musicant (Carleton College)
  • Attempted to teach students better style of presentations. Did not want them to read off of powerpoints. Students just read off of powerpoints.
  • "My prof hates powerpoint, I can just stand there and babble"
  • Dave's conjecture: Powerpoint is an averaging mechanism.
Strong speaker + Tufte's ideas = great presentation
Inexperienced speaker + PPT = mediocre presentation
Inexperienced speaker + no PPT= DISASTER

Before Intervention: 21 students

  • 12 students really liked talks
  • 5 students liked them, but with caveats
  • 3 students learned from their own only
  • 1 student thought they were useless
After Intervention: 14 students
  • 1 student really liked the talks
  • 2 students liked them, but with caveats
  • 2 students learned from their own only
  • .....
Lesson 1: They're not ready for this
Lesson 2: Sometimes things are popular for a reason.
Lesson 3: Busy people optimize their efforts

*****************************
Raymond Lister
University of Technology, Sidney

  • Voodoo Programming - even if the program works, students don't understand how/why it works
  • Shotgun debugging - a process of making changes in hope that it fixes the bug.
  • At the end of the 1st semester, most students can't write code (systematically), so ...
  • In the final exam, he tested students understanding of given code (MC exam)
  • Provided the students with ALL the diagrams from class, for the exam.
  • 1/3 got it wrong
  • 40% of the class flunked
  • 20-35% got each of 7 similar questions wrong
  • This MCQ and the seven others were from a pool of 30 GIVEN TO STUDENTS BEFORE THE EXAM.
  • Theories - poor teaching, students are dumb, students are lazy, students are ruined by computer games; should have learnt FORTRAN like Raymond
  • We only retain 30% of what we hear in lecture. Experts organize material in a usable way.
  • Lesson: the students did not have the skills to use the diagrams.
  • The Middle Novice Programmer: between the two extremes- who we should focus on.

JiTTery Start
Steve Wolfman - U. British Columbia
  • How do you con students into reading the textbook?
  • Just-in-Time Teaching (JITT) - "JiTT is where you tell your students to read the textbook before class and mean it"
  • Class - Discrete Mathematics & Hardware
  • Give the students pre-class learning goals (what they should know before coming to class) Accompanied by assigned reading and recommended problems.
  • Also give students pre-class quiz and grade for correctness (student self-assessment)
  • Pre What went wrong - this is starting to work well, took abstract ideas and made it a mess!
  • "its like a medical trial, where the theory says that it is working, but the patients are dying."
  • You don't adopt ideas, you ADOPT them.
Lessons Learned: Lecture
  • Have help for in-class discussion
  • Quizzes need "Little questions"
  • Explicitly discuss the quiz results
  • Scaffold problems, use problems with various levels of difficulty, provide some worked exalmples
  • Structure lessons carefully
  • Work on culture of participation and pair work
  • Plan for both slow and quick finishers
  • Tie back to the big picture
Janet Davis. "Experiences with just-in-time teaching in systems and design courses" SIGCSE 2009

Just in Tim Teaching - Blending Active Learning with Web Technology

0 Nifty Assignments

One of the most popular sessions at SIGCSE, which has been running for 11 years! The Nifty Assignments session is about promoting and sharing successful assignment ideas, and more importantly, making the materials available on the web.

Nifty Assignments website from previous SIGCSE conferences - http://nifty.stanford.edu/

Picobot - Zach Dodds (Harvey Mudd College)
http://nifty.stanford.edu/2010/dodds-picobot/
Context - CS1, Assignment 1, Problem 1



Goals
  • hands-on, algorithmic programming challenge
  • meaningful engagement with core CS ideas (ie. program state, locality, conditionals, loops, recursion....)
Picobot is a 2d state machine. It can only sense the NEWS (North, East, South, West). The challenge is to write a set of rules so that Picobot will cover its whole environment from any starting position. Problem two is the same thing, but for a different environment, similar to a maze. Next, the students are challenged to solve these environments in as few rules as possible.

Why do students like Picobot? It breaks expectations twice; accessible and inviting; challenging, but doable.


"Picobot was so frustrating but so satisfying to complete."
- student

********************************************************************
The Game of Pig for CS1
Todd W. Neller (Gettysburg College)
http://cs.gettysburg.edu/projects/pig/
http://cs.gettysburg.edu/~tneller/resources/pig/
http://nifty.stanford.edu/2010/neller-pig/

As educators we are looking for good games/puzzles with simple rules that can be pedagogical treasures. Such as, Towers of Hanoi and mazes.
  • The first player to reach 100 points wins.
  • On a turn, a player rolls a die repeatedly until: (a) the player holds, scoring the sum of the rolls, or (b) a 1 ("pig") is rolled, and there is no score change.
  • A player's decision is always to roll/hold
  • Roll: possibly increase turn total, or lose it
  • Hold: definitely score current turn total
  • Pig is the simplest of a class of jeopardy dice games
  • Hold at 20 - a simple (suboptimal) strategy that maximizes expected points per turn.
  • Good for teaching bottom up development
  • CS1 student hurdle: nested loops
  • Stages (a) Hold at 20 turn: single loop (b) Hold at 20 or goal turn: add score, stop for win (c) Solitaire game: nest turn loop within game loop (d) Two-player game: toggle players/scores, factor out common code.
  • Make code cognitively simple by adding comments FIRST.
  • Monte Carlo Explorations- (a) probability distribution of hold-at-20 turn scores? (b) average turns in solitair game (c) first-player advantage in two-player games
  • Used to teach object oriented concepts - interfaces, gui, etc.
  • Keep pace and end race policy - either score GT 71? Go for Goal! OTHERWISE, hold at 21 + round ((your score - my score)/8)
  • Applications of PIG - Used in AI to teach reinforcement learning; Networking - fun client-server game.
Sound Processing
Daniel Zingaro
University of Toronto
http://nifty.stanford.edu/2010/zingaro-song-generator/
  • Language: Python
  • Students use get_sample(i) to get a sample object at index i.
  • Sample objects have get_value and set_value methods
  • Several filters are used to change the volume of a sound, mix sounds together and add echo to a sound.
  • 10-15 lines of code each filter
  • Students write filters so that (a) they practice writing code with loops, (b) they get familiarized with our media library, (c) they understand how digital sounds are stored and manipulated (d) they can use them in a larger program to generate songs.
  • The song is generated by a "notestring" that specifies the language for songs and includes rests, notes, octaves, etc.
  • Students reuse functions to create songs
"I'm in your crime scenz" - Crime Scene Investigation
David Malan
http://nifty.stanford.edu/2010/malan-csi/
  • Jpegs are uniquely identified by a 4 digit code at the beginning
  • BMP files are 1's and 0's in a grid
  • First assignment: give students a BMP file, open it, read first few bytes and compress/enlarge
  • Take pictures on campus and give students the scenario that you accidentally lost the data.
  • 0xff 0xd8 0xff 0xe0 OR 0xff 0xd8 0xff 0xe1 (starting bytes)
  • Once students recover photographs, it is up to them to find these locations on campus. They have to take photographs themselves at the locations and if they are the first to submit, they win the contest.
***********************************************************************
The Great Encryption Case
Mark Sherriff
http://nifty.stanford.edu/2010/sherriff-encryption-chase/
  • The class covers the basics of encryption in a "scavenger-hunt" like active learning activity.
  • Appropriate for any group which basics of encryption is being taught.
  • little to no coding; more about mathematics and usage of encryption
  • Teams of 4-ish are given a clue packet with a number of starter clues for "clue threads"
  • At the end of each thread, a final piece to the overall chase puzzle is given.
  • The answer to the overall chase puzzle is submitted back for credit.
  • Can do whatever cipers and techniques you want.
  • Promotes active learning outside of the classroom.
  • The strength of this assignment is that students are working together on teams to solve logic problems. This assignment can almost be seen as a reward for students, and yet they still do grasp the material. Further, they are visible around campus as they are working on the assignment, which I have found to be good exposure for computing.
****************************************************************
Chatting Aimlessly (IM)
Thomas Murtagh (Williams College)

  • Students implement a simple IM client that interacts with AOL's IM system.
  • Completed over the course of 2 lab periods inour CS1
  • Explores string processing, loops, and interactions between multiple class definitions
  • Log in: toc2_signon murt74 secretPassword
  • Send a message: toc2_send_im thommurtagh "Still there?"
  • Week 1 - write a simple version of the program, where everything is in one window.
  • Week 2-

Friday, March 12, 2010

0 Rediscovering the Passion, Beauty, Joy, Awe" of Computer Science

This session was originally driven by the computing crisis and discusses what we should do. We should always ask our students what they want to learn & what inspires them.

UCB: The Beauty and Joy of Computing - inst.eecs.berkeley.edu/~cs10
  • - history, limits, future and social implications of computing
  • - apps that changed the world
  • - "how it works" sessions
  • - current events in programming
  • - abstraction, algorithms, data, programming paradigms, concurrency, AI, ..
created a version of Scratch that allows functions -- will be available this summer! yayy!

The first speaker discussed the Exploring Computer Science curriculum.

Leigh Sudol was the second speaker ...
  • There's an app for that (facebook, iphone, android)
  • Is your class a Google story? LOL. great approach. "Computer science is not about creating a program that already exists." If I can google a working example of an assignment, faster than a student can open Eclipse, it shouldn't be an assignment."
  • Things with no right answer. Ex - Greeps, Battleship (students have to write the player for the game, given gui)
  • Teach a bigger CS Concept (embedded breadth) - blackjack teaches machine learning.
  • "Just one piece" of Research - have ur students implement just a small piece of the project
Next speaker was Orit Hazzan (Israel Institute of Technology) who talked about teamwork in undergraduate CS classes. This is something interesting, because teamwork is discouraged in most CS classrooms.

And lastly, Maggie Johnson, who is from Google.

My mind was stuck on Leigh Ann Sudol's comment about is your class a "Google Story?" (So I didn't quite hear much after her presentation, sorry!) In other words, can students find the solution to your programming problems and assignments by a simple Google search? HS Teachers typically teach the AP CS (programming) curriculum and it can be difficult to show students the PBJA of computing, specifically when it deals with current technologies. Where do we find the time to learn it? Teach it? I think that at a basic level, YES - we can create some interesting programming assignments, but new technologies and applications are coming to the forefront on a regular basis. I would love to teach my students how to develop facebook apps, android apps, blackberry apps and the like --- but this takes time and money.

It would be great to have a portal for unique and innovative lesson plans using the new technologies.

I challenged the college/university faculty members in the audience to reach out to high school teachers and share their resources. If your developing a new course, share with us (teachers)! If you have a unit on mobile phone applications, let a teacher sit on your class!!

signing off ... but this was another interesting PBJA session. Yayy!

0 SIGCSE: To do list

  • Read "Exemplary Teachers" report by CSTA - http://www.csta.acm.org/ComputerScienceTeacherCertification/sub/TeacherCertificationRequi.html
  • Review the csprinciples.org website
  • How do I get more involved in CSTA? Start a pgh chapter?
  • Plans for CS Ed week 2010 (week of Dec 10)
  • Finish playing with iPhone application
  • Finish playing with Networking Lab examples
  • Review course textbook options from Pearson

0 Re-imaging the first year of computing

Principles is the 'new' and proposed AP CS course. The Collegeboard, CSTA and lots of other folks are working to develop this curriculum.I found it interesting that they are piloting the curriculum at colleges/universities PRIOR to pilots at high schools. The rationale is that piloting at colleges/universities will show that this is college level material.

Maybe this can be the start of an agreed upon CS0 course for colleges/universities??

Website - www.csprinciples.org

Big Ideas

  1. Computing is a creative human activity that engenders innovation and promotes exploration.

  2. Abstraction reduces information and detail to focus on concepts relevant to understanding and solving problems.

  3. Data and information facilitate the creation of knowledge.

  4. Algorithms are tools for developing and expressing solutions to computational problems.

  5. Programming is a creative process that produces computational artifacts.

  6. Digital devices, systems, and the networks that interconnect them enable and foster computational approaches to solving problems.

  7. Computing enables innovation in other fields including science, social science, humanities, arts, medicine, engineering, and business.

Pilot studies
10 colleges universities
5 high schools (possible increase, as many as 10)

Goal: Have this new curriculum taught in 10,000 schools by 2015.

0 Surfacing Computer Science in STEM Education

Susan H. Rodger (Duke), Mark Stehlik (CMU), Leigh Ann Sudol (CMU), Chris Stephenson (CSTA), John White (ACM)

Computing in the Core
raise the national profile of cs education in K-12 and work toward its inclusion in the K-12 education landscape.
Partners - ACM, CSTA, CRA, NCWIT, ABI, Google, Microsoft, Intel

CS Education Week - www.csedweek.org (December 5-11, 2010)
- US House of Representatives passed a resolution (Vernon Ehlers (R-MI) and Jared Polis (D-CO).

CSTA's Leadership Cohort (Stephenson)
- We need to work bottom up and top down, if we want change.
- What is CS?
- Are there courses available to students?
- Who can teach computer science?
- Teachers are the true grass roots
- Leadership Cohort- 71 teacher leaders in 46 states dedicated to achieving sustained improvements to CS Ed
- Advocacy resources on the CSTA website
- Ensuring Exemplary Teacher (white paper) - csta.acm.org/Commincations/sub/Documents.html
- CSTA National Surveys- csta.acm.org/Research/sub/CSTAResearch.html

Standards Alignment (Sudol)
Standards "point towards a destination, and give us a road map of how to get there."
- The standards that define CS, are missing in the state standards.
- 27 states do not have a technology graduation requirement
- 34 states, CS is an elective
- Releasing a report at the end of summer.
- CS is mostly being taught as a series of skills and capabilities where computers and computer technology are emphasized.
- Little consistency between states

Thursday, March 11, 2010

0 Comparing Alice, Greenfoot and Scratch

I thought this session deserved its own blog entry :) Definitely an interesting topic and something worthy of discussion. At the moment, unless I am convinced otherwise, I plan to use Scratch for my Pre-AP class at SciTech.

Greenfoot
- higher learning curve vs scratch, alice
- can do much more because you are using java
- age: 14+
- scales as large as Java
- only limited by output (2d graphics)
- open source, Smalltalk

Scratch
- doesn't have classes
- ages 8-15
- over 900 uploaded projects
- concerns about plagarism, from website

Alice
- originally intended for college
- age: 5th grade
- open source and available for developers!

At the end of it all, each platform has a different target market. I think that Greenfoot is better for high school students, in a quarter or semester long course. So, YES - I shifted and plan to explore Greenfoot more. I think that my students will find Greenfoot more of a real and challenging programming language. Wish we would of talked about more of the specific differences between the different platforms. Looking forward to playing around with Greenfoot soon.

0 SIGCSE - PM Sessions - Concept Inventories, Web Services for CS1

Developing a Validated Assesment of Fundamental CS1 Concepts
Allison Elliott Tew and Mark Guzdial, Georgia Tech (allison@cc.gatech.edu)
  • Educators need to be able to measure student learning.
  • Related studies - McCracken, et al 2001 (explored students basic programming abilities using simple calculator program); Lister, et al, 2004 (Assessed student code comprehension and tacing ability using multiple choice questions about arrays & iteration); Tew, et al, 2005 (Investigated impact of different CS1 courses on students' conceptual knowledge at the end of the course using MCQs)
  • Content validity - are the topics a reasonable operationalization of the area
  • Construct validity - accurately measuring knowledge of a topic.
  • We currently do not have the tools to assess CS1 concepts. Why? We are a young field.
  • Method for developing an assessment - define content, expert review of test specification, build test bank of questions, pilot questions, establish validity, establish reliability.
  • (From above bullet) We need to add step 4: Verify language independence
  • Analyzing widely adopted textbooks, proved unsuccessful. Textbooks covered a greater range of topics than what is covered in a CS1 course.
List of topics
  1. Fundamentals (vars, assignment .... )
  2. Logical operators
  3. Selection statment
  4. Definite loops (for)
  5. Indefinite loops (while)
  6. Arrays
  7. Function/method parameters
  8. Function/method return values
  9. Recursion
  10. Object oriented basics
  • 3 types of questions for each concept - definition, tracing, code completion.
  • two versions of each question
***********************************************************
A Web Services approach to CS1
Illinois State University
  • Statistically significant improvement in final exam performance and course grade; but grading bias and other concerns.
  • Hoping to get industry support
  • Where do you find these web services? Web services often disappear. You don't have control.
  • They are building a library of their own web services.
************************************************************
Student Misconceptions of Programming
Kaczmarcyk, Petrick, East, Herman (Univ of San Diego, Northern Iowa, Illinois at Urbana)

  • focuses on concepts that are important and difficult
  • concrete & immediately actionable
  • not comprehensive - short!
  • 32 important & difficult concepts in CS1 - Goldman et al. in press; Goldman et al. 2008
  • Their goal was to confirm (or not) Delphi results
  • Identify widely held misconceptions
  • Used modified think-aloud interviews, problems both code & non code based
  • 89 consisten, reliably repeated misconceptions: memory usage & allocation, array construction, primitive confusion
  • Validated (with 2 exceptions) the Delphi results - basic loop operations stump many students, poor to NO conception of objects; NO conception of inheritance
  • no conception == no misconceptions
  • many of the problems were caused because the students applied a real world concept to a problem. "all of the meats will be in the meats array, and all of the cheese will automatically be in the cheese array." WRONG.

0 SIGCSE - AM Sessions - Curriculum & Media Computation

Expanding the Frontiers of Computer Science: Designing a Curriculum to Reflect a Diverse Field
Mehran Sahami, Alex Aiken, Julie Zelenski - Stanford University

  • 2008-09 redesigned curriculum
  • First year, 40% increase
  • This year, additional 20% increase
  • Students should be explicitly made aware of the options in CS, by providing context for computing
  • A lot of different areas over the past 3 years that have developed the "footprint" of CS. Including databases, HCI, security, Machine Learning, Networking and Comp. Bio
  • Students take a track - gives them more depth. Makes the "footprint" larger.
  • The core material must be streamlined.
  • What - revised curricular structure (core) - theory, systems (each has 3 classes)
  • Tracks explicitly show available options in CS, helps eliminate image of CS as "just programming."
  • Still provides significant programming
  • Initial set of track areas (ai, theory, systems, hci, graphics, information, bio computation ...)
  • A track is usually 4-5 classes; includes 2-4 electives.
This was an interesting talk, packed to capacity. Tracks are not anything new, but i think this this paper discusses the success and broader impacts of their program. I think that in order to attract a more diverse group of students in CS, we should move towards the track model.

**********************************************************************
Variations on a Theme: Role of Media in Motivating Computing Education
  • How can we use media as a tool to teach computation?
  • In the context of media, the same concepts transfer over.
  • Processing - a java based language (http://processing.org/
  • Teach computing using art
  • Students feel that they understand how programs like Photoshop work, after learning how to manipulate pixels using programming.
  • Obamicon.me - how does this program work? Excellent example of a computer program manipulating images.
  • Downsides: teachers have to spend more time to analyze assignments (no auto grading); ugly code, projects will "blow" their quota!, challenging to come up with exams or assignments
  • Javabat (http://codingbat.com/) - online code practice website.
  • Students can become "addicted" or stuck to the media computation.
  • How is this content transferable to an Object oriented language?

Wednesday, March 10, 2010

0 Scribbler/Myro Personal Robots in Education

This workshop used the Scribbler Robot with Myro Hardware and Python.




This bot is comparable to the Finch robot (http://csbots.wetpaint.com/page/Finch) except, it has additional capabilities such as,

  • can use game controller, whereas the Finch robot can be used as a game controller
  • fully developed curriculum available on wiki page
  • does not teach object oriented programming concepts (not sure if you can teach OOP concepts using Finch)
  • color camera
  • has area to hold a marker (drawing capabilities)
The Scribbler website is - http://www.roboteducation.org

It is developed by the Institute for Personal Robots in Education - a joint effort between Georgia Tech and Bryn Mawr College.
One thing to note is that the Finch robot sells for about $100, while the Scribbler robot costs about $200.

Excellent robot, IMO for teaching programming using a robotic interface. The decision ultimately, is how much $$ you have to spend per student. This is a particular obstacle in K-12 classrooms.

***********************************
Amazon discount code (20% off bot kit)
code: IPREEDUI
***********************************

0 SIGCSE 2010 - Milwaukee

Just arrived at SIGCSE (ACM's Special Interest Group in Computer Science Education) in Milwaukee. Its rainy and cold, but good thing the hotel is connected to the conference center. Hey - maybe this time I will actually get out to see the city (doubt it)!

Looking forward to several workshops and papers/panels:
1. Introducing Computing with Personal Robots
2. An Audacious iPhone workshop
3. Identifying student misconceptions in programming
4. Teaching the principles of the hacker to undergraduates
5. What everyone needs to know about computing
6. Panel: Comparing Alice, Greenfoot and Scratch

and much more .... I will try to blog daily.

Tonya