TI3115TU - Software Engineering and Methods

Teaching TeamContactScheduleGradingFAQ

The goal of this course is to make you a software engineer. A software engineer does way more than just coding. They think about requirements and how the software they are building improve the society, they think about the best architectural decisions for that particular software system, they develop high-quality code that will be easy to be maintained in the future, they make sure that their software works by means of rigorous testing. Last but not least, software engineers continuously reflect and adapt their behavior, so that they deliver better software every day.

In this course, you will:

  • Create your own development process based on agile methodologies
  • Explore and write different requirements for your software in form of use cases or user stories
  • Plan, implement, and review your software
  • Reflect and improve your process
  • Test your software as if there was no tomorrow
  • Improve and refactor your code
  • Continuously integrate and store your code in modern tools like Git and GitLab

Target audience: TU Delft Computer Science minor students.

Teaching team

Maurício Aniche
Responsible Teacher
Georgios Andreadis
Head TA
Kanav Anand
TA
Auke Schaap
TA
Max Lopes Cunha
TA
Danny Plenge
TA
Ege de Bruin
TA

Contact

  • Personal questions, mail me.
  • TA availability: all lab sessions.

Schedule

This course works as follows:

  • Before class, you do the pre-lecture readings and activities. These activities are usually about reading, watching videos, and doing short exercises. The activities are due on the night before the lecture. For your own benefit, it is fundamental that you do them all.

  • After class, you work on after-lecture activities. They involve reading and working on their project. All after-class activities due exactly one week after the lecture.

Lecture 1. Introduction + Collaborative development 03/September, 3.45pm
Lecture 2. Iterative and Incremental Processes 06/September, 10.45am
Lecture 3. Requirements Engineering 10/September, 1.45pm
Lecture 4. Scrum 13/September, 10.45am
Lecture 5. Lean Software Development 17/September, 1.45pm
Lecture 6. Agile technical practices 20/September, 10.45am
Lecture 7. Software Testing 24/September, 1.45pm
Lecture 8. Software Testing 27/September, 10.45am
Lecture 9. Software Architecture and Design 01/October, 1.45pm
Lecture 10. Code review 04/October, 10.45am
Deadline: Report Draft
Lecture 11. Refactoring 08/October, 1.45pm
Lecture 12. Joop Aué, Adyen N.V. 11/October, 10.45am

Software Engineering at Adyen. Agile, Organizational Structure, Testing and Monitoring.

Lecture 13. Steve Freeman, Distinguished Consultant, Zuhlke Engineering Ltd. 15/October, 1.45pm

Ethics in Software Engineering. Ask-Me-Anything session.

Deadline: Report Peer Feedback
Lecture 14. Ayushi Rastogi, TU Delft 18/October, 10.45am

Ever wondered, what it takes to be a ‘good’ software engineer? This interactive talk walks you through some of the roadblocks and opportunities in the journey to become a good software engineer. As we discuss the characteristics of a good software engineer, we also touch base research opportunities to improve developer productivity.

Lecture 15. Sander Knape, Coolblue 23/October, 1.45pm

IT is still innovating at an extremely fast pace. Where 10 years ago it was normal to shop at different datacenters for placing your own hardware, today more and more software is deployed in "the Cloud". Also, instead of provisioning datacenter racks or servers, today more and more software is developed using "Serverless" technology. In this talk we'll go through these innovations and discuss how the Cloud and Serverless technology can increase the speed and efficiency of developing new software.

Lecture 16. Christiaan van 't Hoft, QDelft 25/October, 10.45am

The social side of software engineering.

Deadline: Report
Exams
  • The exam will be held on Tuesday, November 6th, 2018, 6.30pm to 9.30pm, at DW-TZ 1.
  • The resit will be held on January 22nd, 2019, 6.30pm to 9.30pm, at DW-TZ 1.
  • Read more about our exam and resit.

Grading

Your final grade is calculated as follows:

Grade = 0.5 * MAX(E,R) + 0.5 * P

where:

Your grade in both exam/resit and project should be higher than 5.75. In case any of the two is smaller than the minimum required, your final grade will be calculated as follows: MIN(MAX(E, R, P), 4.0) (or, in other words, your best grade so far but limited to 4.0).

FAQ

  • Are the pre- and post-activities compulsory? All activities are fundamental to your learning, and thus, we strongly suggest you to do them within the proposed deadlines. The deadlines we set (pre-lecture activities: one day before the lecture, post-lecture activities: one week after the lecture) are there to help you organize yourself. The pre-lecture activities will help you engage and deepen your knowledge during the lecture. The post-lecture activities are often focused on your final project and doing them within the proposed deadline will help you to be ready when the final deadline comes. The post-lecture readings may appear in the final exam. You might have noticed that these activities are not part of the grade. This means you are responsible for your own learning path throughout this course!

  • I missed the exam. Can I re-do it? Yes, you can take the resit. Please, check the schedule.

  • I missed the exam and the resit. Is there any other way? No.

  • I missed the deadline for the final deliverable. What can I do? Deadline is strict and delivering late is not allowed. Personal issues will be treated case by case. Please, e-mail us two days before the deadline.

  • Can I replace the report with something else? No. The report is irreplaceable, and you must have a passing grade in it.

  • Is delivering the draft compulsory? Yes. And please note that the deadline is strict, and we will not give feedback to delayed submissions.

  • What I use my devices in class? Educational research clearly shows that using devices on non-class related activities can harm your learning. Moreover, it can also harm your colleague’s learning. Therefore, you are not allowed to use any devices during the lecture. Exception: activities that require devices. I will help you by making announcements during the lecture about the times you should use your device.

  • How did you do this website? This website is done with Jekyll and some straightforward HTML. I was highly influenced by Andy Ko’s Cooperative Software Design website. The main picture was taken by Helloquence.

  • Can I use your material? Attribution-NonCommercial-ShareAlike CC BY-NC-SA This website as well as all the content created by me are licensed through Attribution-NonCommercial-ShareAlike CC BY-NC-SA. This license lets others remix, tweak, and build upon your work non-commercially, as long as they credit you and license their new creations under the identical terms. The content from others that I link are subject the own authors’ licenses.