The early history of Smalltalk
HOPL-II The second ACM SIGPLAN conference on History of programming languages
A library to support a graphics-based object-first approach to CS 1
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
Effective Java programming language guide
Effective Java programming language guide
DrJava: a lightweight pedagogic environment for Java
SIGCSE '02 Proceedings of the 33rd SIGCSE technical symposium on Computer science education
Rethinking computer science education from a test-first perspective
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Using graphics to support the teaching of fundamental object-oriented principles in CS1
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Teaching polymorphism with elementary design patterns
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
ProfessorJ: a gradual introduction to Java through language levels
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
DrScheme: a programming environment for Scheme
Journal of Functional Programming
From concrete to abstract: the power of generalization
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Proceedings of the 36th SIGCSE technical symposium on Computer science education
Java: An Eventful Approach
Calculator problem and the design recipe
ACM SIGPLAN Notices
Objects First With Java: A Practical Introduction Using BlueJ (3rd Edition)
Objects First With Java: A Practical Introduction Using BlueJ (3rd Edition)
Journal of Computing Sciences in Colleges - Papers of the twelfth annual CCSC Northeastern Conference
Holistic assessment criteria: applying SOLO to programming projects
ACE '07 Proceedings of the ninth Australasian conference on Computing education - Volume 66
An early software engineering approach to teaching cs1, cs2 and ai
Proceedings of the 39th SIGCSE technical symposium on Computer science education
Htdp and dmda in the battlefield: a case study in first-year programming instruction
Proceedings of the 2008 international workshop on Functional and declarative programming in education
The chilling descent: making the transition to a conventional curriculum
Proceedings of the 2008 international workshop on Functional and declarative programming in education
Test-driven design for introductory OO programming
Proceedings of the 40th ACM technical symposium on Computer science education
Test-driven design in Java for novice programmers
Journal of Computing Sciences in Colleges
Test-first design pedagogy and support for introductory OO programming: tutorial presentation
Journal of Computing Sciences in Colleges
Introductory computing: the design discipline
ISSEP'11 Proceedings of the 5th international conference on Informatics in Schools: situation, Evolution and Perspectives
Software testing (in Java) from the beginning
Journal of Computing Sciences in Colleges
Test-first design pedagogy in introductory Java programming
Journal of Computing Sciences in Colleges
Hi-index | 0.00 |
We report on the experience of teaching an introductory second semester computer science course on Fundamentals of Computer Science that uses our curriculum How to Design Class Hierarchies and the ProfessorJ programming languages implemented within the DrScheme programming environment.This comprehensive curriculum for an introductory course focuses on principled design of class based programs in an object-oriented language (Java) with a carefully structured gradual increase in the complexity of the class structure and the programming language.The curriculum includes extensive lecture notes, programming assignments, closed lab plans, exams, and the first part of a textbook. The curriculum is supported by a programming environment ProfessorJ with a series of gradually more complex teaching languages that support a novice learner. The pedagogy focuses on teaching the students problem solving and design skills that transcend the study of programming. The organization of the topics draws its strength from the theory of programming languages by focusing on the structure of data rather than on algorithms, user interactions, or arcane details of the programming language syntax.