Teaching and Learning Ethnography for Software Engineering Contexts
Yvonne Dittrich, Helen Sharp, Cleidson de Souza
备注:
38 pages, published in: Daniel Mendez, Paris Avgeriou, Marcos Kalinowski, and Nauman bin Ali (eds.) Teaching Empirical Research Methods in Software Engineering, Springer
Ethnography has become one of the established methods for empirical research on software engineering. Although there is a wide variety of introductory books available, there has been no material targeting software engineering students particularly, until now. In this chapter we provide an introduction to teaching and learning ethnography for faculty teaching ethnography to software engineering graduate students and for the students themselves of such courses.
The contents of the chapter focuses on what we think is the core basic knowledge for newbies to ethnography as a research method. We complement the text with proposals for exercises, tips for teaching, and pitfalls that we and our students have experienced.
The chapter is designed to support part of a course on empirical software engineering and provides pointers and literature for further reading.
Contribution: A flipped classroom approach to teaching empirical software engineering increases student learning by providing more time for active learning in class. Background: There is a need for longitudinal studies of the flipped classroom approach in general. Although a few cross-sectional studies show that a flipped classroom approach can increase student learning by providing more time for other in-class activities, such as active learning, such studies are also rare in the context of teaching software engineering. Intended outcomes: To assess the usefulness of a flipped classroom appro…
The use of conceptual models to foster requirements engineering has been proposed and evaluated as beneficial for several decades. For instance, goal-oriented requirements engineering or the specification of scenarios are commonly done using conceptual models. Bringing such model-based requirements engineering approaches into industrial practice typically requires industrial training. In this paper, we report lessons learned from a training program for teaching industry professionals model-based requirements engineering. Particularly, we as educators and learners report experiences from design…
Student evaluations of teaching (SET) are commonly used in universities for assessing teaching quality. However, previous literature shows that in software engineering students tend to rate certain topics higher than others: In particular students tend to value programming and software construction over software design, software engineering models and methods, or soft skills. We hypothesize that these biases also play a role in SET responses collected from students. The objective of this study is to investigate how the topic of a software engineering course affects the SET metrics. We accompli…
Feedback is critical in education. This Innovative Practice Full Paper reports lessons learned from improving the quality of feedback in a semi-capstone software engineering course, with particular focus on how to deliver productive feedback in large scale during project work. The bachelor-level introduction to software engineering course is taken by about 500 students from eight study programs, organised into 72 project teams. The course aims to educate reflective systems developers. The teaching staff includes 29 teaching assistants as supervisor and product owners for teams. Project teams g…
Context: New scientific evidence continuously arises with advances in Software Engineering (SE) research. Conventionally, Systematic Literature Reviews (SLRs) are not updated or updated intermittently, leaving gaps between updates, during which time the SLR may be missing crucial new evidence. Goal: We propose and evaluate a concept and process called Continuous Systematic Literature Review (CSLR) in SE. Method: To elaborate on the CSLR concept and process, we performed a synthesis of evidence by conducting a meta-ethnography, addressing knowledge from varied research areas. Furthermore, we co…
National University of Defense Technology(国防科技大学);Shanxi Supercomputing Center(山西超级计算中心);Taiyuan University of Technology(太原理工大学)
Aiming at the current problems of theory-oriented,practice-light,and lack of innovation ability in the teaching of postgraduate software engineering courses,a multi-stage feedback teaching mode for software engineering postgraduates based on competition project_driven is proposed. The model is driven by the competition project,and implementing suggestions are given in terms of stage allocation of software engineering course tasks and ability cultivation,competition case design and process evaluation improvement,etc. Through the implementation of this teaching mode,students enthusiasm and initi…
Formal methods for software correctness are critical to the future of software engineering - and so must be an essential part of software engineering education. Unfortunately, formal methods are often resisted by students due to perceived difficulty, mathematicity, and practical irrelevance. We redeveloped our software correctness course by taking a programming intensive approach, using the solver-aided language Dafny to provide instant formative feedback via automated assessment. Our redeveloped course increased student retention and resulted in the best evaluation for the course for at least…
A number of approaches exist to aid the understanding of individual differences and their effects on teaching and learning. Educators have been using the Myers-Briggs Type Indicator (MBTI) to understand differences in learning styles and to develop teaching methods that cater for the various personality styles. Inspired by the MBTI, we developed a range of practices for effective teaching and learning in a software engineering course. Our aim is to reach every student, but in different ways, by devising various teaching approaches.
Software engineers have significant expertise to offer when building intelligent systems, drawing on decades of experience and methods for building systems that are scalable, responsive and robust, even when built on unreliable components. Systems with artificial-intelligence or machine-learning (ML) components raise new challenges and require careful engineering. We designed a new course to teach software-engineering skills to students with a background in ML. We specifically go beyond traditional ML courses that teach modeling techniques under artificial conditions and focus, in lecture and …
A Case-Study on Teaching Undergraduate-Level Software Engineering Course Using Inverted-Classroom, Large-Group, Real-Client and Studio-Based Instruction Model
Background: Given the social aspects of Software Engineering (SE), in the last twenty years, researchers from the field started using research methods common in social sciences such as case study, ethnography, and grounded theory. More recently, case survey, another imported research method, has seen its increasing use in SE studies. It is based on existing case studies reported in the literature and intends to harness the generalizability of survey and the depth of case study. However, little is known on how case survey has been applied in SE research, let alone guidelines on how to employ it…
Model-Guided Fieldwork: A Practical, Methodological and Philosophical Investigation in the use of Ethnomethodology for Engineering Software Requirements
Teaching Empathy in Software Engineering Education in the Age of Artificial Intelligence
University of Calgary(卡尔加里大学);Federal Rural University of Pernambuco(伯南布哥联邦农村大学);University College London(伦敦大学学院);Radboud University(拉德堡德大学);University of Otago(奥塔哥大学);University of Hawaii at Manoa(夏威夷大学马诺阿分校)
Hybrid Active Teaching Methodology for Learning Development: A Self-assessment Case Study Report in Computer Engineering
University of Luxembourg(卢森堡大学);Instituto Superior Manuel Teixeira Gomes(曼努埃尔·特谢拉·戈梅斯高等学院);Lusófona University(卢索福纳大学);Universidad Nacional de Rosario(罗萨里奥国立大学)
Creating a graduate-level software engineering breadth course is challenging. The scope is wide. Students prefer hands-on work over theory. Industry increasingly values soft skills. Changing software technology requires the syllabus to be technology-agnostic, yet abstracting away technology compromises realism. Instructors must balance scope with depth of learning. At Carnegie Mellon University, we designed a flipped-classroom course that tackles these tradeoffs. The course has been offered since Fall 2014 in the Silicon Valley campus. In this paper, we describe the course's key features and s…
Nowadays, software is pervasive in our everyday lives. Its sustainability and environmental impact have become major factors to be considered in the development of software systems. Millennials-the newer generation of university students-are particularly keen to learn about and contribute to a more sustainable and green society. The need for training on green and sustainable topics in software engineering has been reflected in a number of recent studies. The goal of this paper is to get a first understanding of what is the current state of teaching sustainability in the software engineering co…
This white paper argues that formal methods need to be better rooted in higher education curricula for computer science and software engineering programmes of study. To this end, it advocates (i) improved teaching of formal methods; (ii) systematic highlighting of formal methods within existing, `classical' computer science courses; and (iii) the inclusion of a compulsory formal methods course in computer science and software engineering curricula. These recommendations are based on the observations that (a) formal methods are an essential and cost-effective means to increase software quality;…
Teaching Agile Requirements Engineering: A Stakeholder Simulation with Generative AI
University of Applied Sciences Emden/Leer(埃姆登/莱尔应用科学大学);University of Applied Sciences and Arts Hannover(汉诺威应用科学与艺术大学);Federal University of São Paulo(圣保罗联邦大学)
In this article, we explore various parallel and distributed computing topics from a user-centric software engineering perspective. Specifically, in the context of mobile application development, we study the basic building blocks of interactive applications in the form of events, timers, and asynchronous activities, along with related software modeling, architecture, and design topics.
Higher education provides a solid theoretical and practical, but mostly technical, background for the aspiring software developer. Research, however, has shown that graduates still fall short of the expectations of industry. These deficiencies are not limited to technical shortcomings. The ever changing landscape of 'lean' enterprise software development requires engineers to be equipped with abilities beyond the technical. How can higher education help students become great software developers in this context? As a first step towards answering this question, we present the results of a system…
Many studies have shown the benefits of introducing open-source projects into teaching Software Engineering (SE) courses. However, there are several limitations of existing studies that limit the wide adaptation of open-source projects in a classroom setting, including (1) the selected project is limited to one particular project, (2) most studies only investigated on its effect on teaching a specific SE concept, and (3) students may make mistakes in their contribution which leads to poor quality code. Meanwhile, software companies have successfully launched programs like Google Summer of Code…
Software Engineering is an engineering discipline but lacks a solid theoretical foundation. One effort in remedying this situation has been the SEMAT Essence specification. Essence consists of a language for modeling Software Engineering (SE) practices and methods and a kernel containing what its authors describe as being elements that are present in every software development project. In practice, it is a method agnostic project management tool for SE Projects. Using the language of the specification, Essence can be used to model any software development method or practice. Thus, the specific…
Integrating Human-Centric Approaches into Undergraduate Software Engineering Education: A Scoping Review and Curriculum Analysis in the Australian Context