MENUMENU
MENUMENU

Data Science Software Engineering (DLBDSDSSE01)

Kursnummer:

DLBDSDSSE01

Kursname:

Data Science Software Engineering

Gesamtstunden:

150 h

ECTS Punkte:

5 ECTS

Kurstyp: Pflicht, Wahlpflicht

Zu Details beachte bitte das Curriculum des jeweiligen Studiengangs

Kursangebot : WS, SS

Course Duration : Minimum 1 Semester

Zugangsvoraussetzungen:

  • Introduction to Programming with Python (DLBDSIPWP01)
  • Object-Oriented and Functional Programming with Python (DLBDSOOFPP01) or Grundlagen der objektorientieren Programmierung mit Java (IOBP01)

Kurskoordinator(en) / Dozenten / Lektoren:

Siehe aktuelle Liste der Tutoren im Learning Management System

Bezüge zu anderen Modulen:

Siehe Modulbeschreibung

Beschreibung des Kurses:

A core part of data science is creating value from data. This means not only the creation of sophisticated predictive models but also the development of these models according to modern software development principles.

This course gives a detailed overview of the relevant methods and paradigms which data scientists need to know in order to develop enterprise-grade models.

This course discusses traditional and agile project management techniques, highlighting both Kanban and Scrum as agile approaches. It also explores relevant software development paradigms such as test-driven development, pair programming, mob programming, and extreme programming.

Special focus is given to the topics of testing and considerations of how to bring a model into a production environment.

Course Objectives and Outcome:

On successful completion of this course, students will be able to:

  • understand the concept of project management approaches.
  • apply agile approaches in software development.
  • create automated software tests.
  • understand various software development paradigms.
  • evaluate the necessary steps to bring models into a production environment.

Teaching Methods:

The learning materials include printed and online course books, vodcasts, online knowledge tests, podcasts, online tutorials, and case studies. This range of learning materials is offered to students so they can study at a time, place, and pace that best suits their circumstances and individual learning style.

Course Content:

1. Traditional Project Management

1.1 Requirements Engineering

1.2 Waterfall Model

1.3 Rational Unified Process

2. Agile Project Management

2.1 Criticism of the Waterfall Modell

2.2 Introduction to SCRUM

2.3 Introduction to Kanban

3. Testing

3.1 Why testing?

3.2 Unit Tests

3.3 Integration Tests

3.4 Performance Monitoring

4. Software Development Paradigms

4.1 Test Driven Development (TDD)

4.2 Pair Programming

4.3 Mob Programming

4.4 Extreme Programming

5. From Model to Production

5.1 Continuous Delivery

5.2 Continuous Integration

5.3 Building a Scalable Environment

Literatur:

  • Farcic, V. (2016). The DevOps 2.0 toolkit: Automating the continuous deployment pipeline with containerized microservices. Scotts Valley, CA: CreateSpace Independent Publishing Platform.
  • Humble, J., & Farley, D. (2010). Continuous delivery: Reliable software releases through build, test, and deployment automation. Boston, MA: Addison-Wesley Professional.
  • Humble, J., Molesky, J., & O’Reilly, B. (2015). Lean enterprise. Sebastopol, CA: O’Reilley Publishing.
  • Hunt, A., & Thomas, D. (1999). The pragmatic programmer. From journeyman to master. Reading, MA: Addison-Wesley.
  • Martin, R. C. (2008). Clean code. Boston, MA: Prentice Hall.
  • Morris, K. (2016). Infrastructure as code. Sebastopol, CA: O’Reilley Publishing.
  • Richardson, L., & Ruby, S. (2007). RESTful web services. Sebastopol, CA: O’Reilley Publishing.
  • Senge, P. (1990). The fifth discipline: The art and practice of the learning organization. New York, NY: Broadway Business.

A current list with course-specific compulsory reading, as well as references to further literature, is stored in the Learning Management System.

Prüfungszugangsvoraussetzung:

  • Depending on the course: Completion of online knowledge tests (approx. 15 minutes per unit, pass / not pass)

Prüfungsleistung:

Exam, 90 min.

Student Workload (in hours): 150

Self-study: 90
Self-testing: 30
Tutorials: 30