This version of the course guide is provisional until the period for editing the new course guides ends.

Logo UAB

Introduction to Programming

Code: 104383 ECTS Credits: 6
2025/2026
Degree Type Year
Computational Mathematics and Data Analytics FB 1

Contact

Name:
Roberto Benavente Vidal
Email:
robert.benavente@uab.cat

Teachers

Enric Sala Esteva

Teaching groups languages

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


Prerequisites

Since this is an introductory course, it is assumed that no prior knowledge of the subject exists.

However, it is advisable to have user-level knowledge of some type of platform (Windows, Mac or Linux).

For in-person classroom activities, it is essential to have a laptop to complete the coursework.

 


Objectives and Contextualisation

This course is general and introductory to programming. It will delve into the methodological aspects of programming and the learning of a high-level language. Therefore, the general objectives proposed are the following:

  • Understanding the software lifecycle: problem analysis (understanding what is being asked of us), design (proposing a solution to the problem), implementation (coding the chosen solution in a programming language), testing (systematically carrying out a test to ensure the correctness of the implemented solution).
  • Providing students with the ability to design algorithms for problem-solving by progressively and systematically introducing a rigorous and structured programming methodology, based primarily on the top-down algorithm design technique.
  • Introducing the student to a real programming language. The goal is for the student to understand the difference between the flexibility of the pseudo-algorithmic notation used in the initial topics and the strict syntax of a real programming language, both in its lexical (valid words in the language), syntactical (rules for combining them), and semantic (their meaning) aspects.
  • Training students to develop programs following style rules aimed at achieving quality programs. These style rules include those that facilitate code comprehension, such as the use of comments, code indentation, and appropriate names for data types, etc.

 


Learning Outcomes

  1. CM06 (Competence) Develop effective algorithmic solutions to computational problems in accordance with the established requirements.
  2. CM07 (Competence) Analyse the computational complexity of the algorithmic solutions to develop and implement the one that guarantees the best performance.
  3. CM08 (Competence) Ensure the correct functioning of an algorithmic solution in accordance with the requirements of the problem to be solved.
  4. KM06 (Knowledge) Recognise the basic concepts of computer logic, structure and programming.
  5. KM07 (Knowledge) Describe the basic functioning of computer systems.
  6. KM08 (Knowledge) Recognise the methods, systems and technologies specific to computation.
  7. SM07 (Skill) Use operating systems and software commonly used in various fields.
  8. SM08 (Skill) Use algorithmic and data representation structures suitable for problem-solving.

Content

Unit 1: Introduction to computer science

History. Functional structure of the computer. Programs/instructions. Conceptual levels of the computer.

Unit 2: Problem solving: introduction to algorithms and programming.

Introduction to problem solving. Concept of algorithm. Phases in algorithm development. Programming as an engineering discipline. Software life cycle. Basic elements of an algorithm. Tools for representing algorithms. Programming languages. Classification. Language translators: Compilers and interpreters.

Unit 3: Basic concepts and control structures

Definition of variables and constants. Basic data types. Sequential structure. Selection or conditional structures. Iterative or repetitive structures.

Unit 4: Data structures

One-dimensional arrays: strings, tuples, and lists. Searching and traversal.

Unit 5: Subprograms

The concept of a subprogram as an abstraction of operations. Locality, nesting, scope, and visibility. Definition of functions and procedures. Calling functions and procedures. Top-down modular design.

Unit 6: Files

Basic definitions. Data input/output in files. File access type.

Unit 7: Error prevention and detection

Type of errors. Exceptions and asserts. Preventive programming. Program debugging.

Unit 8: Introduction to object-oriented programming

Classes and objects. Attributes and methods. Encapsulation. Class definitions. Inheritance.

Unit 9: Complex data types

Lists: Iterators, Generators, Functional Paradigm, and List Comprehensions. Sets. Dictionaries.

 


Activities and Methodology

Title Hours ECTS Learning Outcomes
Type: Directed      
Practical classes 13 0.52 CM06, CM07, CM08, SM07, SM08, CM06
Problem classes 26 1.04 CM06, CM07, CM08, SM07, SM08, CM06
Theory Classes 10 0.4 KM06, KM07, KM08, SM08, KM06
Type: Supervised      
Proyecto de programación 25 1 CM06, CM07, CM08, SM07, SM08, CM06
Type: Autonomous      
Preparation classes and personal study 30 1.2 KM06, KM07, KM08, KM06
Resolution of self-assessed problems (individual) 42 1.68 CM06, CM07, CM08, SM07, SM08, CM06

The management of the course's teaching will be carried out through the Caronte document management system (http://caronte.uab.cat/), which will be used to view materials, manage practice groups, submit assignments, view grades, communicate with the teaching staff, etc. To use it, follow these steps:

  1. Register as a user by providing your name, ID number, and a passport photo in JPG format. If you've already registered for another subject, you don't need to do so again; you can skip to the next step.
  2. Enroll in the "Python Programming" course, using the code provided on the first day of class.

The course will be developed using a flipped classroom methodology. This means that students will need to develop some knowledge before the in-person sessions, which will primarily involve practical activities aimed at addressing as many cases as possible to understand the complexity involved in solving a programming problem.

Before the class. The basic concepts are covered before the in-person sessions using materials provided a week in advance on the Caronte platform. The materials covered will include written documentation, multimedia content, and learning activities.

Each student should prepare for classes before attending, reviewing the materials as many times as necessary to assimilate the concepts. As a guide, it is recommended to dedicate a number of hours per week equivalent to the class time, approximately 2 to 3 hours per week. For each topic, a questionnaire will be provided to assess the degree of achievement of the content covered.

The class. The objective of the in-person sessions is to move from information to knowledge. We will emphasize creating knowledge applicable to the analysis and solution of specific problems. The class structure will be:

  • Review of the basic concepts of the topic to be covered (15 min). The objective is to resolve any doubts that may exist regarding theoretical aspects that are not understood and to monitor the acquisition of basic concepts.
  • Problem-solving (remainder of class time). The goal is to experiment with a practical task that allows you to apply the concepts learned to solve challenges and thus share and create knowledge.

After the class. The goal is to consolidate knowledge. The Caronte platform offers a set of assessable, self-correcting problems that should allow students to deepen their understanding of the topics and personalize their knowledge. The self-assessment allows students to adjust the pace of consolidation to each student and foster reflection on their own learning.

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

Continous Assessment Activities

Title Weighting Hours ECTS Learning Outcomes
Final exam 45% 2 0.08 CM06, CM07, CM08, KM06, KM07, KM08, SM08
Graded in-class activities 10% 0 0 CM06, CM07, CM08, KM06, KM07, KM08, SM07, SM08
Intra-semester exam 15% 2 0.08 CM06, CM07, CM08, KM06, KM07, KM08, SM08
Practical works 15% 0 0 CM06, CM07, CM08, SM07, SM08
Problem-solving assignments 15% 0 0 CM06, CM07, CM08, SM07, SM08

Scheduled evaluation activities

The subject consists of the following assessment activities:

Activity

Type

Weight

Minimum grade

Recoverable

Intrasemester exam

individual

15%

No

Yes

Final exam

individual

45%

5

Yes

Lab works

group

15%

5

Yes

Problem-solving assignments

individual

15%

No

Yes

Graded class activities

individual

10%

No

No

To pass the course, you must have a minimum grade of 5 on the final exam and the Lab works.

 

Scheduling evaluation activities

The schedule of assessment activities will be announced on the first day of the course and will be made public through Caronte and in the exams section of the degree website.

 

Recovery process

Students may take the make-up exam provided they have completed a set of activities that represents at least two-thirds of the total grade for the subject. In particular, if the student has not taken the final exam, they will not be able to take the make-up exam.

The final exam may be made up on the date set by the degree coordinator. If a make-up exam is taken, the grade for this exam may also replace the intra-semester exam grade if the make-up exam grade is higher than the intra-semester exam grade.

The practical Lab assignments can be made up in a second submission on the date specified in the assessment activities calendar, which will be given on the first day of the course and made public through Caronte.

Problem submissions can be made up at any time during the course by submitting them again and evaluating them with the auto-corrector.

According to the Degree Coordinator and the School of Engineering administration, graded class activities cannot be recovered.

 

Qualification review procedure

For exams (mid-semester,final, and make-up exams), a review location, date, and time will be indicated so students can review the activity with the faculty. In this context, students may submit complaints about the activity grade, which will be evaluated by the faculty responsible for the subject. If the student does not attend this review, the activity will not be reviewed later.

For all other activities, if any errors are detected in the correction, you may request a review at any time, up until the date of the make-up exam review.

 

Grades

Non-Evaluable (NA): A student will be considered non-evaluable (NA) if he/she has not attended any of the following evaluation activities: subject exams (intra-semester, final and recovery), practicals and evaluable activities in class.

Final grade: Calculated as the weighted sum of the evaluation activities according to the criteria set out in the evaluation activities section.

If a student fails the course because one of the assessment activities does not achieve the minimum required grade, the numerical grade on the transcript will be the lower of 4.5 and the weighted average of the grades. The exceptions are that a grade of "Not Assessable" will be awarded to students who do not participate in any of the assessment activities, and the numerical grade on the transcript will be the lower between 3.0 and the weighted average of the grades if the student has committed irregularities in an assessment activity.

Honors grade: Awarding an honor roll is the decision of the faculty responsible for the course. UAB regulations state that honor rolls may only be awarded to students who have obtained a final grade equal to or higher than 9.00. Honor rolls may be awarded to up to 5% of the total enrolled students. If the number of students with a grade greater than or equal to 9 exceeds 5% of the total enrolled, the following prioritization criteria will be applied in the order listed below:

  1. Students who have completed fewer recovery activities.
  2. Students with the highest final grade.
  3. Students with the highest grade on the final exam
  4. Students with the highest grade on the mid-semester exam

 

Irregularities committed by students

Without prejudice to other disciplinary measures deemed appropriate, and in accordance with current academic regulations, any irregularities committed by a student that may lead to a grade variation in an assessable activity will be graded with a zero (0). Assessment activities graded in this manner and by this procedure will not be recoverable. If it is necessary to pass any of these assessment activities to pass the course, the subject will be immediately failed, with no opportunity to recover it in the same academic year. These irregularities include, among others:

  • the total or partial copying of a practice, report, or any other assessment activity;
  • allow copying;
  • present group work not entirely completed by the group members (applied to all members, not just those who have not worked);
  • unauthorized use of AI (e.g., Copilot, ChatGPT or equivalent) to solve exercises, practices and/or any other evaluable activity;
  • present as one's own materials prepared by a third party, even if they are translations or adaptations, and generally works with non-original and exclusive elements of the student;
  • have communication devices (such as mobile phones, smart watches, camera pens, etc.) accessible during individual theoretical-practical assessment tests (exams);
  • talk with classmates during individual theoretical-practical assessment tests (exams);
  • copying or attempting to copy from other students during theoretical-practical assessment tests (exams);
  • use or attempt to use material relatedto the subject during theoretical and practical assessment tests (exams), when these have not been explicitly permitted.

In future years of this course, students who have committed irregularities in an assessment process will not have any of their completed assessment activities validated, nor will they be eligible for any specific assessment regulations for repeating students.

 

Uses of AI

For this subject, the use of Artificial Intelligence (AI) technologies is permitted exclusively for support tasks, such as searching for information, interpreting and explaining programs, answering questions, etc. Under no circumstances is AI permitted for programming assignments submitted as part of the assessment. Any work that includes AI-generated fragments will be considered a breach of academic honesty and will result in the application of the regulations regarding irregularities by the student.

 

Evaluation of repeating students

Repeating students must complete the entire course. No grades from previous years are retained.

  

Single evaluation

This subject offers a single evaluation system.

The single assessment of the subject will consist of the following assessment activities:

Activity

Type

Weight

Minimum grade

Recoverable

Final exam

individual

60%

5

Yes

Lab works

group

15%

5

Yes

Problem-solving assignments

individual

15%

No

Yes

Practical Questionnaire

individual

10%

5

Yes

To pass the course, you must achieve a minimum grade of 5 on the final exam, the practical lab works, and the practical questionnaire.

The same make-up system will be applied as for continuous assessment, except for the items referring to the intra-semester exam. The practical questionnaire can be made up on the day of the make-up exam.

The review of the final grade follows the same procedure as for continuous assessment.

The same non-assessable criterion will be applied as for continuous assessment.

 


Bibliography

J. L. Gahete Díaz, C. M. Vallez Fernández, A. Fernández-Pacheco Sánchez-Migallóm. Python Programming FundamentalsMcGraw Hill, 1st edition, 2024. ISBN-10: 9788448645274

J. Guttag.Introduction to Computing and Programming with Python: With Application to Data Understanding. MIT Press, second edition, 2016. ISBN-10: 9780262529624

S. Chazallet.Python 3: The Language Basics. ENI Editions, 2nd edition, 2016. ISBN-10: 2409006140

E. Matthes.Python Crash Course: A Practical Introduction to Project-Based Programming.  No Starch Press, 1st edition, 2016. ISBN-10: 1593276036 (Online version available:https://ebookcentral.proquest.com/lib/uab/detail.action?docID=4503145)

Mr. Myers.A smarter way to learn Python: Learn it faster. Remember it longer.. Createspace Independent Pub, 2017. ISBN-10: 1974431479

L. Joyanes Aguilar.Programming Fundamentals: Algorithms, Data Structures and Objects. 5th Edition, McGraw-Hill, 2020. ISBN-10:8448161114 (Online version available:https://www-ingebook-com.eu1.proxy.openathens.net/ib/NPcd/IB_Escritorio_Visualizar?cod_primaria=1000193&libro=10211)

 


Software

The latest version of the Anaconda package will be used, which includes Python 3.x and the Spyder editor (https://www.anaconda.com/download/success).

 


Groups and Languages

Please note that this information is provisional until 30 November 2025. You can check it through this link. To consult the language you will need to enter the CODE of the subject.

Name Group Language Semester Turn
(PLAB) Practical laboratories 1 Catalan first semester morning-mixed
(PLAB) Practical laboratories 2 Catalan first semester morning-mixed
(TE) Theory 1 Catalan first semester morning-mixed