Official course description:

Full info last published 14/01-21
Course info
ECTS points:
Course code:
Participants max:
Offered to guest students:
Offered to exchange students:
Offered as a single subject:
Price for EU/EEA citizens (Single Subject):
10625 DKK
BSc in Data Science
Course manager
Assistant Professor
Course semester
Efterår 2020
24 August 2020
31 January 2021
Exam type
intern censur
Grade Scale
Exam Language
The course is an introduction to software engineering, software development, and object-oriented programming for Data Science BSc students.

Please be aware that changes may occur!


  • principles of software engineering
  • software architectures and design patterns
  • object-oriented analysis and design with UML as modeling language
  • object-oriented implementation with Java as programming language

Formal prerequisites

  • Working knowledge of an imperative programming language (e.g., Python).
  • Understanding of/appreciation for common problems in designing and developing software.

Intended learning outcomes

After the course, the student should be able to:

  • Explain and be able to execute the essentials of all primary facets of software development within software engineering including analysis, design, implementation, testing, validation, and verification
  • Describe and apply modeling techniques for analysis and design
  • Describe and apply object-oriented methods for analysis, design and implementation, e.g., in the programming language Java
  • Explain the principles of software architecture, including fundamentals of a variety of common architecture styles and design patterns
  • Construct useful, coherent, large-scale systems of up to approx. 10 KLOC in size, including the ability to perform system and domain analysis for a given problem, propose an appropriate software architecture, write a system specification and its implementation, and validate the implementation against its specification.
  • Describe processes to plan and run a software engineering project including different stakeholders and their respective roles.
Learning activities

  • Lectures to acquire theoretical foundations of programming in an object-oriented programming language and general principles of software engineering.
  • Interactions on selected small examples to train application and award the chance for immediate (self-)assessment.
  • Self-contained exercises on specific topics of software development and software engineering with portions of preparation, class-room work, individual tutoring and homework.
  • Comprehensive project developing an object-oriented application with software engineering principles to train and connect individual skills.

Course literature

There is no MANDATORY reading for the course. However, there is a list of SUGGESTED relevant literature. As the course comprises two distinct (but complimentary) phases for Java programming and Software Engineering techniques, literature is divided into respective categories. If you pick one of the first two categories and one for Software Engineering, you should have a good accompanying read:

Literature for the Java Portion of the Course

- Java for Data Science – Richard M. Reese, Jennifer L. Reese
- Mastering Java for Data Science – Alexey Grigorev
- Java Data Science Cookbook – Rushdi Shams
- Data Science with Java – Michael R. Brzustowicz

Good Programming in General

- The Pragmatic Programmer – Andrew Hunt
- Clean Code – Robert C. Martin
- How to Use Objects – Holger Gast

Literature for the Software Engineering Portion of the Course

- Software Engineering – Ian Sommerville
- Beginning Software Engineering – Rod Stephens
- Software Engineering: A Practitioner's Approach – Roger S. Pressman

Student Activity Budget
Estimated distribution of learning activities for the typical student
  • Preparation for lectures and exercises: 10%
  • Lectures: 20%
  • Exercises: 20%
  • Assignments: 10%
  • Project work, supervision included: 20%
  • Exam with preparation: 20%
Ordinary exam
Exam type:
C: Submission of written work, Internal (7-point scale)
Exam variation:
C22: Submission of written work – Take home
Exam submission description:
Duration: 4 hours and 15 minutes (please disregard the 1 day duration below)

Aids allowed:
- pen
- own blank paper
- for taking pictures of diagrams (only), a scanner, camera or mobile device (smartphone, tablet etc.)
- computer to work on

No communication and collaboration allowed
Take home duration:
1 day

Time and date