Hoppa till huvudinnehållet
Till KTH:s startsida Till KTH:s startsida

DD2325 Applied Programming and Computer Science 7,5 hp

Course memo Autumn 2023-51820

Version 2 – 08/29/2023, 12:38:05 PM

Course offering

aprog23 (Start date 28 Aug 2023, English)

Language Of Instruction

English

Offered By

EECS/Computer Science

Course memo Autumn 2023

Course presentation

An introductory course in computer science and programming practise.

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.

Examination and completion

Grading scale

A, B, C, D, E, FX, F

Examination

  • 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:
    • A: AAA, AAB  
    • B: AAC, AAD, ABB, ABC, ABD, ACC, BBB, BBC
    • C: ABE, ACD, ACE, ADD, ADE, BBD, BBE, BCC, BCD, BCE, BDD, CCC, CCD
    • D: BDE, BEE, CCE, CDD, CDE, CEE, DDD, DDE
    • E: DEE, EEE
    • 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.
  • The lab assignments are performed in groups of 1 or 2 students (and not in larger groups). 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.

Further information

No information inserted

Round Facts

Start date

28 Aug 2023

Course offering

  • aprog23 Autumn 2023-51820

Language Of Instruction

English

Offered By

EECS/Computer Science

Contacts