Detta är inte senaste versionen av kurs-PM. Visa (senaste versionen).
Headings denoted with an asterisk ( * ) is retrieved from the course syllabus version Autumn 2023
Content and learning outcomes
Course contents
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.
Preparations before course start
Recommended prerequisites
Knowledge of programming.
Literature
There is no compulsory book covering the course. Study material, such as lecture slides and references for further reading, will be made available on the course’s Canvas page.
Support for students with disabilities
Students at KTH with a permanent disability can get support during studies from Funka:
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.
Grading criteria/assessment criteria
HEM1
HEM1 consists of three theory assignments that can be solved at home.
The theory assignments are handed out via the Canvas page and must be submitted via Canvas within one week after they become available. The deadlines are announced on Canvas.
Each theory assignment is graded with the pass grades A, C, E, or the non-pass grade F. If a student does not submit a theory assignment within the deadline, the non-pass grade F is assigned.
To solve the theory assignments, you are welcome to consult the lecture notes and the materials linked on the Canvas page, the Python help pages, and to try things out yourself in Python. Help from other people with the assignment (either physically, over phone, or on any forums on the internet) or chatbots, such as ChatGPT, is not allowed. This course applies the EECS honor code (https://www.kth.se/eecs/utbildning/hederskodex).
The final course grade is the average of the three theory assignment grades:
Fx: If any of the theory assignments is assigned grade F, the student is assigned the grade Fx. In this case, the student will have the chance to improve their grade on each failed theory assignment by solving another theory assignment during Exam Period 2 (there is one new theory assignment for each failed theory assignment).
Each passed lab assignment that is handed in on time raises the grade for the corresponding theory assignment by one step C->B, E->D. For instance, if the grade in theory assignment 1 is C and lab 1 was submitted within the deadline, the grade for theory assignment 1 is raised to B.
It is not possible to raise a passing grade via renewed examination.
The grading criteria for the individual theory assignments are as follows:
Theory Assignment 1:
For grade E, you must be able to describe algorithms for searching and sorting and to write structured programmes in Python,
For grade C, the requirements for grade E must be met, and you must also be able to compare algorithms with regard to time and memory usage,
For grade A, the requirements for grade C must be met, and you must also be able to use abstraction as a tool to simplify the programming.
Theory Assignment 2:
For grade E, you must be able to implement and use different data structures in problem-solving contexts such as stack, queue, tree and hash table.
For grade C, the requirements for grade E must be met, you must also be able to select an appropriate algorithm for a given problem and to describe algorithms for searching and sorting.
For grade A, the requirements for grade C must be met, and you must also be able to use abstraction as a tool to simplify the programming.
Theory Assignment 3:
For grade E, you must be able to select an appropriate algorithm for a given problem and to describe different data structures in problem-solving contexts, such as stack, queue, tree, hash table, priority queue and graph.
For grade C, the requirements for grade E must be met, and you must also be able to model problems as search problems and implement algorithms for graph search, such as breadth-first search and depth-first search.
For grade A, the requirements for grade C must be met, and you must also be able to design and explain recursive algorithms.
LABB
LABB consists of three lab assignments that are made available on the Canvas page.
To solve the lab assignments, you are welcome to consult the lecture notes and the materials linked on the Canvas page, the Python help pages, and to try things out yourself in Python. Help from other people with the assignment (either physically, over phone, or on any forums on the internet) or chatbots, such as ChatGPT, is not allowed. This course applies the EECS honor code (https://www.kth.se/eecs/utbildning/hederskodex).
The solutions for the labs must be submitted through the Canvas page and must be presented orally to a teaching assistant. The oral presentations will take place in the corresponding lab sessions while the course is running (see Canvas for details). After the end of the course, there will be another opportunity to submit the lab assignments and to present the solutions in June of the following year.
If the solution is submitted on Canvas within two weeks after the lab becomes available and the oral exam is passed in the lab session corresponding to the lab assignment, the student may raise the grade in the corresponding theory assignment (see HEM1 above).
Oral examinations will be done by the group to a teaching assistant in front of the computer (over Zoom or in the lecture halls) in pre-booked time slots during the indicated lab hours. All group members must be able to explain and present all parts of the assignment, including the source code. It is the students’ obligation to ensure that they have a working Python environment for the presentation.
To pass LABB, all lab assignments must be passed.
The criteria to pass the individual lab assignments are as follows:
Lab1: To pass Lab1, the student must be able to write structured programmes in Python, to use abstraction as a tool to simplify the programming, to describe algorithms for searching and sorting and to design and to explain recursive algorithms.
Lab2: To pass Lab2, the student must be able to use classes and objects in program design, to troubleshoot programs systematically and to implement and use different data structures in problem-solving contexts such as stack, queue, tree and hash table.
Lab3: To pass Lab13 the student must be able to model problems as search problems and implement algorithms for graph search, such as breadth-first search and depth-first search, and to compare algorithms with regard to time and memory usage.
If any of the lab assignments is failed, the student will have the chance to pass each failed lab assignment by submitting and presenting the correct solution in June of the following year.
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.