- Introduction slides are up (pdf (PDF, 4907 KB))
The world runs on software and this course (and the SoPra) is all about taking the skills and knowledge you learned in software construction and extending your abilities to design and build non-trivial software systems.
This course will cover a topics relevant to developing large, multi-module software systems, including their specification, design, implementation and maintenance as well as topics such as REST, agile development, and refactoring.
Learning Objectives: When you have completed this course, you should be able to:
- Demonstrate knowledge and explain challenges of the steps involved in building a large, complex software system
- Understand benefits and disadvantages of various designs for constructing software systems
- Communicate technical matters with programmers, managers, and clients effectively; and convey the rationale behind your choices.
Prior Knowledge: students should have completed software construction, and be familiar with object-oriented programming.
Course Structure (Classes, Readings/Videos)
For this course, we will put more emphasis on activities during the classes, so that students get to practice and discuss the relevant concepts and material. Therefore, we will provide videos and/or readings beforehand on OLAT (if there are any). Each student will have to:
- Watch videos / read readings in the week before each lecture (see OLAT).
- Fill in survey by midnight Sunday (part of participation grade).
Evaluation / Grading
Your grade in this course will be based on:
- [25%] a midterm,
- [65%] a final exam, and
- [10%] a participation grade that will be based on quizzes and assignments.
Participation marks are given for filling out the online survey. These surveys must be submitted Sunday at midnight before class and will require watching the videos / go through the readings for that week. These reports are intended to be short; we will use them to tailor the activities during the week based on your comments.
If you feel that your assignment, project, or exam was graded incorrectly or unfairly, PLEASE discuss the grade with your TA, course assistant or instructor, during regular office hours. You have 7 days after a grade is returned to dispute the marking (whether or not you were present to receive the returned assignment or exam).
If you find a marking error, it will be corrected immediately. I will not remark individual questions if you disagree with the marking scheme. However, I will re-mark your entire exam if you feel that the grading scheme used was unfair and would like to have your exam re-evaluated.
There will be one midterm and a final examination. Each exam will be closed-book, i.e. students are NOT allowed to bring and use any additional materials to solve the exam questions.
|Final Exam||June 20|
If you are unable to attend the midterm or the final exam due to illness or force majeure, you must let the instructor know in time and present to the instructor a note from your physician, detailing the period during which you were ill, in order not to be penalized (i.e., receive a grade of 0), or present a document from some other appropriate authority, respectively. In case you are unable to attend due to military service, you have to tell the instructor at the beginning of this course in September and if acceptable, also present a copy of the “Einberufungsbefehl” to Yvonne Engeler. In all cases, the instructor will then decide on the course of action to follow.
Course Resources - OLAT
The course information on OLAT is required reading, as the instructor, course assistant and TAs may post important information there. You should check it about once a day. In addition, you are encouraged to post your questions about the course material in the forum. You are also encouraged to respond to questions for which you know the answer. The instructor, course assistant and the TAs will regularly monitor the forum and try to answer your questions as promptly as possible. In case you need a face-to-face discussion, you can make an appointment with the instructor, course assistant or your TA.
Introduction Slides (first class) -> pdf (PDF, 4907 KB)
Unless otherwise stated, all work in this course is to be done on an individual basis. Students should know where to draw the line between getting legitimate outside assistance with course material and outright cheating. Students who obtain too much assistance without learning the material ultimately cheat themselves the most. Submitting the work of another person as your own (i.e., plagiarism) constitutes academic misconduct, as does communication with others (either as donor or recipient) in ways other than those permitted for assignments and exams. Such actions will not be tolerated. Students should be particularly careful when hiring a tutor. It is not permitted to submit code for an assignment or lab that was written in whole or in part by a tutor. All offences will be reported to the Department of Informatics, University of Zurich.
For more information on the treatment of plagiarism at UZH, please refer to The Information Sheet on the Treatment of Plagiarism