From February 10, 2017 until May 15, 2017

Course: TI1316 Edition: 2016-2017

One can enroll until Sun, Apr 9, 2017 12:00
Course staff
  • H. S. Hung
  • R. J. Krebbers
  • Yanxia. Zhang
  • J. S. Abrahams
  • R. M. Borhem
  • K. Fani
  • M. Goudriaan-2
  • D. H. L. Korpel
  • I. Leontiuc
  • L. Miljak
  • M. Pigmans
  • M. P. Sijm
  • J. Verbraeken
  • I. R. G. Wilms
  • R. vanBekkum
  • R. H. vanHeukelum
About the Course


This document summarizes all the rules, organisation, and structure of the course. Before you ask any questions about the running of the course or the assessment of the course, please make sure that you have read through this document carefully.

Learning Objectives of the Course

Algorithms and data structures are fundamental notions in computer science. Understanding how they can be exploited in combination for better programming implementations in terms of time and space complexity is vital for writing efficient code.

This course enables the student to:

  • Understand, explain, and implement standard data structures.
  • Understand, explain, and implement standard algorithms.
  • Apply standard data structures and algorithms to solve programming tasks.
  • Analyse and compare implementations with respect to their time and space complexity.
  • Understand, explain, and apply standard programming techniques in the context of standard data structures.

Course Assessment

The contribution of each assessment type to your final grade is summarised in the table below:

Assessment Type Contribution to Final Grade
A: Weekly Analysis Assignments 10%  - Grading is based on the best 7 weekly analysis assignments out of 8; You need to make a reasonable attempt at ALL questions for at least 7 analysis assignments. If you do not make a reasonable attempt to answer all the analysis assignment questions for more than 1 week, you will fail the course.
Weekly Implementation Assignments pass/fail - to pass, your implementations have to pass ALL specification tests.
M:Mid Term Exam 20%
F:Final Exam 70%
R:Resit Exam this constitutes a second chance for either M, F or both; see final grade calculation below
Final Evaluation Scheme Maximum of { M(20%)+F(70%)+A(10%), R(90%)+A(10%), M(20%)+R(70%)+A(10%) }

IMPORTANT: To take the final exam, both analysis and implementation assignments must be passed. Failure to pass the assignments constitutes course failure. Under special circumstances, exceptions to these rules can only be given in coordination with TU Delft study advisors.

Course Organisation

  • Course Announcements:
    • All course announcements will be made via blackboard. We expect all students enrolled on the course to subscribe to these announcements.
  • Weekly Analysis Assignments:
    • The learning goals of these assignments are to
      • help you apply knowledge learned during the course to analyse algorithms and data structures.
      • enable you to practice analysing algorithms and data structures for the exams - Analysis questions account for 70% of all exams.
    • These are due at the end of Thursday every week.
  • Weekly Implementation Assignments:
    • In the weekly implementation assignments, you implement and analyse basic data structures and algorithms. Each implementation assignment comes with several public tests as well as hidden specification tests.
    • The learning goal of these assignments are:
      • to evaluate, analyse, and implement any algorithm for any data structure type
      • to apply standard data structures and algorithms to solve programming tasks.
      • to enable you to practice implementation of algorithms and data structures for the exams - Implementation questions account for 30% of all exams.
    • These are due at the end of Sunday every week.
  • Associated Learning Activities:
    • Monday and Friday Lectures:
      • These are designed to impart knowledge and help you get to a basic level of understanding of the course material
    • Course Homework:
      • Reading homeworks are designed to enable you to solidify your understanding of the lecture material and topics covered in lectures with more examples and in more detail.
      • We expect you to read all the chapters that are listed for homework reading. The analysis assignments will also test the basic understanding that you acquire from the lectures but also the course reading material.
    • Monday Instruction Class for TW students: Python->Java training
      • Attendance for TW students is expected.
      • TI students who have struggled with Java programming are very welcome to attend.
    • Tuesday or Thursday Labs:
      • During these practicals, you should seek one-on-one help from teaching assistants (see below) about the course material and all assignments.
  • Teaching Assistants:
    • Teaching assistants are available to answer questions about the analysis or implementation assignments during timetabled practical hours.
    • They are responsible for marking the weekly assignments. If you need help in understanding the marking of an assignment, please check with them or one of the course instructors during the practicals.
    • Ekin Gedik is the TA manager. If you have any grievance related to your TA, please address them to him in the first instance.
  • Late Days:
    • Assignments must be submitted weekly.
    • You have 5 late days to use during the entire course. Use these if you do not manage to submit an assignment by the associated weekly deadline.
    • A maximum of one late day can be used per week; for a given week, you cannot be late for both assignments.
    • Late days are not used in the case of severe and provable sickness. This will only be considered if the sickness is reported in the first week of sickness via the course email address: with the heading [Reporting Sickness for Week X].
    • Each late day constitutes a 24-hour extension; students cannot split late days into smaller increments. Once a student runs out of late days, any further late submission results in failing the course.

Overview of the Week

Monday Tuesday Wednesday Thursday Friday Sat Sunday
Learning actitivies and contact time Lecture & Intruction Class Lab for Groups (B,D,F, TW) Lab for Groups (A,C,E) Lecture
Deadlines Analysis Assignment Deadline Implementation Assignment Deadline