Informatics 1 syllabus#
Unix and programming fundamentals.
4 SWS, 5 ECTS, in degree program LSI Master and ICS
Intended learning outcomes#
The purpose of the course is for you (the student) to learn to:
(Part 1: Unix)
describe what fundamental Unix environment tools do
-
use Unix shell commands to carry out tasks like
inspecting, moving, copying, deleting files and folders
consulting documentation
applying a chain of data processing commands on an input data (piping)
implement shell scripts for automating tasks on a Unix system, e.g., file management and text processing
apply regular expressions on text to extract relevant information
understand the advantage of git, GitHub, cloud computing and carry out basic git and cloud computing tasks
(Part 2: Python)
-
use the the following tools of programming to create applications:
expressions, conditionals, functions
loops
data structures like lists, dictionaries, sets
select the right data structure for a given data processing task
(In general)
breakdown programs into various components, explain what these components do
make sense of typical programming error outputs and find a fix
classify a problem based on if the problem can be solved more efficiently with the Unix shell or Python
evaluate someone else’s work and give constructive feedback (e.g, in context of peer-assessed exercises)
Prerequisites#
Computer science fundamentals (e.g., information, hardware, software, operating systems, shells, algorithms)
Content (what we do to reach the learning outcomes)#
Part 1: The Unix workbench
Unix and command line basics
Working with Unix
Bash programming
Git & GitHub & cloud computing
Part 2: Introduction to programming with Python (in context of interactive programming)
Statements, expressions, variables
Functions, logic, conditionals
Event-driven programming, local/global variables
Canvas, drawing, timers
Lists, keyboard input, the basics of modeling motion
Mouse input, list methods, dictionaries
Classes and object-oriented programming
Basic game physics, sprites
Sets and animation
Didactic methods#
To reach the learning outcomes we will use the following didactic methods:
Labs with feedback sessions
Mini projects
Grading#
Portfolio exam comprising:
written exam 1 hour (70 %)
1x programming mini-project presentation (8 %)
1x peer feedback to a peer about their mini-project (2%)
2x midterm exams (2x 10 %)
The examination is based on the intended learning outcomes.
Midterm exam#
The midterm exam typically takes place in the fourth week and towards to the end of the class.
You must be present in the class, unless you still could not arrive in Germany. In the latter case it is not guaranteed that your grade is officially recognized.
You can use up to 45 min for the exam.
Mini-project presentation#
-
You present a Python mini-project or Unix workbench-related project. The latter can be:
(1) the capstone project + two Bash programming exercises
(2) a Bash script with similar complexity and workload to (1)
If you intend to present in the next sessions, you post the project that you want to present on the course discussion board (e.g., Moodleoverflow).
The presentation takes about 10 to 15 min.
Peer feedback#
You give constructive feedback during a mini-project presentation.
If you intend to give feedback, you follow the same procedure as in mini-project presentation.
Other details#
Every week there will be up to three presentations.
I you do not volunteer for the mini-project presentation & peer feedback or are not present for the exams, it is not possible to get alternative grading.
Workload breakdown#
Materials#
-
accompanying lecture notes: aydos.de/unix-workbench
-
Interactive programming with Python 1 - Coursera and part 2
accompanying lecture notes: aydos.de/interactive-python
-
Additional exercises
-
Previous Exams
Additional:
Time & Room#
This course takes place only in winter semester. For time and room refer to Thabella LSI-1.