From Principles to Practice with Class in the First Year
Sam Tobin-Hochstadt (Northeastern University), David Van Horn, (Northeastern University)

TL;DR
This paper presents a new curriculum approach that bridges functional and object-oriented programming in the first-year computer science courses, easing student transition and emphasizing core principles.
Contribution
It introduces a sequence of custom pedagogical languages to smoothly transition students from functional to object-oriented programming before using Java.
Findings
Three years of successful implementation
Improved student understanding of core OO principles
Reduced confusion during language transition
Abstract
We propose a bridge between functional and object-oriented programming in the first-year curriculum. Traditionally, curricula that begin with functional programming transition to a professional, usually object-oriented, language in the second course. This transition poses obstacles for students, and often results in confusing the details of development environments, syntax, and libraries with the fundamentals of OO programming that the course should focus on. Instead, we propose to begin the second course with a sequence of custom teaching languages which minimize the transition from the first course, and allow students to focus on core ideas. After working through the sequence of pedagogical languages, we then transition to Java, at which point students have a strong command of the basic principles. We have 3 years of experience with this course, with notable success.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
