An introductory course in computer science and programming practise.
Choose semester and course offering
Choose semester and course offering to see current information and more about the course, such as course syllabus, study period, and application information.
Content and learning outcomes
Programming methodology in Python, containing aspects as programme quality, testing and troubleshooting strategies. Examples of both imperative and object-oriented programming are included, as well as programming with recursion. Algorithms that handle searching and sorting related to different data structures. Examples of treated data structures are stacks, queues, trees, hash tables and graphs. Algorithms for compression. Applications in computer science and numerical analysis.
Intended learning outcomes
After passing the course, the student should be able to
- write structured programmes in Python
- use classes and objects in program design
- troubleshoot programs systematically
- use abstraction as a tool to simplify the programming
- select an appropriate algorithm for a given problem
- compare algorithms with regard to time and memory usage
- describe algorithms for searching and sorting
- design and explain recursive algorithms
- describe different data structures in problem-solving contexts, such as stack, queue, tree, hash table, priority queue and graph
- implement and use different data structures in problem-solving contexts such as stack, queue, tree and hash table
- model problems as search problems and implement algorithms for graph search, such as breadth-first search and depth-first search
in order to master problem solving with programming, be able to use computational methods in applied contexts and acquire sufficient prior knowledge to be able to take advanced courses in computer science.
Literature and preparations
- Knowledge in basic mathematics, 15 higher education credits.
- Knowledge and skills in programming, 6 higher education credits, equivalent to completed course DD1310/DD1311/DD1312/DD1314/DD1315/DD1316/DD1318/DD1331/DD100N/ID1018.
- The upper secondary course English B/6.
Knowledge of programming.
Examination and completion
If the course is discontinued, students may request to be examined during the following two academic years.
- HEM1 - Home work, 3.0 credits, grading scale: A, B, C, D, E, FX, F
- LABB - Laboratory work, 4.5 credits, grading scale: P, 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.
Opportunity to complete the requirements via supplementary examination
Opportunity to raise an approved grade via renewed examination
- 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.
Further information about the course can be found on the Course web at the link below. Information on the Course web will later be moved to this site.Course web DD2325
Main field of study
Advanced courses in computer science DD2350/DD2352, DD1418, DD1334, DD1420/DD2421, DH2323. Furthermore DD1380 followed by DD1385 or DD1389.
HEM1 replaces TEN1 for students who have not passed this module.
Only one of the following courses can be counted in your degree: DD2325, DD1320-DD1328, DD1338-DD1345, EL2310, HI1201, ID1020, ID1021.
The course will not be given in 2024/2025. It is not decided when it will be given next.
In this course, the EECS code of honor applies, see: