Introduction to Computer Programming, 8 credits

Programmering, grundkurs, 8 hp

TDDE44

Main field of study

Computer Science and Engineering, Computer Science

Course level

First cycle

Course type

Programme course

Examiner

Johan Falkenjack

Director of studies or equivalent

Anders Fröberg

Education components

Preliminary scheduled hours: 66 h
Recommended self-study hours: 147 h
ECV = Elective / Compulsory / Voluntary
Course offered for Semester Period Timetable module Language Campus ECV
6CYYY Applied Physics and Electrical Engineering, Master of Science in Engineering 2 (Spring 2027) 1, 2 2, 1 Swedish Linköping, Valla C
6CMED Biomedical Engineering, Master of Science in Engineering 2 (Spring 2027) 1, 2 2, 1 Swedish Linköping, Valla C
6CTMA Engineering Mathematics, Master of Science in Engineering 2 (Spring 2027) 1, 2 2, 1 Swedish Linköping, Valla C
6KMAT Mathematics, Bachelor's Programme 2 (Spring 2027) 1, 2 2, 1 Swedish Linköping, Valla C

Main field of study

Computer Science and Engineering, Computer Science

Course level

First cycle

Advancement level

G1N

Course offered for

  • Bachelor's Programme in Mathematics
  • Master of Science in Applied Physics and Electrical Engineering
  • Master of Science in Biomedical Engineering
  • Master of Science in Engineering Mathematics

Prerequisites

Basic computer skills. 

Intended learning outcomes

The intended purpose of this course is to facilitate and provide students with fundamental skills and knowledge pertaining to computer programming and an introduction to Computer Science. After having completed the course, the student should be able to: 

  • Make use of the computing environment for tasks related to programming and building basic programs 
  • Explain fundamental concepts related to computer science, programming, and programming languages 
  • Solve programming related problems by applying an interactive approach to implementation, testing and troubleshooting 
  • Construct abstractions using varying degree of support provided by the programming language 
  • Solve programming problems by breaking them down into smaller sub-problems
  • Construct recursive and iterative algorithms 

Course content

  • ​​A general introduction to Computer Science 
  • Programming fundamentals: expressions, basic datatypes, variables, functions, control structures, file management, file formats, modules 
  • The Python programming language 
  • Use of open data resources from the web 
  • Interactive and incremental program development 
  • Testing and troubleshooting 
  • Programming paradigms: functional, imperative and object-oriented programming 
  • Abstraction: Data and program abstraction 

Teaching and working methods

The course consists of lectures, tutorials and laboratory sessions. Concepts and their applications are treated during lectures and tutorials. Practical skills and abilities are practiced during laboratory sessions by solving programming exercises. The course setup requires a high degree of student activity and that students engage in private studies outside of the scheduled classes. 

Examination

LAB2Data and program abstraction/intro to object-oriented programming3 creditsU, G
LAB1Fundamentals in programming and computer system3 creditsU, G
DAT1Computer examination2 creditsU, 3, 4, 5

Grades for examination modules are decided in accordance with the assessment criteria presented at the start of the course.

Grades

Four-grade scale, LiU, U, 3, 4, 5

Other information

Supplementary courses: Programming - data structures and algorithms. Data and program structures.

About teaching and examination language

The teaching language is presented in the Overview tab for each course. The examination language relates to the teaching language as follows: 

  • If teaching language is “Swedish”, the course as a whole could be given in Swedish, or partly in English. Examination language is Swedish, but parts of the examination can be in English.
  • If teaching language is “English”, the course as a whole is taught in English. Examination language is English.
  • If teaching language is “Swedish/English”, the course as a whole will be taught in English if students without prior knowledge of the Swedish language participate. Examination language is Swedish or English depending on teaching language.

Other

The course is conducted in such a way that there are equal opportunities with regard to sex, transgender identity or expression, ethnicity, religion or other belief, disability, sexual orientation and age.

The planning and implementation of a course should correspond to the course syllabus. The course evaluation should therefore be conducted with the course syllabus as a starting point. 

The course is campus-based at the location specified for the course, unless otherwise stated under “Teaching and working methods”. Please note, in a campus-based course occasional remote sessions could be included.  

Department

Institutionen för datavetenskap

Course literature

Additional literature

Books

  • Downey, Allen B., (2024) Think Python : how to think like a computer scientist. Third edition Sebastopol : O'Reilly, 2024
    ISBN: 9781098155438
    https://allendowney.github.io/ThinkPython/
  • Lutz, Mark, (2025) Learning Python : powerful object-oriented programming
    ISBN: 9781098171308, 1098171306
  • Miller, Bradley N., Ranum, David L., (2011) Problem solving with algorithms and data structures using Python. 2nd ed. 2011
    ISBN: 9781590282571, 1590282574
  • Punch, William, Enbody, Richard, (2017) The practice of computing using Python. Third edition Global edition Boston : Pearson, 2017
    ISBN: 9781292166629, 1292166622
  • Skansholm, Jan, (2019) Python från början. Studentlitteratur.
    ISBN: 9789144134932
  • Swaroop, C. H., (2018) A Byte of Python
    https://python.swaroopch.com/
  • Zelle, John M., (2017) Python Programming : An Introduction To Computer Science Third Edition. Franklin, Beedle & Associates, 2017.
    ISBN: 9781590282755, 1590282752
Code Name Scope Grading scale
LAB2 Data and program abstraction/intro to object-oriented programming 3 credits U, G
LAB1 Fundamentals in programming and computer system 3 credits U, G
DAT1 Computer examination 2 credits U, 3, 4, 5

Grades for examination modules are decided in accordance with the assessment criteria presented at the start of the course.

Additional literature

Books

Downey, Allen B., (2024) Think Python : how to think like a computer scientist. Third edition Sebastopol : O'Reilly, 2024

ISBN: 9781098155438

https://allendowney.github.io/ThinkPython/

Lutz, Mark, (2025) Learning Python : powerful object-oriented programming

ISBN: 9781098171308, 1098171306

Miller, Bradley N., Ranum, David L., (2011) Problem solving with algorithms and data structures using Python. 2nd ed. 2011

ISBN: 9781590282571, 1590282574

Punch, William, Enbody, Richard, (2017) The practice of computing using Python. Third edition Global edition Boston : Pearson, 2017

ISBN: 9781292166629, 1292166622

Skansholm, Jan, (2019) Python från början. Studentlitteratur.

ISBN: 9789144134932

Swaroop, C. H., (2018) A Byte of Python

https://python.swaroopch.com/

Zelle, John M., (2017) Python Programming : An Introduction To Computer Science Third Edition. Franklin, Beedle & Associates, 2017.

ISBN: 9781590282755, 1590282752

Note: The course matrix might contain more information in Swedish.

I = Introduce (without examination module), U = Teach (requires examination module), A = Utilize (knowledge from earlier course/es, eventual examination module)
I U A Modules Comment
1. DISCIPLINARY KNOWLEDGE AND REASONING
1.1 Knowledge of underlying mathematics and science (courses on G1X-level)
X
Examples and exercises featuring elementary mathematical concepts
1.2 Fundamental engineering knowledge (courses on G1X-level)
X
X
DAT1
LAB1
LAB2
Programming/computer science and problem solving using computational thinking.
1.3 Further knowledge, methods and tools in any of : mathematics, natural sciences, engineering (courses at G2X level)
X
Applications in technical domains are sometimes used as illustrative examples during lectures.
1.4 Advanced knowledge, methods and tools in any of: mathematics, natural sciences, engineering (courses at A1X level)
X
Applications in advanced technical domains are often referenced during lectures as extensions of the current topic.
1.5 Insight into current research and development work
X
How programming can be used in research and development work. E.g. for prototyping, modeling, analysis, data management, etc.
2. PERSONAL AND PROFESSIONAL SKILLS AND ATTRIBUTES
2.1 Analytical reasoning and problem solving
X
DAT1
LAB1
LAB2
Problem solving using computational thinking in general.
2.2 Experimentation, investigation, and knowledge discovery
X
LAB1
LAB2
Course organized around experimentative and problem solving focused programming assignments.
2.3 System thinking
X
Potential and consequences of automation using software.
2.4 Attitudes, thought, and learning
X
X
DAT1
LAB1
LAB2
Programming and problem solving. Approach and ability to use reference documentation and search for knowledge on the web.
2.5 Ethics, equity, and other responsibilities
X
Consequences of software that is incorrectly or problematically specified, implemented, or applied.
3. INTERPERSONAL SKILLS: TEAMWORK AND COMMUNICATION
3.1 Teamwork
X
LAB1
LAB2
Labs are done in pairs
3.2 Communications
X
LAB1
LAB2
Labs are done in pairs
3.3 Communication in foreign languages
X
LAB1
LAB2
English terms are introduced beside the Swedish terms and descriptions. Code examples, incl. comments, are usually written in English. Code, and in-code documentation, produced by students during labs is expected to be written in English.
4. CONCEIVING, DESIGNING, IMPLEMENTING AND OPERATING SYSTEMS IN THE ENTERPRISE, SOCIETAL AND ENVIRONMENTAL CONTEXT
4.1 Societal conditions, including economically, socially and ecologically sustainable development
X
Impact and opportunities with software in a digitized society.
4.2 Enterprise and business context
X
Some examples provided during lectures.
4.3 Conceiving, system engineering and management

                            
4.4 Designing
X
Introduction to software development processes.
4.5 Implementing
X
X
LAB2
Laboratory work that illustrates the use of programming in future professional situations considering efficient use of resources.
4.6 Operating
X
Production environments and usability is introduced in the lectures when they relate to the main topic.
5. PLANNING, EXECUTION AND PRESENTATION OF RESEARCH DEVELOPMENT PROJECTS WITH RESPECT TO SCIENTIFIC AND SOCIETAL NEEDS AND REQUIREMENTS
5.1 Societal conditions, including economically, socially and ecologically sustainable development within research or development projects
X
Impact and opportunities with software in a digitized society. Consequences of ineffective use of resources, e.g. in relation to use of generative AI and AI-generated software.
5.2 Economic conditions for research or development projects

                            
5.3 Identification of needs, structuring and planning of research or development projects

                            
5.4 Execution of research or development projects

                            
5.5 Presentation and evaluation of research or development projects

                            

This tab contains public material from the course room in Lisam. The information published here is not legally binding, such material can be found under the other tabs on this page.

There are no files available for this course.