
Axel Schmolitzky- HAW Hamburg
Axel Schmolitzky
- HAW Hamburg
About
53
Publications
4,611
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
282
Citations
Introduction
Axel Schmolitzky currently works at Hochschule für Angewandte Wissenschaften Hamburg. Axel does research in Teaching Software Engineering, Programming Languages and Human-computer Interaction. Their most recent publication is 'Guess my object'.
Skills and Expertise
Current institution
Additional affiliations
January 2001 - February 2014
Publications
Publications (53)
Introductory programming education following the Objects First approach introduces the concepts of object-oriented programming early on. Objects with state (fields) and behavior (methods) that offer services to their clients (via their public interface) and hide the way these services are implemented (in their implementation) are the building block...
Introductory programming education following the Objects First approach introduces the concepts of object-oriented programming early on. Objects with state (fields) and behavior (methods) that offer services to their clients (via their public interface) and hide the way these services are implemented (in their implementation) are the building block...
In der Praxis der Softwareentwicklung dominieren objektorientierte
Sprachen (wie Java oder C#) und prozedurale Sprachen (wie C oder
Pascal). Damit überwiegen Vertreter des imperativen Programmier-
paradigmas. Sprachen wie Scala oder Clojure und die Diskussion um
Lambdas in Java ab Version 8 haben aber jetzt auch jenseits der akade-
mischen Welt ein...
Every element of a software architecture, e.g. a subsystem, package, or class, should have a well-defined interface that exposes or hides its sub elements according to the principles of information hiding and encapsulation. Similar to other object-oriented programming languages, Java supports defining interfaces on several levels. The accessibility...
Access modifiers allow Java developers to define package and class interfaces tailored for different groups of clients. According to the principles of information hiding and encapsulation, the accessibility of types, methods, and fields should be as restrictive as possible. However, in programming practice, the potential of the given possibilities...
Patterns are a practical means for transferring experience from experts to laymen as well as to other experts in a field. Patterns have been very successful in software engineering, but over the last decade they have enriched the practice in other disciplines as well, such as: interaction design, computer mediated interaction, project management, a...
Feedback is an important value in agile methodologies. It is also essential for any context where people are learning. Typically the focus is on giving learners feedback on their learning progress, either from an educator's point of view or between the learners via peer feedback. This paper focuses on gaining feedback from learners. We discuss meth...
This position paper advocates an extreme position: Object-oriented Modeling (OOM) and Object-oriented Programming (OOP) should be kept clearly separate in teaching object-orientation in the first year, and OOP should be introduced first, with OOM following later. This position is based on several observations that were made in teaching OOP to begin...
Zusammenfassung In sieben Thesen werden Aussagen zur objektorientierten Programmierung dargestellt, die aus Sicht des Autors für Programmieranfänger
problematisch sind. Alle Aussagen sind sinngemäß Lehrbüchern oder wissenschaftlichen Publikationen zum Thema ,,Einführung
in die objektorientierte Programmierung“ entnommen. Bewusst kontrovers und zuge...
This paper presents pedagogical patterns for the general context of teaching software concepts in classroom settings. These patterns are targeted at people who teach other people about software, whether in industry or at universities. The patterns are presented in Alexandrian Form, in conformance with the patterns of the Pedagogical Patterns Projec...
In teaching object-oriented programming, teaching inheritance is the most challenging and at the same time the most crucial aspect. The interplay of dynamic binding, late-bound self-reference, subtype polymorphism and method redefinition is so complex that it is difficult for instructors to design a gentle, step-by-step introduction. Should polymor...
Basic software engineering education is an important part of IS education. This paper shows and critically discusses how experiences gained from years of software engineering training in the industry can be transferred to mass university education. The approach relies on cyclic, iterative, and problem based learning and puts equal stress on technic...
This paper shows and critically discusses how experience gained from years of software engineering training in industry can be transferred to mass university education. The approach relies on cyclical, iterative and problem-based learning and places equal emphasis on technical skills (such as object-oriented and database programming) and soft skill...
Teachlets are a new method originally developed to teach design patterns. Based on executable code, a problem is set that is to be solved collaboratively and interactively by all the participants of a teaching unit. A moderator is on hand to operate the computer, the development environment and video projector when called upon to do so. While deplo...
Almost no object oriented programming languages offer distinct language constructs for the definition of types and their implementations;
instead these are united into a single class concept. Similarly object oriented programming languages do not normally distinguish
between object types, which may be independently instantiated, and attribute types...
Objects first is a pedagogy that tries to introduce the core concepts of object-oriented programming - classes, objects, and methods - as early as possible in a programming course, even before variables, types, assignments and control structures are explicitly introduced. The concept of a named interface is typically introduced at a much later stag...
Financial services companies which heavily depend on IT, still face a shortage of well-educated software engineers. Of the two principal ways to react to this, either by training employees who are already IT-professionals or by introducing talented and interested nonprogrammers to software engineering, the latter was chosen by a large insurance com...
Using methodological extensions to adapt extreme programming (XP) for major projects offers a high security and reliability without limiting software development's advantages. The authors describe their use of XP extensions that focus on development's planning and controlling aspects, demonstrating that a suitably adapted agile development process...
The importance of using a good metaphor within projects was demonstrated by Kent Beck in his keynote talk at OOPSLA 2002.
While the role of metaphors seems to be accepted, the process of finding the right metaphor is a demanding task. Letting the
metaphor guide you to a suitable system architecture is even harder. Wouldn’t it be nice to have a good...
Professional software development implies team work. Therefore working in a team should be an essential part in the software
engineering curriculum. We use Extreme Programming (XP) as a high-discipline software development methodology to teach software
engineering within a team quite early in the curriculum. This seems not easy at first sight, as X...
Almost no object oriented programming languages offer distinct language constructs for the definition of types and their implementations; instead these are united into a single class concept. Similarly object oriented programming languages do not normally distinguish between object types, which may be independently instantiated, and attribute types...
Almost no object oriented programming languages offer distinct language constructs for the definition of types and their implementations; instead these are united into a single class concept. Similarly object oriented programming languages do not normally distinguish between object types, which may be independently instantiated, and attribute types...
Object-oriented languages can potentially make a great contribution to enhancing software quality and supporting the software engineering process. Despite this potential, we contend that a number of central features of object-oriented languages are in fact contrary to well-known software engineering principles and goals and therefore represent a hi...
Binary methods are one of the challenges for designers of object-oriented programming languages. In this paper we discuss binary class methods (class methods that receive parameters of their own class type) as an alternative for typical uses of binary instances methods and show that they are often less troublesome, more symmetrical and more express...
Binary class methods are often more suitable for modelling binary
operations than binary instance methods. Allowing covariant parameter
type adaptations in class methods can make them even more attractive. We
discuss the implications of covariant class methods on type safety. We
discuss two examples, one type-safe at run-time and the other not, and...
Collection classes are ideal candidates for software reuse and therefore have an important role in the development and use of object-oriented class libraries. We analyze representative collection libraries, pointing out the main problems from the viewpoint of their practical usability in programs. We then identify a small number of independent conc...
Collection classes are ideal candidates for software reuse and can therefore play an important role in the development and use of object-oriented class libraries. In this paper we point out problems in existing object-oriented collection libraries from the viewpoint of their useability in programs. We identify a small number of software engineering...
: Recent proposals for adding parameterised types to Java have left a number of important practical issues undiscussed. In this paper we present the language Genja which is a new generic extension of Java oriented towards practical support for generic collection types. We discuss design alternatives related to extending the power of unconstrained g...
: Generic type definitions can aid software reuse and hence reduce development costs. Reusability should ideally neither compromise program clarity nor incur run-time costs in comparison to one-off programming. In this paper we formulate requirements for a practically acceptable mechanism for genericity in Java. We show that two recent proposals fa...
. Inheritance mechanisms are used to express many different programming concepts. In this paper we analyse these inheritance concepts to determine the requirements for an inheritance mechanism which is to support the concepts well. On the basis of this analysis we identify weaknesses in current mechanisms, particularly in the areas of modelling and...
: Class-based object-oriented languages traditionally fuse the notions of type and implementation in the class construct. Software engineering methods, on the other hand, clearly separate type specifications from their possible implementations. In connection with inheritance the fusion of types and implementations results in either subtyping proble...
In an object oriented system different types of objects may have one or more attributes in common. For example different types of objects in a library system might be "loanable" or "catalogued". The first part of the paper introduces a distinction between object types and attribute types, showing that there are advantages in treating them as separa...
Inheritance mechanisms are used to express many different programming concepts. In this paper we analyse these inheritance concepts to determine the requirements for an inheritance mechanism which is to support the concepts well. On the basis of this analysis we identify weaknesses in current mechanisms, particularly in the areas of modelling and s...
Recent proposals for adding parameterised types to Java have left a number of important practical issues undiscussed. We present the language Genja which is a novel generic extension of Java oriented towards practical support for generic collection types. We discuss design alternatives related to extending the power of unconstrained genericity, sol...
The objects accessible by a user at a particular time in an object-oriented system form a working environment. The invocation
language via which this environment is viewed and manipulated can be regarded as semantically flexible since the set of operations
available to the user is the union of the methods of all currently visible classes. In this p...
Software engineering and usability engineering are two disciplines sharing the aim of improving the customer experience in software development. However, and although practitioners of both disciplines need to collaborate in practice, sket-ches for development processes often rely on a singular perspective. In this paper, we report some of the exper...
We discuss the metaphor of "Consuming before Producing" that helped us structuring the contents of Computer Science 1 and 2 courses. It seems to be a feasible approach to reaching coherent compositions of object-oriented concepts. In our experience, students can more easily access topics in courses that are structured based on this consideration. S...
Abschlussarbeiten stellen sowohl für die Studierenden als auch für ihre Betreuungspersonen eine besondere Herausforderung dar. In der Regel handelt es sich für die Studierenden um ihr erstes Arbeitsvorhaben in einer derartigen Größenordnung. Häufig sind die betreuenden Lehrkräfte zwar gute Wissenschaftler und beherrschen ihren Forschungsgegenstand,...
Zusammenfassung Teachlets sind eine neuartige Lehrform, die ursprünglich für die Vermittlung von Entwurfsmustern entwickelt wurde. Ausgehend von lauffähigem Code wird eine Aufgabe gestellt, die gemeinsam und interaktiv von allen Teilnehmern innerhalb einer Unterrichtseinheit gelöst wird, ein Moderator bedient dabei auf Zuruf den Rechner mit Entwick...