Methods and Models

Permanent URI for this collection

Browse

Recent Submissions

Now showing 1 - 8 of 8
  • Item
    On the Syntactic, Semantic, and Pragmatic Quality of Students’ Conceptual Models
    ( 2019-01-08) MacCreery, Justin ; Tenbergen, Bastian
    Visual notations and conceptual models, such as ER diagrams or UML diagrams aid in aligning stakeholder needs, defining and prioritizing processes and goals for the system under development, serve as a reference for requirements elicitation, negotiation, and enable validation as well as verification of artifacts. With such a ubiquitous presence and paramount importance, conceptual models have therefore been introduced in software engineering curricula far and wide. However, it is exceedingly difficult to teach and learn conceptual modeling. Not only does it require educators to instruct notation and syntax of the visual language, but also semantic intricacies. Similarly, students struggle with what differentiates a “good” conceptual model from an inadequate one, how to use conceptual models of different types in conjunction with one another in a meaningful way, or simply how to avoid ambiguity and vagueness. In this paper, we discuss the syntactic, semantic, and pragmatic quality of conceptual models in four courses from an undergraduate software engineering program. It is not our aim to present empirically rigorous results, but to contribute to the body of knowledge on the quality of typical novices’ conceptual models. We seek to foster discussion in the community and present observations and results for comparison.
  • Item
    A Framework for Teaching Conceptual Modeling and Metamodeling Based on Bloom’s Revised Taxonomy of Educational Objectives
    ( 2019-01-08) Bork, Dominik
    Conceptual modeling and metamodeling are vital parts in computer and information science study programs at tertiary institutions. Currently, teachers are struggling in ensuring that their teaching approach is comprehensive and in identifying application domains that motivate students, and show that the value of models exceeds pure representative means. This paper uses Bloom’s revised taxonomy of educational objectives as a foundation to define a framework for comprehensive teaching of conceptual modeling and metamodeling. The introduced framework is used to evaluate the comprehensiveness of a Smart City teaching case which has been taught at the Next-generation Enterprise: Modeling in the Digital Age Summer School. The contribution of this paper is threefold: First, a generic framework for comprehensive teaching of conceptual modeling and metamodeling is proposed; Second, a Smart City teaching case is reported; Third, the evaluation of the teaching case leads to a discussion on how to improve teaching of conceptual modeling and metamodeling in the future.
  • Item
    Serious Refactoring Games
    ( 2019-01-08) Haendler, Thorsten ; Neumann, Gustaf
    Software design issues can severely impede software development and maintenance. Thus, it is important for the success of software projects that developers are aware of bad smells in code artifacts and improve their skills to reduce these issues via refactoring. However, software refactoring is a complex activity and involves multiple tasks and aspects. Therefore, imparting competences for identifying bad smells and refactoring code efficiently is challenging for software engineering education and training. The approaches proposed for teaching software refactoring in recent years mostly concentrate on small and artificial tasks and fall short in terms of higher level competences, such as analysis and evaluation. In this paper, we investigate the possibilities and challenges of designing serious games for software refactoring on real-world code artifacts. In particular, we propose a game design, where students can compete either against a predefined benchmark (technical debt) or against each other. In addition, we describe a lightweight architecture as the technical foundation for the game design that integrates pre-existing analysis tools such as test frameworks and software-quality analyzers. Finally, we provide an exemplary game scenario to illustrate the application of serious games in a learning setting.
  • Item
    Bringing Computational Thinking to Nonengineering Students through a Capstone Course
    ( 2019-01-08) Lee, Keeheon ; Kang, Youn
    Although the concept of computational thinking has flourished, little research has explored how to integrate various elements of computational thinking into an undergraduate classroom setting. Clarifying core concepts of computational thinking and providing empirical cases that apply computational thinking practices into a real-world educational setting is crucial to the success of software engineering education. In this article, we describe the development of a curriculum for a social innovation capstone course, using core concepts and elements of computational thinking. The course was designed for undergraduate students of a liberal arts college at a university in Korea. Students were asked to define a social problem and introduced to the core concepts and processes of computational thinking aided by Arduino and Raspberry Pi programming environments. After building a business model, they implemented a working prototype for their proposed solution. We document class project outcomes and student feedback to demonstrate the effectiveness of the approach.
  • Item
    Industry Projects in Requirements Engineering Education: Application in a University Course in the US and Comparison with Germany
    ( 2019-01-08) Tenbergen, Bastian ; Daun, Marian
    Project-based learning has proven useful in software engineering education to increase student engagement and learning performance. In this paper, we contribute our experiences from applying industry projects in an undergraduate requirements engineering course in the United States. We furthermore discuss our experiences from courses conducted in Germany and the US course in light of difference in the educational systems. Results show that our course design is well received in both countries in terms of learning outcomes, student motivation, teamwork, attention to detail, and performance in the exam.
  • Item
    Code Complexity in Introductory Programming Courses
    ( 2019-01-08) Ihantola, Petri ; Petersen, Andrew
    Instructors of introductory programming courses would benefit from having a metric for evaluating the sophistication of student code. Since introductory programming courses pack a wide spectrum of topics in a short timeframe, student code changes quickly, raising questions of whether existing software complexity metrics effectively reflect student growth as reflected in their code. We investigate code produced by over 800 students in two different Python-based CS1 courses to determine if frequently used code quality and complexity metrics (e.g., cyclomatic and Halstead complexities) or metrics based on length and syntactic complexity are more effective as a heuristic for gauging students' progress through a course. We conclude that the traditional metrics do not correlate well with time passed in the course. In contrast, metrics based on syntactic complexity and solution size correlate strongly with time in the course, suggesting that they may be more appropriate for evaluating how student code evolves in a course context.
  • Item
    The Quest for a Practical Sophomore-Level Software Engineering Course
    ( 2019-01-08) Flores, Roberto
    This paper describes our efforts starting since 2014 when we began developing a practical introductory sophomore-level software engineering course. The aim is to guide students into the fundamental theory and practice of building reliable software, with an emphasis on agile and object-oriented practices. Course topics revolve around three main themes: 1) managing complexity (how to model and scale software), 2) achieving quality (how to minimize defects) and 3) supporting usability (how to deliver user functionality). Students are exposed to theoretical and practical aspects of software production, such as software life-cycle models, strong-typing, testing, documentation, graphical user interfaces, UML, design patterns, version control systems and software deployment. The course is in constant evolution: near-future plans include adding build automation tools and DevOps concepts. We made the early decision to use reference materials available to our students at no cost; therefore, all reference materials are accessed online through resources afforded by our library.
  • Item
    Introduction to the Minitrack on Methods and Models
    ( 2019-01-08) Tenbergen, Bastian ; Daun, Marian ; Brings, Jennifer