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.
The class consists of 2x2h of lectures and 2h of lab:
- Lecture: Tuesday, 8:00-9:30, WH C 355
- Lecture: Fridays, 15:45 - 17:15, WH C 355
- Group1&2: alternating Tuesdays 9:45-12:45 (LSF states 9:45-13:45, which would include the 1h lunch break from 11:15-12:15 - we will have all 3hrs of lab first and then the lunch break) WH C 537
Your grade in Info3 will be a weighted mixture of the evaluated elements of the course (Lecture summaries, lab reports and exam). The partial grades will be assessed as follows and then graded according to the Grading Scale:
- Lecture summaries: 15%
- Lab reports: 40%
- Exam: 50%
More info about the Lecture Summaries and the Lab Reports can be found on the Labs page.
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.
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.
|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).|
Important Links and further Information
Information about this course is dispersed in various places on the web - welcome to the web 2.0. These are:
- These pages for publicly accessible information: Schedule, Labs, Grading Scale
- Github for publicly accessible code examples for the lecture and the assignments
- Moodle for all Information that cannot be made publicly available and for handing in your lecture notes and lab reports
- last not least LSF: Lecture (SU), Labs for official course information.