mircoschoenfeld
  • publications
  • teaching
  • talks and workshops
  • community service
  • research projects
  • lab@ubt
  • blog

Software Technology and Applied Programming

Contents

  • Course Description
  • Slides
  • Transfer Paper
    • Possible aspects
    • Applied Data Analysis
    • Example projects
  • R Tutorials
    • Prerequisites
    • Basics
    • Dataframes
    • Working with external data
    • Visualization
    • Programming Deep Dive
    • Advanced visualization
    • Data Wrangling
    • Legend
  • References

This is the main course website for the seminar "Software Technology and Applied Programming". This is a living document and new content will be added here. The seminar is start of a series followed by an Introduction to Artficial Intelligence and Intelligent Data Processes.

Course Description¶

The goal of this course is to outfit you with sufficient understanding of technological basics in the digital project world. It covers important principles of software development projects, tools and environments for software development, as well as a deep dive into an applied understanding of programming, versioning, and integration.

To convey both an understanding of the important principles of "algorithmic thinking" and offer a future-proof competency worth investing time into, this course builds on the language "R". It offers great potential for various kinds of data analyses, while also requiring a good understanding of the basics. At the same time, its learning curve is not that steep as with other programming languages so that we have a chance to produce appealing results in a short time. Hopefully, this serves as an entry point into the wonderful world of programming.

Slides¶

Title Slides Material
Introduction
R Markdown


git
Deep Dive into Programming
Part one: Algorithmic Thinking
Deep Dive into Programming
Part two: Conditions, Loops, and Functions
Data Structures
Programming Paradigms
Software Architecture Patterns
From Data Models to Databases
Data Analysis Deep Dive


Software Engineering
Software Project Management

Transfer Paper¶

Your transfer paper should consider the following guiding question:

How can data analytics be put to good use in your company/department/project/scenario?

Possible aspects¶

Approaching your particular question might include one or more of the following aspects:

  • What are you aiming to improve?
  • What do you want to introduce - an approach, a technology, a software, a workflow?
  • What are functional and non-functional requirements of it?
  • What is the intended outcome?
  • Who is affected by your change?
  • How is quality and success going to be measured?
  • What are possible challenges and pitfalls?

Applied Data Analysis¶

You are most welcome to illustrate or motivate or evaluate your proposed change by a self-made data analysis. Another way of illustrating your proposed change is to model the scenario with tools like ER modeling, User Stories, or similar techniques for conceptual models.

Analyzing data yourself is not mandatory.

Example projects¶

  • Digitization in Human Resources: Implementation of a Digital Evaluation Tool
  • Data driven sales optimizations: Further development of sales processes
  • Digitization projects to improve quality and efficiency
  • Cross-market data-driven rollout strategies
  • Introduction and migration to a new management software
  • Project management of feature rollouts in e-Commerce

R Tutorials¶

In this section, you will find a list of tutorial videos and slides helping you to prepare the course.

Prerequisites¶

Title Video Material
Getting Help
Find Help on the Internet
Thinking in Scripts

Basics¶

Title Video Material
Getting Started in RStudio

About Variables
About Vectors

Dataframes¶

Title Video
About Dataframes
Modifying dataframes

Working with external data¶

Title Video
Read in data files
Obstacles with data files: Separators

Visualization¶

Title Video
Draw scatter plots and line plots
Draw pie charts
Draw bar charts
Customize your plots

Programming Deep Dive¶

Title Video
Execute Code Conditionally
for-loops
Functions
Functions accepting parameters

Advanced visualization¶

Title Video
Add legends
Save your figures to files
Adjust the axes
Add more details to your plot
Combine multiple figures on one canvas

Data Wrangling¶

Title Video
Sorting values and dataframes
Aggregate data
Merge tables
Advanced use of merge: specify columns
Advanced use of merge: missing data
Advanced use of merge: multiple columns
Advanced use of merge: continuous merge

The full list of tutorial videos introducing R is available online. Feel free to peek into topics that interest you. You can also check out the course website of my R tutorial which puts the tutorial videos into better order.

Legend¶

Session was a lecture
Session was a practical
Find slides here
Find code material here
Find external material here
This session has a self assessment quiz attached

References¶

  • Adam Drake. Command-line tools can be 235x faster than your hadoop cluster. 2024. https://adamdrake.com/command-line-tools-can-be-235x-faster-than-your-hadoop-cluster.html.
  • ISO/IEC JTC 1/SC 7. Systems and software engineering – Systems and software Quality Requirements and Evaluation (SQuaRE) – Quality-in-use model. Standard, International Organization for Standardization, Geneva, CH, November 2023. https://www.iso.org/obp/ui/en/#iso:std:iso-iec:25019:ed-1:v1:en.
  • LZV.NRW. Interactive panel of common file formats. 2023. https://www.q-terra.de/lzv/.
  • Alex Douglas, Deon Roos, Francesca Mancini, Ana Couto, and David Lusseau. An Introduction to R. online, https://intro2r.com/, 2022. https://intro2r.com/.
  • David Farley. Modern Software Engineering: Doing What Works to Build Better Software Faster. Addison-Wesley Professional, 2021.
  • Kieran Healy. The Plain Person’s Guide to Plain Text Social Science. The Internet, 2019. https://plain-text.co/.
  • Scott Chacon and Ben Straub. Pro Git (Second Edition). Apress, 2014. https://git-scm.com/book/en/v2.
  • Garrett Grolemund. Introduction to R Markdown. R Studio, 2014. https://rmarkdown.rstudio.com/articles_intro.html.
  • Ian Sommerville. Software engineering. ISBN-10, 2011.
  • Richard N Taylor, Nenad Medvidovic, and Eric Dashofy. Software architecture. John Wiley & Sons, Chichester, England, 2008.
  • John Gruber. Markdown. The Internet, 2004. https://daringfireball.net/projects/markdown/basics.
  • Kent Beck, Mike Beedle, Arie Van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, and others. The agile manifesto. 2001. http://agilemanifesto.org/.
  • Kent Beck. Extreme programming explained: embrace change. addison-wesley professional, 1999.

  • « Tutorial: Introduction to R for scholars of humanities and social sciences
  • Seminar Artificial Intelligence »

Published

8. Apr, 2024

Last Updated

Jun 28, 2024

Tags

  • lecturenotes 12
  • teaching 22

Links

  • recordings

Find me here

  • This website contains no ads, cookies, trackers or social media buttons.
  • Powered by Pelican and Elegant.