Download presentation
Presentation is loading. Please wait.
1
COMPSCI 747 Historical Overview
2
Early years Seymour Papert Mindstorms (1980) Lego Mindstorms
Developed Logo (1967) Mindstorms (1980) Lego Mindstorms
3
By Valiant Technology Ltd. , CC BY-SA 3. 0, https://commons. wikimedia
4
Visual Programming Languages
Text-based languages require precision of language Spelling mistakes cause syntax errors Hard for young children Visual programming languages are easier to use Allow children to engage in programming tasks Interface can ensure every program is syntactically correct
5
Alice – mid to late 1990s By Carnegie Mellon University - Captured from Alice 2.0 on Windows XP, Alice 2 End User License Agreement,
6
Developed 2002, released 2005, web-based 2013
By scratch.mit.edu, CC BY-SA 3.0,
7
Shifting focus of CS Education research
Novice programmers are one major focus Online tools that support teaching practices – assessment Learning analytics – analysing student data More emphasis now on K-12 curriculum Computational thinking Gender Equity
8
The Rainfall Problem Elliot Soloway (1982)
Write a program that repeatedly reads in positive integers, until it reads the integer After seeing 99999, it should print out the average. Most students struggled to produce a correct solution. Most subsequent studies have confirmed these findings.
9
Studying the Novice programmer
Edited by Elliot Soloway and James Spohrer (1989) programming constructs planning misconceptions errors Research in 1980s suggested that students struggled most with planning programs.
10
Can students write code?
McCracken et al. (2001) ITiCSE working group Multi-institutional, multi-national study of program writing Context was CS1 / CS2 courses Average score was 23/110 “students did much more poorly than we expected” Tasks were: Program an RPN calculator Programming an infix calculator without precedence Programing an infix calculation with parentheses to indicate precedence
11
Can students understand code?
Lister et al. (2004) “Leeds Study” Multi-institutional, multi-national Code contains arrays, loops, conditions Multiple choice answers What is the output? Many students couldn’t read code and choose the correct output Assume reading is a pre-requisite for writing code – perhaps this explains the McCracken study?
12
Can students design software?
Design a “Super Alarm Clock” Your system will need to: • Allow a student to set an alarm to wake themselves up. • Allow a student to set an alarm to remind themselves to go to sleep. • Record when a student tells the system that they are about to go to sleep. • Record when a student tells the system that they have woken up, and whether it is due to an alarm or not (within 2 minutes of an alarm going off). • Make recommendations as to when a student needs to go to sleep. This should include "yellow alerts" when the student will need sleep soon, and "red alerts" when they need to sleep now. • Store the collected data in a server or database for later analysis by researchers. The server/database system (which will also trigger the yellow/red alerts) will be designed and implemented by another team. You should, however, indicate in your design the behaviour you expect from the back-end system. • Report students who are becoming dangerously sleep-deprived to someone who cares about them (their mother?). This is indicated by a student being given three “red alerts" in a row. • Provide reports to a student showing their sleep patterns over time, allowing them to see how often they have ignored alarms, and to identify clusters of dangerous, or beneficial, sleep behaviour. Eckerdal et al. (2006) Multi-institutional, multi-national Focused on graduating students Most could not develop a design 21% nothing 41% added insignificant amount to existing description and no design 29% gave partial solution 9% produced reasonable designs
13
Code writing and code reading
BRACElet project (Whalley et al.) Relationships between code writing, code tracing and code explaining Possible hierarchy of skills Code tracing Code explaining (Explain in plain English) Code writing
14
How do students learn? Teague and Lister (2014)
Neo-Piagetian theory Swapping contents of variables Rotating contents of variables Rotating contents of an array Reversing operations Pre-operational – trace code, but focus on details Concrete operational – reason about code, use diagrams.
15
Longitudinal study of a novice programmer
Teague and Lister (2014) Series of “think aloud” sessions Multiple sessions within first semester - follow-up three semesters later Results Exhibited mostly sensorimotor reasoning, then pre-operational reasoning. Follow up showed concrete operational reasoning Conclusion: Learning to program may take longer than we think.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.