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¶
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¶
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.