linear lists, stacks, queues, hash tables, binary tree, heaps, binary search trees and problem trees.
Program Design:
design and implementation of programmes that use basic algorithms and data structures to solve computer science problems.
Intended learning outcomes
On completion of the course, students should be able to
describe a number of common algorithms for search and sorting and their properties
compare algorithms with regard to time and memory usage
implement data structures as linear lists stacks, queues, hash tables, binary tree and search trees
identify problems where the data structures above are useful and design simple algorithms with these
write programmes that use algorithms and data structures by means of good programming principles such as systematic tests and abstraction
model problems as search problems and implement algorithms for breadth-first-search, depth-first-search or best-first-search
in order to
be able to design programmes that solve problems by using commonly occurring algorithms and data structures
acquire sufficient prior knowledge to be able to take advanced courses in computer science.
Learning activities
The course is built around a serie of assignments that all have a deadline. The assignments are presented with a small (4 pages) report where you descibe how the task was olved,problems you encountered, conclusions drawn etc. The report should follow the template given. You should be prepared to give an oral explanation of how you solved the assignment.
There is one sequence of assignments to pass the course and additional assignments for higher grade. The assignments are continously corrected and are given: pass, fail or pass after make up. If you are asked to make up, then the corrected verison should be handed in the week after.
During the course we will have lectures that are directly connected to the assignments that you should do - lectures are not mandatory. There is also a set of recession hours where you will begiven help to solve the assignments. Otherwise Canvas is used for questions and discussions.
Detailed plan
A weekly schedule will be found in Canvas.
Preparations before course start
Recommended prerequisites
The course structure is based on the participants having programming skills and being able to edit without help, compile and run simpler programs even in languages they may not normally use or have used before.
Literature
Course material will be available for download.
Support for students with disabilities
Students at KTH with a permanent disability can get support during studies from Funka:
INL1 - Hand-in assignments, 7.5 credits, Grading scale: A, B, C, D, E, FX, F
Based on recommendation from KTH’s coordinator for disabilities, the examiner will decide how to adapt an examination for students with documented disability.
The examiner may apply another examination format when re-examining individual students.
Ethical approach
All members of a group are responsible for the group's work.
In any assessment, every student shall honestly disclose any help received and sources used.
In an oral assessment, every student shall be able to present and answer questions about the entire assignment and solution.