Showing posts with label sigcse. Show all posts
Showing posts with label sigcse. Show all posts

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

Thursday, April 2, 2009

0 Tele-immersion

Tele-immersion, the next generation of communication and collaboration technologies

Ruzena Bajcsy
EECS Department, University of California Berkley

Dr. Bajcsy was the plenary speaker during lunch. She discussed her work in tele-immersion. In her work with tele-immersion, she is using video cameras and technology to capture two people at different locations and allow them to visually communicate. In the examples that she showed, two dancers, in two different parts of the country, in real-time, are able to 'dance together' by viewing the other person on a computer monitor, in 3D.

Applications include: scientific collaboration, teaching & training and the arts.

Saturday, March 7, 2009

0 Analyzing Programming Projects

Stuart Hanson, University of Wisconsin - Parkside

"This paper presents the results of student surveys administered after each programming project for multiple sections of two courses: CS2, and Data Structures and Algorithms." They "analyze the data in terms of engagement, frustration and niftiness (from abstract)."

The survey was administered on the due date of each assignment, 4 semesters of data for CS1 and CS2, 3 semesters of data of Data Structures and Algorithms and CS0 data from another institution. Class sizes varied from a low of 6 to a high of 30.

Engagement and frustration
positive correlation in CS2, small negative correlation between engagement and frustration means (the more challenge, the less frustration) and no clear correlation for this difference.

Niftiness = engagement - frustration
- distinguishes nicely among projects with large differences in two values.
-
flawed in that it doesn't distinguish among projects where engagement and frustration are approximately equal.

Worst assignments
- all were "borrowed"
- all had instructor related problems
  1. bad data set
  2. major writing component that the instructor did not adequately discuss.
  3. assumed (java i/o) background that students did not have.
I would also like to add to the list: Uniquely designed problems/assignments that were not tested by the instructor or TA. These ultimately end up being a 'rollercoaster' ride for the students with a negative thrill factor ...

Refining assignments work
  • worst assignments were all first timers
  • best assignments were all old timers

0 Make IT Matter!

This afternoon lunch keynote was by Gregory Abowd at Georgia Tech. "Gregory D. Abowd (pronounced AY-bowd) is the Distinguished Professor in the College of Computing at Georgia Tech. His research interests lie in the intersection between Software Engineering and Human-Computer Interaction. Specifically, Dr. Abowd is interested in ubiquitous computing (ubicomp) and the research issues involved in building and evaluating ubicomp applications that impact our everyday lives. (from his website)"

He first described a few projects his students were working on:

CareLog
- collecting rich behaviorial data in the unstructured natural environment; retroactively saving important video
- trying to determine the reason for 'bad' behavior to create a behavior intervention plan. Schools cannot afford a behavior specialist ..... so how can we use computer technology? You put cameras in the room (activated by a human cue) and after-the fact capture and annotate the video.

Video capture and annotation (by human) to support richer reflection on behavior that a group of people can reflect on. Allows you to infer or make decisions about what is going on and monitor particular interventions.

Technologies for Early Detection
If diagnosed early enough, the impact of therapies can have a greater impact. The CDS has a campaign - "Learn the signs Act Early." First diagnosis are made several years after the first warning signs so the goal of this project is to help parents see and report warning signs. How to address parent reporting & direct observation? How can parents more accurately track the developmental progress of their child/ren (in a natural way)? For example, most parents keep a baby calendar or smart baby monitor.

Can the objects a child plays with inform you about the level of play of that particular child? (Instrumental objects)

Using play interactions between child and parent, what behaviors can we observe? (Smart Video filtering)

Technology & Health
Good news, if you get hit by a bus, you'd want to be in the USA, but if you have any other kind of chronic condition, we are 'embarrassingly' behind the world. In lower socio-economic status(SES) communities, pediatric asthma is found in up to 1 in 4 people for lower SES communities. One approach he discussed is automated monitoring of lung capacity on your laptop or cellphone (Shwetak Patel). Ultimately, he made the argument that using a cellphone is much more accesible than the $30 monitors on the market.

Interesting, huh...

Technology & Sustainability
Lots of scientists are doing work on 'sensing.' The sensors are embedded in places to learn human behaviors. Dr. Abowd argued that it is not practical to purchase 100 sensors for your home. "Lets aspire to a more 'ubiquitous' approach." Two current approaches he described were distributed direct sensing (DDS) and Infrastructure Mediated Sensing (IMS). For example, when you flick a switch, you cause a noise pattern to be caused along the line. You can sense the noise pattern by detecting the voltage transient along the power line. If you place a sensor on the pattern line, can you determine the different light switches being turned on? YES. This idea can be applied to other domains. Noise is being used as a signal to detect behavior. When we think about 'green' computing, how do we make these technologies scale so that it can be used everywhere.

Activity recognition = sensing + perception

Conservation = sensing + feedback + behavior change


At the end, Dr. Abowd made an important point about diversity in computing. That the students are doing work related to their environments and issues. For example, he asked the question 'do you see a trend here?' He showed pictures of students and their research areas. Under the topic "African Americans and nutrition" of the about 6 pictures displayed, there were about 4 African American (primarily women) who were pictured.

This was a great keynote!!!


Friday, March 6, 2009

0 Programming & Problem Solving through Think-Alouds

"Teaching programming and problem solving to CS2 students using think-alouds."
Naveed Arshad, Lahore Uniersity of Management Sciences, Pakistan

In this project, "students learn the skill of problem solving by closely observing an experienced programmer." They found this approach to be "extremely effective ... particularly for female students."

After ten weeks, students were asked to complete an anonymous survey about problem solving ability and effectiveness of the pedagogical instruments. 120 students (30 female).
  • 61 percent - agree comfortable solving problems
  • The effectiveness of instruction varied based on several factors including gender and agree/disagree to statement.
  • ....
What is think-aloud problem solving? Whatever comes to your task while performing this task, say it out loud. This practice demonstrates the thought process that is involved in problem solving.

Advantages
  1. students learn a variety of ways to solve programming problems;
  2. code writing
  3. (and something else ...)
Conclusions and future work
  • Think-aloud is a powerful pedagogical approach
  • has to be used with other pedagogical tools
  • choice of person who performs think-aloud problem solving is critical

0 Reflecting on Programming

Using Programming to Help Students Understand the Value of Diversity
Michael Wick and Paul J Wagner, University of Wisconsin

"At a predominately-white undergraduate university, how can we instill in students an appreciation for the value of diversity and do so in a way that encourages students to seek inclusiveness?"

From my experience, diversity, depending on what factors you consider can be found or non existent in most computing departments. We are all aware women, Latino/as and African Americans are severely underrepresented in computing fields, but in terms of cultural diversity some may argue that it can be found in computing (in comparison to other departments). In the case of my department, Americans are a minority? Can we ever (expect to) truly achieve diversity, on all levels?

Administered and assessed in an intro to programming in C++ course. The basic idea is to solve optimization problems using a genetic algorithm. They administered a pre and post test to participants.

The project: trivial application - maximize the sum of n numbers using a genetic algorithm.

Ummm...what do you think about teaching genetic algorithms to CS1 students? Don't they already have a steep enough learning curve with programming?

Results
  • no control group available
  • multitude of uncontrolled factors
  • ...
I'm not convinced this is a good way to teach programming. While I do think it is important to teach students the importance of diversity, possibly another approach is better ....



0 Behaviors of novice programmers

I always find it interesting to learn about novice programming. Where do their misconceptions lie? What is the best approach for teaching novice programmers? This session "reports on an NSF funded research project investigating the development practices of students in introductory programming courses." The authors use an extension of BlueJ to "capture events associated with program development (from abstract)." Over 55,000 compilation events from over 110 students. The data is collected through ClockIt - a web-based interface used to view the data (programming behavior of students) in the form of charts, graphs and tables. With ClockIt the instructor (or TA) can view statistics per student, such as the number of compiles, types of errors and how long they work on the project.

Authors: James B. Fenwick Jr., Cindy Norris, Frank Barry, Josh Rountree, Cole Spicer and Scott Cheek (Appalachian State University).

Frequency of compile errors
  • 6 errors were 60% of all errors (similar to other research ie. Judad)
  • missing semicolon (#3)
  • unknown variable (#1)
  • Bracket expected (#4)
  • Illegal start of expression (?)
Time between compilations - 10 seconds (about 31%)

The results of this study almost replicate Judad's study (2005).

Macro Behavior Views (quantitative evidence how programming behavior vs success)
  • Can we track the success of the student based upon when they started on the assignment? (start date vs. success/grade)
  • Incremental work vs. success/grade - if students work on the project incremental, then they will get a better grade.
  • Amount of time vs grade - students that spend more time on the assignment do much better; but students who do poor actually commit a lot of time to the assignment.
  • Can we measure the effort? Event density vs. Grade - There are students that are not succeeding that are really trying - A average and F average have similar event density. B-average students have higher event density than all others.
  • What makes a student succeed?
Gathering quantitative evidence of novice programmer behavior; confirms Judad's results; affirms anecdotal advice.

They are looking for more people to use the data loggers ....

0 Wu's Castle

Experimental evaluation of an educational game for improved learning in introductory computing (Michael Eagle and Tiffany Barnes, UNC at Charlotte).

The objective of Wu's Castle is to create an army of snowmen using loops and arrays. The students program the" loops and arrays in an interactive, visual way. The game provides immediate feedback and helps students visualize code execution in a safe environment (from abstract)." The students also receive positive or negative feedback based on their performance.

Results (from pre to post test):
  1. Students volunteered (may be biased)
  2. Final exam was 54% higher
  3. Average scores on post test were 66% higher than the pretest
  4. Large effect size cohen's d > 1
Experiment - crossover or switching replications design and stratified sample. Group 1 played the game first then did traditional assignment, Group 2 did opposite. The experimental group did significantly better (as expected). Playing the game first was able to attract and maintain the students attention and help them to understand the code much better.

Gamers vs. non-gamers - gamers actually started of at a lower level that the other students, but (at the end) performed almost the same. Conclusion, students have higher learning gains when doing both the traditional assignment and Wu's Castle.

Is this game available online or publicly?

0 CS Unplugged Design Patterns

CS Unplugged (www.csunplugged.org) is a set of activities that " teaches principles of computer science such as binary numbers, algorithms and data compression through games and puzzles that use cards, string, crayons and lots of running around (csunplugged website)." The activities are available on the website and are an excellent way to introduce (excite) students about computer science without using a computer and teach fundamental concepts.

One of my research goals is to develop activities to teach K-12 computer science; which I've been doing through TLI. So I'm always interested to learn strategies and techniques to help me accomplish this goal.

CS Unplugged Design Pattern (found a paper online on the csunplugged website).

Identify improvements to existing ones --> Need some "design guidelines" --> Design patterns in CS (J.Copliens pattern template).

Coplien's design patterns are used in software engineering (and other areas)

Solution
  1. choose a concept from CS to communicate
  2. identify the key elements
  3. consider what games, puzzles, toys or common objects use similar concepts/elements
  4. turn it into a challenge
  5. evaluate the activity with students
  6. refine the activity based on the evaluation
  7. publish the activity, with information on obtaining resources with an explanation of the relevance of the concepts being demonstrated.

0 Scaffolded Intro to Dynamic Website Development

A Scaffolded Introduction to Dynamic Website Development for Female High School Students -wConnect is a project that is "building an online community of women in computer and information science at Penn State University. The workshops are designed by women for high school girls, with hands-on construction of dynamic web sites." The undergraduate girls develop and deliver the material to high school girls. The results are online (http://wconnect.ist.psu.edu/). The girls are using a pre-build java-based database called bridgetools to develop the websites (by Jack Carroll). The workshop included 56 girls, across four sessions, mostly rising juniors and seniors. Each session was 90 minutes and they completed a pre and post survey. The pages created varied from 1-6, average was 2.72.

Comprehension had mixed results:
- 75% could explain difference in query specification
- Only 50% understood filters

Last year, we introduced TLI students to databases using two approaches: (1) creating a YouTube listing of their favorite videos and (2) Creating a personal blog. Students were given a simple interface (ie. template pages so they don't have to learn php, etc.) Most students successfully completed each project successfully, but I think that starting with something similar that wConnect uses to teach the girls querying and filters will be useful. Databases and dynamically generating web pages is an interesting topic for students, but tools to teach these topics are very much needed.