A basic course in programming techniques.
Choose semester and course offering
Choose semester and course offering to see information from the correct course syllabus and course offering.
Content and learning outcomes
Fundamental computer concepts.
Programming in a modern programming language (Python). Data structures and classes. Problem-solving through division into sub-problems. Program structuring. Several smaller programming assignments as well as one larger, individual programming assignment with strong emphasis on structuring and specification of included modules.
Intended learning outcomes
Having passed the course, the student should be able to
- design programs without code repetitions
- divide a larger problem in manageable parts
- divide a program
- apply control structures
- design and present user friendly output
- create flexible applications
- choose appropriate names of identifiers
- design interactive programs
- use and design composite data types (classes)
- transfer data between file and program,
- review others' programs,
in order to be able to
- use programming to solve problems,
- apply the problem solving methodology also within other fields than programming,
- discuss software development with experts
- assess commercial programs
- independently be able to solve problems by designing programs of up to 500 lines in a modern programming language.
Literature and preparations
High school mathematics (scientific program). Some computer experience (the concepts of operating system and file, and experience from some computer application, e.g. word processing). A basic course in Mathematics e.g. SF1624/SF1625 (can be taken concurrently).
Examination and completion
If the course is discontinued, students may request to be examined during the following two academic years.
- LAB1 - Laboratory Task, 1.5 credits, grading scale: P, F
- LAB2 - Laboratory Task, 1.5 credits, grading scale: P, F
- LAB3 - Laboratory Task, 3.0 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.
Opportunity to complete the requirements via supplementary examination
Opportunity to raise an approved grade via renewed examination
An approved grade can be raised via renewed examination within a year from the start of the course offering. The end of this period normally coincides with the start of next year's corresponding course offering.
- 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 DD1310
Main field of study
DD1320 Applied Computer Science and DD1380 Java Programming for Python Programmers.
Different examiners for different course offerings:
CENMI: Emma Riese
COPEN, CMATD and CELTE: Vahid Mosavat
CMAST and CITEH: Daniel Bosk and Olle Bälter.
You can only count one of the following courses in your degree:
DD100N, DD1310-DD1318, DD1331, DD1337, DD1340-DD1343, DD1345, DN1212, HI1024, HI1026, ID1004, ID1018, ID1201, ID1301, SF1511, SF1513, SF1516-SF1519.
In this course, the EECS code of honor applies, see: