The automated tutoring of introductory computer programming
Communications of the ACM
Learning to program = learning to construct mechanisms and explanations
Communications of the ACM
Structure and interpretation of computer programs
Structure and interpretation of computer programs
The case for Modula-2 in CS1 and CS2
SIGCSE '88 Proceedings of the nineteenth SIGCSE technical symposium on Computer science education
A debate on teaching computing science
Communications of the ACM
C in education and software engineering
ACM SIGCSE Bulletin
Ada experience in the undergraduate curriculum
Communications of the ACM
A methodology for building application-specific visualizations of parallel programs
Journal of Parallel and Distributed Computing - Special issue on tools and methods for visualization of parallel systems and computations
Using C in CS1: evaluating the Stanford experience
SIGCSE '93 Proceedings of the twenty-fourth SIGCSE technical symposium on Computer science education
The “procedures early” approach in CS 1: a heresy
SIGCSE '93 Proceedings of the twenty-fourth SIGCSE technical symposium on Computer science education
The first programming paradigm and language dilemma
SIGCSE '96 Proceedings of the twenty-seventh SIGCSE technical symposium on Computer science education
DDD—a free graphical front-end for UNIX debuggers
ACM SIGPLAN Notices
Using student-built algorithm animations as learning aids
SIGCSE '97 Proceedings of the twenty-eighth SIGCSE technical symposium on Computer science education
Constructivism in computer science education
SIGCSE '98 Proceedings of the twenty-ninth SIGCSE technical symposium on Computer science education
Java as a teaching language—opportunities, pitfalls and solutions
ACSE '98 Proceedings of the 3rd Australasian conference on Computer science education
A comparison of Ada and Java as a foundation teaching language
ACM SIGAda Ada Letters
Java as first programming language: a critical evaluation
ACM SIGCSE Bulletin
ACM SIGCSE Bulletin
Instructions and descriptions: some cognitive aspects of programming and similar activities
AVI '00 Proceedings of the working conference on Advanced visual interfaces
Letters to the editor: go to statement considered harmful
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
CS1: perspectives on programming languages and the breadth-first approach
CCSC '00 Proceedings of the fifth annual CCSC northeastern conference on The journal of computing in small colleges
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
Teaching CS1 with karel the robot in Java
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
Assessing the ripple effect of CS1 language choice
CCSC '00 Proceedings of the fourteenth annual consortium on Small Colleges Southeastern conference
Fully automatic assessment of programming exercises
Proceedings of the 6th annual conference on Innovation and technology in computer science education
Fortran and the first course in computer science
ACM SIGCSE Bulletin
Karel the Robot: A Gentle Introduction to the Art of Programming
Karel the Robot: A Gentle Introduction to the Art of Programming
Karel++: A Gentle Introduction to the Art of Object-Oriented Programming
Karel++: A Gentle Introduction to the Art of Object-Oriented Programming
DrJava: a lightweight pedagogic environment for Java
SIGCSE '02 Proceedings of the 33rd SIGCSE technical symposium on Computer science education
Jeroo: a tool for introducing object-oriented programming
SIGCSE '03 Proceedings of the 34th SIGCSE technical symposium on Computer science education
Back to Pascal: retro but not backwards
Journal of Computing Sciences in Colleges
Developing intelligent programming tutors for novice programmers
ACM SIGCSE Bulletin
Exploring the role of visualization and engagement in computer science education
Working group reports from ITiCSE on Innovation and technology in computer science education
What should we teach in an introductory programming course?
SIGCSE '74 Proceedings of the fourth SIGCSE technical symposium on Computer science education
Seven Deadly Sins of Introductory Programming Language Design
SEEP '96 Proceedings of the 1996 International Conference on Software Engineering: Education and Practice (SE:EP '96)
VL '00 Proceedings of the 2000 IEEE International Symposium on Visual Languages (VL'00)
Introducing unit testing with BlueJ
Proceedings of the 8th annual conference on Innovation and technology in computer science education
Improving the usability of Eclipse for novice programmers
eclipse '03 Proceedings of the 2003 OOPSLA workshop on eclipse technology eXchange
CS educational research: a meta-analysis of SIGCSE technical symposium proceedings
Proceedings of the 35th SIGCSE technical symposium on Computer science education
Components-first approaches to CS1/CS2: principles and practice
Proceedings of the 35th SIGCSE technical symposium on Computer science education
A concepts-first introduction to computer science
Proceedings of the 35th SIGCSE technical symposium on Computer science education
Programming in context: a model-first approach to CS1
Proceedings of the 35th SIGCSE technical symposium on Computer science education
Introductory programming: what's happening today and will there be any students to teach tomorrow?
ACE '04 Proceedings of the Sixth Australasian Conference on Computing Education - Volume 30
Visualizing programs with Jeliot 3
Proceedings of the working conference on Advanced visual interfaces
The introductory programming course in computer science: ten principles
SIGCSE '78 Papers of the SIGCSE/CSA technical symposium on Computer science education
Automated assessment of GUI programs using JEWL
Proceedings of the 9th annual SIGCSE conference on Innovation and technology in computer science education
greenfoot: combining object visualisation with interaction
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Improving student performance by evaluating how well students test their own programs
Journal on Educational Resources in Computing (JERIC)
On understanding the statics and dynamics of object-oriented programs
Proceedings of the 36th SIGCSE technical symposium on Computer science education
RAPTOR: introducing programming to non-majors with flowcharts
Journal of Computing Sciences in Colleges
ACM Computing Surveys (CSUR)
Evaluating assessments of novice programming environments
Proceedings of the first international workshop on Computing education research
JHAVÉ: Supporting Algorithm Visualization
IEEE Computer Graphics and Applications
Green: a customizable UML class diagram plug-in for eclipse
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Constructing a core literature for computing education research
ACM SIGCSE Bulletin
A tool for programming learning with pedagogical patterns
eclipse '05 Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchange
Proceedings of the 37th SIGCSE technical symposium on Computer science education
Proceedings of the 37th SIGCSE technical symposium on Computer science education
Practice what you preach: full separation of concerns in CS1/CS2
Proceedings of the 37th SIGCSE technical symposium on Computer science education
Experimental evaluation of animated-verifying object viewers for Java
SoftVis '06 Proceedings of the 2006 ACM symposium on Software visualization
An introduction to object-oriented programming with a didactic microworld: objectKarel
Computers & Education
The boss online submission and assessment system
Journal on Educational Resources in Computing (JERIC)
Automatic test-based assessment of programming: A review
Journal on Educational Resources in Computing (JERIC)
Automated assessment and experiences of teaching programming
Journal on Educational Resources in Computing (JERIC)
CS1 programming language options
Journal of Computing Sciences in Colleges
A computing perspective on the Bologna process
ITiCSE-WGR '06 Working group reports on ITiCSE on Innovation and technology in computer science education
Is abstraction the key to computing?
Communications of the ACM
Fundamental concepts of CS1: procedural vs. object oriented paradigm - a case study
Proceedings of the 12th annual SIGCSE conference on Innovation and technology in computer science education
ALOHA - a grading tool for semi-automatic assessment of mass programming courses
Proceedings of the 6th Baltic Sea conference on Computing education research: Koli Calling 2006
IEEE Transactions on Education
ICER '08 Proceedings of the Fourth international Workshop on Computing Education Research
Python CS1 as preparation for C++ CS2
Proceedings of the 40th ACM technical symposium on Computer science education
Why are we still here?: experiences of successful women in computing
ITiCSE '09 Proceedings of the 14th annual ACM SIGCSE conference on Innovation and technology in computer science education
Empirical comparison of objects-first and objects-later
ICER '09 Proceedings of the fifth international workshop on Computing education research workshop
Analysis of research into the teaching and learning of programming
ICER '09 Proceedings of the fifth international workshop on Computing education research workshop
PatternCoder: A Programming Support Tool for Learning Binary Class Associations and Design Patterns
ACM Transactions on Computing Education (TOCE)
PatternCoder: a programming support tool for learning binary class associations and design patterns
Koli '08 Proceedings of the 8th International Conference on Computing Education Research
Computer science education in Peru: a new kind of monster?
ACM SIGCSE Bulletin
On the implementation of self-assessment in an introductory programming course
ACM SIGCSE Bulletin
Characterizing research in computing education: a preliminary analysis of the literature
Proceedings of the Sixth international workshop on Computing education research
Have we missed something?: identifying missing types of research in computing education
Proceedings of the Sixth international workshop on Computing education research
Enjoying Python, processing, and Java in CS1
ACM Inroads
Extreme apprenticeship method in teaching programming for beginners
Proceedings of the 42nd ACM technical symposium on Computer science education
Proceedings of the 42nd ACM technical symposium on Computer science education
Measuring the effectiveness of error messages designed for novice programmers
Proceedings of the 42nd ACM technical symposium on Computer science education
Extreme apprenticeship method: key practices and upward scalability
Proceedings of the 16th annual joint conference on Innovation and technology in computer science education
Management, structures and tools to scale up personal advising in large programming courses
Proceedings of the 2011 conference on Information technology education
Implementing IT0/CS0 with scratch, app inventor forandroid, and lego mindstorms
Proceedings of the 2011 conference on Information technology education
Mind your language: on novices' interactions with error messages
Proceedings of the 10th SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software
Game-based concept visualization for learning programming
MTDL '11 Proceedings of the third international ACM workshop on Multimedia technologies for distance learning
mJeliot: a tool for enhanced interactivity in programming instruction
Proceedings of the 11th Koli Calling International Conference on Computing Education Research
Evaluation of a hands-on approach to learning mobile and embedded programming
International Journal of Mobile Learning and Organisation
Introducing programming logic in a one-credit course
Proceedings of the 50th Annual Southeast Regional Conference
A solution to support student learning of programming
Proceedings of the Workshop on Open Source and Design of Communication
A canonicalizing model for building programming tutors
ITS'12 Proceedings of the 11th international conference on Intelligent Tutoring Systems
On the design of effective learning materials for supporting self-directed learning of programming
Proceedings of the 12th Koli Calling International Conference on Computing Education Research
Addressing teachers' concerns about the Prog&Play serious game with context adaptation
International Journal of Learning Technology
Seeking grace: a new object-oriented language for novices
Proceeding of the 44th ACM technical symposium on Computer science education
The effectiveness of live-coding to teach introductory programming
Proceeding of the 44th ACM technical symposium on Computer science education
Software verification and graph similarity for automated evaluation of students' assignments
Information and Software Technology
I can do text analytics!: designing development tools for novice developers
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Teaching novice programming using goals and plans in a visual notation
ACE '12 Proceedings of the Fourteenth Australasian Computing Education Conference - Volume 123
POPT: a problem-oriented programming and testing approach for novice students
Proceedings of the 2013 International Conference on Software Engineering
Towards a new massive multiplayer online role playing game for introductory programming
Proceedings of the 6th Balkan Conference in Informatics
A Review of Generic Program Visualization Systems for Introductory Programming Education
ACM Transactions on Computing Education (TOCE)
Some prospective approaches for the shift of programming paradigms
Proceedings of the 2013 International Conference on Information Systems and Design of Communication
Does language choice influence the effectiveness of online introductory programming courses?
Proceedings of the 14th annual ACM SIGITE conference on Information technology education
Getting to know computer science freshmen
Proceedings of the 13th Koli Calling International Conference on Computing Education Research
Proceedings of the 25th Australian Computer-Human Interaction Conference: Augmentation, Application, Innovation, Collaboration
Hi-index | 0.00 |
Three decades of active research on the teaching of introductory programming has had limited effect on classroom practice. Although relevant research exists across several disciplines including education and cognitive science, disciplinary differences have made this material inaccessible to many computing educators. Furthermore, computer science instructors have not had access to a comprehensive survey of research in this area. This paper collects and classifies this literature, identifies important work and mediates it to computing educators and professional bodies. We identify research that gives well-supported advice to computing academics teaching introductory programming. Limitations and areas of incomplete coverage of existing research efforts are also identified. The analysis applies publication and research quality metrics developed by a previous ITiCSE working group [74].