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. Sivilotti | 1 | 141 | 14.91 |
Matthew Lang | 2 | 47 | 5.42 |