Logo

Foundations of Software Engineering

Code: 102708
Credits: 3
2026/2027
Degree programme Type Course
Electronic Engineering for Telecommunications OB 2
Telecommunication Systems Engineering OB 2

Contact lecturer

Name :
Marc Esteve García
Email :
marc.esteve.garcia@uab.cat

Group languages

You can consult this information at the end of the document.

Prerequisites

No prior programming knowledge is required.

Objectives

The aim of the course is to introduce students to the fundamentals of software engineering, with particular emphasis on object-oriented analysis and design, as well as problem-solving through algorithms and structured programming in Python. The course seeks to develop students’ ability to model, implement, and validate simple software solutions, while promoting good programming practices and autonomy in problem-solving.

Learning outcomes

Electronic Engineering for Telecommunications
  • KU098 (Distinguish the basic programming patterns.) Distinguish the basic programming patterns.
  • SU105 (Use the theoretical foundations of programming and programming languages to develop software systems. Understand the basic architecture of a computer, its functional units and the theoretical foundations of programming.) Use the theoretical foundations of programming and programming languages to develop software systems. Understand the basic architecture of a computer, its functional units and the theoretical foundations of programming.
  • SU106 (Use the fundamentals of programming in telecommunication networks, systems and services.) Use the fundamentals of programming in telecommunication networks, systems and services.
  • SU107 (Design and implement databases when developing software applications, and specifically applied to information systems.) Design and implement databases when developing software applications, and specifically applied to information systems.
Telecommunication Systems Engineering
  • KU098 (Distinguish the basic programming patterns.) Distinguish the basic programming patterns.
  • SU105 (Use the theoretical foundations of programming and programming languages to develop software systems. Understand the basic architecture of a computer, its functional units and the theoretical foundations of programming.) Use the theoretical foundations of programming and programming languages to develop software systems. Understand the basic architecture of a computer, its functional units and the theoretical foundations of programming.
  • SU106 (Use the fundamentals of programming in telecommunication networks, systems and services.) Use the fundamentals of programming in telecommunication networks, systems and services.
  • SU107 (Design and implement databases when developing software applications, and specifically applied to information systems.) Design and implement databases when developing software applications, and specifically applied to information systems.

Contents

  • Introduction to programming and the basic paradigms of software development.
  • Programming patterns and fundamental control structures.
  • Theoretical foundations of programming and programming languages.
  • Basic computer architecture and functional units.
  • Programming applied to telecommunications systems, networks, and services.
  • Basic database concepts and an introduction to the design and implementation of applications with data persistence.
  • Problem-solving through structured and modular programming techniques.
  • Development of practical examples and applied case studies in the field of telecommunications.

Learning activities and methodology

Title Hours ECTS Learning outcomes
Lectures, problem-solving sessions and laboratory work 30 1.2 KU098, SU105, SU106, SU107
Independent study, problem solving and practical assignments 23 0.92 KU098, SU105, SU106, SU107
Supervised development of exercises and projects 22 0.88 KU098, SU105, SU106, SU107
  • Directed activities: in-person classroom and laboratory hours.
  • Supervised activities: tutorials and academic follow-up.
  • Autonomous activities: the remaining hours required to complete the total workload of the course.
Annotation: within the schedule set by the centre or degree programme, 15 minutes of one class will be reserved for students to evaluate their lecturers and their courses or modules through questionnaires.

Assessment

Continuous assessment activities

Title Weight Hours ECTS Learning outcomes
Individual programming assignment 15% 0 0 KU098, SU105, SU106, SU107
Integrative Python programming project 35% 0 0 KU098, SU105, SU106, SU107
Individual test 1 25% 0 0 KU098, SU105
Individual test 2 25% 0 0 KU098, SU105, SU106, SU107

The course will be assessed on a continuous basis through different forms of evidence of learning, combining individual tests, practical activities, and the development of an integrative Python project.

The assessment activities are as follows:

Individual test 1: a theoretical and practical test covering the first topics of the course. It accounts for 25% of the final grade.

Individual test 2: an integrative theoretical and practical test covering the content studied throughout the course. It accounts for 25% of the final grade.

Individual programming assignment: the analysis, implementation, and validation of a programming exercise in Python. It accounts for 15% of the final grade.

Integrative Python programming project: the development of a simple application integrating the main topics covered in the course, including structured and modular programming, object-oriented programming, data persistence, error handling, testing, and code documentation. It accounts for 35% of the final grade.

The final grade will be calculated using the following formula:

Final grade = 0.25 × Test 1 + 0.25 × Test 2 + 0.15 × Individual assignment + 0.35 × Integrative project

To pass the course, students must obtain a final grade of at least 5 out of 10. They must also achieve a minimum average grade of 4 out of 10 across the two individual tests. If this requirement is not met, the maximum final grade for the course will be 4.7.

The individual assignment and the project may include different stages, partial submissions, or validation activities. Teaching staff may request an explanation, a brief oral defence, or a modification of the code in order to verify authorship and the level of understanding. Activities not submitted by the established deadline will receive a grade of zero, except in duly justified cases.

The individual tests may be reassessed through a resit examination. The grade obtained will replace the grade of the corresponding test. The individual assignment and the integrative project cannot be reassessed, as they are developed and assessed progressively throughout the course.

The schedule of activities, submission deadlines, and test dates will be published on the Virtual Campus. The procedure and period for reviewing grades will be specified for each assessment activity.

Any irregularity that may affect the grading of an activity, including copying, plagiarism, impersonation, or the unauthorised use of artificial intelligence tools, will result in the application of the measures established in the UAB academic regulations. Where the use of such tools is permitted, students must declare it and be able to explain and defend the work submitted.

Software

  • Visual Studio Code
  • Python
  • Jupyter
  • Github
  • Browser

Course groups and languages

The information provided is provisional until November 30. After this date, you will be able to consult the language of each group through this link. To access the information, you will need to enter the course CODE

Type of teaching Group Language Semester Shift
(TE) Theory 31 Catalan/Spanish first semester morning-mixed
(PAUL) Classroom practices 311 Catalan/Spanish first semester morning-mixed
(PLAB) Practical laboratories 311 Catalan/Spanish first semester morning-mixed
(PAUL) Classroom practices 312 Catalan/Spanish first semester morning-mixed
(PLAB) Practical laboratories 312 Catalan/Spanish first semester morning-mixed