Skip to content

floe/software-engineering

Repository files navigation

Software Engineering lecture materials

Preface

This repository contains lecture materials (mostly slide sets) for an undergraduate course in software engineering. This course was initially held at Bauhaus-Universität Weimar in the winter semester 2014/15 for B.Sc. students in the Computer Science and Media degree. Prerequisites are basic knowledge about fundamentals of computer science and good skills (theoretical as well as practical) in Java.

Comments, feedback and suggestions for improvement (including pull requests) are very welcome.

Videos

A (somewhat basic) lecture recording from spring 2020 is available at https://www.youtube.com/playlist?list=PLjEglKdMOevU2STTGq79duxTXDFuO-k1H (also under CC license, see below).

License

Original copyright © 2015 by Florian Echtler. All material is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License CC-BY-SA-NC.

As a very brief summary, this means that you can freely use these materials as long as you:

  • provide attribution to the original author(s)
  • share your modifications under the same or a similar license
  • only use them for non-commercial purposes (such as teaching a university course)

Where possible, I have tagged material from external sources with CC (also under a compatible CC license), PD (public domain material) or FU (material which I believe to be included as "fair use").

Contents

The course currently spans 13 weekly sessions with the following topics:

  • Introduction
  • Git & OOP Refresher
  • Best Practices: Testing & UML
  • Classic & Agile Development Models (2 sessions)
  • Design Patterns (2 sessions)
  • Code Quality
  • Build Process
  • Debugging
  • Testing & CI
  • Requirements Engineering
  • Open Source Software

The course is usually accompanied by an exercise class every two weeks. As the exercise materials are part of the graded course assignments, I'm currently not including them in this public release.

git and ODT

The files in this repository are in OpenDocument format. If you add the following lines to your ~/.gitconfig file and install the odt2txt utility, you can use the regular git diff command to compare versions etc. (see also here for more details).

[diff "odf"]
	textconv = odt2txt