2011
DOI: 10.1007/978-3-642-24722-4_16
|View full text |Cite
|
Sign up to set email alerts
|

Introductory Computing: The Design Discipline

Abstract: Abstract. The goal of this paper is to present in context the key didactical principles behind the Program by Design curricula, motivate the need for the supporting software, and describe in detail the How to Design Classes component for teaching introductory object oriented program design using Java and Java-like languages. The key innovations are a systematic test-first program design, and the introduction of programming language concepts by designing abstractions based on existing programs.

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
7
0

Year Published

2013
2013
2020
2020

Publication Types

Select...
2
1
1

Relationship

0
4

Authors

Journals

citations
Cited by 4 publications
(7 citation statements)
references
References 4 publications
0
7
0
Order By: Relevance
“…Since the fixture is optional, it would be possible to write a suite comprised only of independent tests (perhaps in the weeks before fixtures are introduced). The reason the tests are optional is that in a data-first design pedagogy (as in Program By Design [11]) the students are expected to give examples of data first, before any tests are written, and it is useful to be able to compile at this stage.…”
Section: Parts Of An Unci Filementioning
confidence: 99%
See 1 more Smart Citation
“…Since the fixture is optional, it would be possible to write a suite comprised only of independent tests (perhaps in the weeks before fixtures are introduced). The reason the tests are optional is that in a data-first design pedagogy (as in Program By Design [11]) the students are expected to give examples of data first, before any tests are written, and it is useful to be able to compile at this stage.…”
Section: Parts Of An Unci Filementioning
confidence: 99%
“…A number of educators have argued that TDD is pedagogically effective, even (or especially) in introductory programming courses [4,7,10]. Reasons for this mirror the reasons it is seen as effective as a general software engineering technique: for instance, students can better understand an example if it includes both an interface and an expected result [6], and having a written artifact of the student's understanding of the project requirements is helpful if the student needs to ask a question of a TA or professor (who can then quickly verify that the assumptions are correct before trying to answer the question) [11]. From a more cognitive perspective, an intro student-initially overwhelmed by the open-ended task of starting to write code-is well-served by having to first answer the more-constrained question of what a specific function call, with a specific, concrete parameter, should return.…”
Section: Test-driven Development In Introductory Coursesmentioning
confidence: 99%
“…Helped students to develop better programming approaches preferably in their own academic discipline Program by design curriculum [64] Program by design curriculum has been implemented in many settings such as: secondary schools and universities.…”
Section: Curriculum Content Designmentioning
confidence: 99%
“…This approach is so natural that children in primary school, when properly instructed, can successfully apply it [12,23]. It works best when loops are not introduced, and recursion is the only mechanism available for repeated execution.…”
Section: Tail Recursionmentioning
confidence: 99%