Title
Interfaces first (and foremost) with Java
Abstract
Abstraction is a critical concept that underlies many topics in computing science. For example, in software engineering, the distinction between a component's behavior and its implementation is fundamental. Java provides two constructs that correspond to precisely this distinction: A Java interface is a client's abstract view of a component's behavior, while a class is a concrete implementation of that same component. We have developed a course that introduces Java while following a discipline of diligently decomposing every component into these two separate linguistic elements. In this course, interfaces are given the same prominence as classes since both are needed for a complete component. This approach is helpful to students by providing: (i) a clear manifestation of the role of abstraction in software systems, and (ii) a framework that naturally motivates many good coding practices adopted by professional programmers.
Year
DOI
Venue
2010
10.1145/1734263.1734436
SIGCSE
Keywords
DocType
Citations 
critical concept,software system,java interface,good coding practice,professional programmer,complete component,clear manifestation,abstract view,software engineering,concrete implementation,abstraction,software systems
Conference
2
PageRank 
References 
Authors
0.38
14
2
Name
Order
Citations
PageRank
Paolo A. G. Sivilotti114114.91
Matthew Lang2475.42