Teaching object-oriented programming is more then teaching object-oriented programming languages
on ECOOP '88 (European Conference on Object-Oriented Programming)
Symbolic architectures for cognition
Foundations of cognitive science
Problem solving and cognitive skill acquisition
Foundations of cognitive science
Object-oriented programming in the BETA programming language
Object-oriented programming in the BETA programming language
Strategic directions in computer science education
ACM Computing Surveys (CSUR) - Special ACM 50th-anniversary issue: strategic directions in computing research
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Avoiding object misconceptions
SIGCSE '97 Proceedings of the twenty-eighth SIGCSE technical symposium on Computer science education
A philosophy and example of CS-1 programming projects
SIGCSE '90 Proceedings of the twenty-first SIGCSE technical symposium on Computer science education
Proceedings of the thirty-first SIGCSE technical symposium on Computer science education
Optimising student cognitive load in computer education
ACSE '00 Proceedings of the Australasian conference on Computing education
Technical opinion: Hello, world considered harmful
Communications of the ACM
Applying cognitive load theory to the design of web-based instruction
IPCC/SIGDOC '00 Proceedings of IEEE professional communication society international professional communication conference and Proceedings of the 18th annual ACM international conference on Computer documentation: technology & teamwork
Agile Software Development: Principles, Patterns, and Practices
Agile Software Development: Principles, Patterns, and Practices
Object-Oriented Design Heuristics
Object-Oriented Design Heuristics
Towards a Learner-Centred Approach to Teaching Object-Oriented Design
APSEC '96 Proceedings of the Third Asia-Pacific Software Engineering Conference
CS educational research: a meta-analysis of SIGCSE technical symposium proceedings
Proceedings of the 35th SIGCSE technical symposium on Computer science education
(An almost) pedagogical pattern for pattern-based problem-solving instruction
Proceedings of the 9th annual SIGCSE conference on Innovation and technology in computer science education
Examples that can do harm in learning programming
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Dataless objects considered harmful
Communications of the ACM - Medical image modeling
Revealing the programming process
Proceedings of the 36th SIGCSE technical symposium on Computer science education
A study of the difficulties of novice programmers
ITiCSE '05 Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education
Guidelines for a multiple-goal CS introductory course: algorithmic problem-solving woven into OOP
ITiCSE '05 Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education
Pattern oriented instruction and the enhancement of analogical reasoning
Proceedings of the first international workshop on Computing education research
Human Problem Solving
Grand Challenges in Computing: Education---A Summary
The Computer Journal
A cognitive approach to identifying measurable milestones for programming skill acquisition
ITiCSE-WGR '06 Working group reports on ITiCSE on Innovation and technology in computer science education
Objects First With Java: A Practical Introduction Using BlueJ (3rd Edition)
Objects First With Java: A Practical Introduction Using BlueJ (3rd Edition)
An instructional approach to drive computer science courses through virtual learning environments
ITiCSE '09 Proceedings of the 14th annual ACM SIGCSE conference on Innovation and technology in computer science education
Creating video podcasts for CS1: lessons learned
Journal of Computing Sciences in Colleges
Integrating software engineering in computer programming education
Proceedings of the 10th ACM conference on SIG-information technology education
ACM Transactions on Computing Education (TOCE)
Have we missed something?: identifying missing types of research in computing education
Proceedings of the Sixth international workshop on Computing education research
Review: Integrating cognitive load theory and concepts of human-computer interaction
Computers in Human Behavior
A taxonomic study of novice programming summative assessment
ACE '09 Proceedings of the Eleventh Australasian Conference on Computing Education - Volume 95
Teaching a fundamental programming course via a Chinese/American faculty exchange agreement
Proceedings of the 2010 ACM conference on Information technology education
Extreme apprenticeship method in teaching programming for beginners
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
ScriptABLE: supporting informal learning with cases
Proceedings of the seventh international workshop on Computing education research
Management, structures and tools to scale up personal advising in large programming courses
Proceedings of the 2011 conference on Information technology education
A software craftsman's approach to data structures
Proceedings of the 43rd ACM technical symposium on Computer Science Education
Lectures abandoned: active learning by active seminars
Proceedings of the 17th ACM annual conference on Innovation and technology in computer science education
Multi-faceted support for MOOC in programming
Proceedings of the 13th annual conference on Information technology education
Three years of design-based research to reform a software engineering curriculum
Proceedings of the 13th annual conference on Information technology education
ACM Transactions on Computing Education (TOCE)
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
Massive increase in eager TAs: experiences from extreme apprenticeship-based CS1
Proceedings of the 18th ACM conference on Innovation and technology in computer science education
Illustration of paradigm pluralism in computing education research
ACE '12 Proceedings of the Fourteenth Australasian Computing Education Conference - Volume 123
Teaching theoretical computer science using a cognitive apprenticeship approach
Proceedings of the 45th ACM technical symposium on Computer science education
International Journal of Technology Enhanced Learning
Hi-index | 0.00 |
We present a brief overview of a model for the human cognitive architecture and three learning theories based on this model: cognitive load theory, cognitive apprenticeship, and worked examples (a key area of cognitive skill acquisition). Based on this brief overview we argue how an introductory object-oriented programming course is designed according to results of cognitive science and educational psychology in general and cognitive load theory and cognitive skill acquisition in particular; the principal techniques applied are: worked examples, scaffolding, faded guidance, cognitive apprenticeship, and emphasis of patterns to aid schema creation and improve learning. As part of the presentation of the course, we provide a characterization of model-driven programming---the approach we have adopted in the introductory programming course. The result is an introductory programming course emphasizing a pattern-based approach to programming and schema acquisition in order to improve learning.