Schedule | Labs | Code Examples | Moodle | Github | Term Schedule

Welcome!

Info 3 is the roundup of the Info 1-3 cyclus. In Info1, you learned programming, and the basics of object orientated design of software. Info2 dived into advanced programming with data structures and algorithms. Info3 rounds that up by giving you insights into how actually design and develop software at a bigger picture.

The Modulbeschreibung states the following goals for Info3:

  • Die Studierenden haben gelernt, wie man ein komplexes Softwarebasiertes System analysiert, modelliert und eine Lösung entwirft.
  • Die Studierende können sicher mit Entwurfsmustern umgehen und sie in einer aktuellen Programmiersprachen praktisch umsetzen.
  • Die Studierenden haben Modellierungs-Notationen wie UML sicher anzuwenden gelernt.
  • Sie haben verstanden, wie sie die Methoden des Software- Engineerings auf der Entwicklung von Mediensysteme anwenden können.
  • Sie können Algorithmen der Lokalisierung und Internationalisierung von Software umsetzen.

Thus, Software Engineering, Software System Design, the UML and Software Design Patterns are set as topics. As one example of media system applications, we will look deeper into Web Application Development. Web Application Development has two main characteristics: it is a fast-changing environment, and agile development practices are pivotal. Furthermore, if web applications are successful, they become long-running software, thus the ability to maintain an old codebasis is also important. Therefore, we will also look into best practices to support agile software development (“Best Practices”) as well as designing for ease of change (“Clean Code” and “Advanced Object Oriented Design”).

Have a look at how this breaks down on this (tentative) Schedule.

Meetings and Due Dates

The class consists of 2x2h of lectures (Thursday and Friday @ 12:15) and 4h of lab every fortnight (alternating group 1 & group 2). Due dates:

  • Lecture Notes of last week: Thursday 23:00
  • Lab Reports: Thursday 23:00 before your next lab.

Grades

Your grade in Info3 will be a weighted mixture of the evaluated graded elements of the course (Lecture summaries, optionally tests on lab subjects and exam). The partial grades will be assessed as follows and then graded according to the Grading Scale:

Option 1: without lab grades

  • Lecture summaries: 10%
  • Exam: 100%
  • Lab Reports: 0% - but all (n) have to be submitted and n-1 have to be ok to be admitted to the exam!

Option 2: with lab grades

  • Lecture summaries: 10%
  • Lab Quizzes: 40%
  • Exam: 60%
  • Lab Reports: 0% - but all (n) have to be submitted and n-1 have to be ok to be admitted to the exam!

If you pass the Lab Quiz (a small Moodle Quiz about the Lab contents at the beginning of the following lab) you automatically get an “ok” for that lab. If you don’t have enough points or do not take part in the quiz, I might ask you to present your solution to me.

I will let excel automatically choose the most favourable option for you if you took part in at least 6 of the 7 quizzes. However, if you want to choose yourself, you can of course do so - just send me an email before the exam.

Lecture summaries

In the Moodle collaboration room you can find a section called “Lecture summaries”. You are expected to write 5-10 complete sentences summarizing each lecture. If I find plagiarisms of lecture summaries (especially from the Wikipedia), you will not get any credit for any lecture summary at all. Of the 28-30 lectures altogether, I expect you to write summaries for 24 of them to get the entire 10% - they are either done or not done, and not graded on content. They can be in txt, pdf or markdown format.

Lab Reports

The labs themselves will not be graded this term. Instead, I will issue little moodle quizzes for them. If you pass them (get >= 50% of the points) to get an ok for the lab. You don’t need to take part in the quizzes to get an ok, however, but be able to present the lab contents to me on request.

You need to get an “ok” for each issued exercise but one to be allowed to take part in the exam.

More info about the Lab Reports can be found on the Labs page.

Exam

There will be a 2-hour online examination on or about Feb 7. We will have 2 shifts of exams, Group 1 and Group 2. The exam will be an on-line exam with two parts, a multiple-choice part and an essay / programming part.

Course Literature

There is no textbook for this class. Here are the main books this class is based upon. You’ll don’t need to buy them for this class - there’s plenty of information online. Some of them can be found in the library. You might want to buy them, though, as these are books that will not be outdated next year. One of them is even the same age as some of you.

Reference Link
Sandi Metz: Practical Object Oriented Design in Ruby: An Agile Primer. Addison Wesley, 2012. Book Website
Robert C. Martin: Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall, 2008. Homepage der Clean-Code Initiative (german)
Robert C. Martin and Micah Martin: Agile Principles, Patterns, and Practices in C#. Prentice Hall, 2006 SOLID Principles
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides: Design Patterns. Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994. Wikipedia is pretty good for them.
Martin Fowler: Patterns of Enterprise Application Architecture. Addison-Wesley, 2002. EAA Website
Armando Fox, David Patterson: Engineering Software as a Service: An Agile Approach Using Cloud Computing (2nd Beta Edition).