Syllabus

Fundamentals of Programming

Grundläggande programmering

Course
DIT009
First cycle
7.5 credits (ECTS)

About the Syllabus

Registration number
GU 2023/2239
Date of entry into force
2024-08-26
Decision date
2024-06-19
Valid from semester
Autumn term 2024
Decision maker
Department of Computer Science and Engineering

Grading scale

Four-grade scale, digits

Course modules

Written hall examination, 4.5 credits
Assignments, 3 credits

Position

The course is a compulsory course in the N1SOF Software Engineering and Management Bachelor's Programme.

Main field of study with advanced study

ITSOF Software Engineering - G1N First cycle, has only upper-secondary level entry requirements

Entry requirements

English 6, Mathematics 3b or 3c

Content

The course provides deep understanding of the fundamental aspects of programming. Designed for those with no prior programming experience, this course lays a strong foundation by delving into the core concepts that underpin software development. Students not only learn how to write code but also gain the essential skills to refactor and enhance it, fostering a culture of code quality, readability, and maintainability. Those that are already familiar with some programming knowledge will learn and apply guidelines on creating correct, readable, and maintainable code.

Through hands-on practice and collaborative exercises, students develop critical thinking and problem-solving skills while understanding the ethical considerations in software development. By the end of this course, students will be well-prepared to not only write good quality code but also to create software that can be easily modified, extended, and adapted for the dynamic area of software engineering.

Objectives

On successful completion of the course the student will be able to:

Knowledge and understanding

  • Explain basic programming language concepts, e.g., statements, input, output, expressions, variables, control flow constructs, argument passing, functions, and recursion.
  • Explain elementary data types and data structures, such as strings, arrays, or lists.
  • Structure programs into manageable and reusable units using concepts such as modules, or functions.
  • Explain the relation between source code, compiler, interpreters and the machine.

Competence and skills

  • Develop algorithms to solve real-world problems and implement them in code.
  • Build small software applications using a programming language and contemporary development tools.
  • Make programs that read, transform, and generate files in the file system.
  • Use standard libraries and follow best programming practices.
  • Use programming tools such as an Integrated Development Environment (IDE), debuggers, Command Line Interface (CLI), etc.
  • Write clear and well-structured reasoning text, following basic principles for argumentation and discussion around code.
  • Demonstrate the ability to refactor and improve code by identifying and eliminating redundancies, enhancing code structure, and readability.

Judgement and approach

  • Analyze and evaluate code for readability, maintainability, and efficiency, and suggest improvements to enhance overall software quality.
  • Recognize and adhere to sustainability and ethical considerations in software development, such as equity, diversity, and inclusion in software systems.

Sustainability labelling

No sustainability labelling.

Form of teaching

The teaching consists of lectures, group work, exercises, as well as supervision in connection to the exercises.

Language of instruction: English

Examination formats

The course is examined by an individual written exam carried out in an examination hall at the end of the course and implementation assignments normally carried out in groups of students. The assignments are examined based on solutions to compulsory problems handed in during the course and based on individual contribution to the group work. Retake examinations of the assignments part consist of individual assignments.


If a student who has twice received a failing grade for the same examination component wishes to change examiner ahead of the next examination session, such a request should be made to the department in writing and should be approved by the department unless there are special reasons to the contrary (Chapter 6 Section 22 of the Higher Education Ordinance).

If a student has received a recommendation from the University of Gothenburg for study support for students with disabilities, the examiner may, where it is compatible with the learning outcomes of the course and provided that no unreasonable resources are required, decide to allow the student to sit an adjusted exam or alternative form of assessment.

In the event that a course has ceased or undergone major changes, students are to be guaranteed at least three examination sessions (including the ordinary examination session) over a period of at least one year, but no more than two years after the course has ceased/been changed. The same applies to internships and professional placements (VFU), although this is restricted to just one additional examination session.

Grades

Sub-courses

  1. Written exam (Tentamen), 4.5 credits
    Grading scale: Pass with distinction (5), Pass with credit (4), Pass (3) and Fail (U)
  2. Assignements (Inlämningsuppgifter), 3 credits
    Grading scale: Pass with distinction (5), Pass with credit (4), Pass (3) and Fail (U)

The grading scale comprises: Pass with distinction (5), Pass with credit (4), Pass (3) and Fail (U). To pass the course, all mandatory components must be passed. To earn a higher grade than Pass, a higher weighted average from the grades of the components is required.

Course evaluation

The results of and possible changes to the course will be shared with students who participated in the evaluation and students who are starting the course.

Other regulations

Course literature to be announced the latest 8 weeks prior to the start of the course.