Logo

Fundamentals of Programming I

Code: 106553
Credits: 9
2026/2027
Degree programme Type Course
Bachelor in Artificial Intelligence FB 1

Contact lecturer

Name :
Alicia Fornes Bisquerra
Email :
alicia.fornes@uab.cat

Teaching staff

Pau Torras Coloma

Group languages

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

Prerequisites

None

Objectives

This subject aims to provide a general introduction to programming. The general objectives are:

  • Understanding the life cycle of software: analysis of the problem, design, implementation, and test.
  • Designing algorithms for problem solving, with a rigorous structured programming methodology.
  • Introducing a real programming language, perceiving the difference between a pseudo-algorithmic notation and the syntax of a real programming language. It includes the understanding of the lexical (valid words of the language), syntactic (rules to combine them) and semantic (meaning) aspects.
  • Understanding and applying the basic concepts of programming: control structures, data structures and subprograms.
  • Understanding and applying the basic principles of object-oriented programming: concept of class, object, data encapsulation, inheritance.
  • Familiarizing with developing environments, following some norms of style, and rules for a better comprehension of the code: comments, indentation, etc.

Learning outcomes

  • CM01 (Plan and implement software projects in the field of artificial intelligence, which fit the requirements of the application, addressing all phases of project development and following the standard principles and methods for the management and development of software projects.) Plan and implement software projects in the field of artificial intelligence, which fit the requirements of the application, addressing all phases of project development and following the standard principles and methods for the management and development of software projects.
  • KM05 (Identify the basics of structured, object-oriented programming and information representation using data structures.) Identify the basics of structured, object-oriented programming and information representation using data structures.
  • SM05 (Select the appropriate algorithmic and data representation structures and programming techniques for efficient algorithmic problem solving.) Select the appropriate algorithmic and data representation structures and programming techniques for efficient algorithmic problem solving.
  • SM06 (Develop program design, coding, debugging, and testing using the appropriate tools to ensure software quality.) Develop program design, coding, debugging, and testing using the appropriate tools to ensure software quality.

Contents

  • Problem solving: Introduction to algorithmic and programming
  • Basic concepts and control structures
  • Data structures.
  • Subprograms
  • Files
  • Prevention and detection of errors
  • Introduction to object-oriented programming

Learning activities and methodology

Title Hours ECTS Learning outcomes
Programming projects 50 2
Problem resolution 60 2.4
Individual work 35 1.4
Theoretical lessons 25 1
Problem solving seminaries 50 2

The platform Caronte (http://caronte.uab.cat/) will be used to share the materials, deliver the works/projects, consult the marks of the subject, communicate with the teaching staff, etc. To enroll the course, you must register (with name, NIU and photo) and enroll de subject (the subject code is provided on the first day of class).

The teaching methodology will be mainly focused on practical work. Classroom sessions will be organized to discuss the theoretical contents of the subject, followed by exercises and programming problems. Concretely, the different types of teaching activities are the following: 

  • Exhibition of contents. Theory activities are aimed at consolidating the most theoretical aspects of the subject, from a very practical perspective with examples. Some of these theoretical contents must have been prepared before the class: reading texts, viewing videos, searching for information, etc.
  • Participative lectures: Joint resolution of the set of proposed problems to consolidate the theoretical contents. All problems will be available in the Caronte platform, and will be self-evaluable. These activities allow the student to deepen understanding and to get personalized knowledge. They are self-evaluable to allow adjusting the pace of consolidation and to reflect on our own learning.
  • Projects: Programming short practical projects to deepen the applied theoretical concepts. These projects will be resolved in small groups, where each member must do a part of the work and put it in common with the rest of the group to have the final solution.
  • Tutoring sessions will be freely available for students to solve questions regarding the course.

 

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.

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
Programming projects 50 1 0.04 CM01, KM05, SM05, SM06
2nd Partial theory exam 25 2 0.08 KM05, SM05, SM06
1st Partial theory exam 25 2 0.08 KM05, SM05, SM06

The evaluation will be continuous, so there is no unique evaluation modality.

  • Exams (Par): There will be two individual written theoretical-practical exams. The first one (Par1) will be done approximately halfway through the semester. The second one (Par2) will take place at the end of the semester and evaluate the theoretical concepts not evaluated in Par1.
  • Retake exam: In case the Theory Mark does not reach the pass (5), students may do the retake exam, which includes the whole curriculum (all lessons).

Project Grade

  • Each project is evaluated through its deliverable, an oral presentation that students will make in class, and an individual-evaluation process. The participation of students in all three activities (preparing the deliverable, presentation and individual evaluation) is necessary in order to obtain a projects grade. The grade is calculated as follows: Project Grade = 0.6 * Grade Deliverables + 0.3 * Grade Presentation + 0.1 * Grade Individual evaluation
  • If performing the above calculation yields >= 5 but the student did not participate in any of the activities (deliverable, presentation, individual evaluation), then a final grade of 4 will be given to the corresponding project.
  • In case the deliverable is presented, but the final project grade does not reach the minimum of 5, there will be a recovery of the project. In case of not presenting the deliverable or considering it copied, there will be no retake and the subject will be considered failed. The maximum project grade that can be obtained in case of retake is 7.


GRADE INDICATORS:

The final mark is calculated as follows:

  • Partial Score 1 = Par1
  • Partial Score 2 = Par2
  • Theory Mark = 0'5*Par1 +0'5*Par2
  • Project Mark = 0’5*Proj1 + 0’5*Proj2
  • COURSE FINAL GRADE = 0'5 * Theory Mark + 0'5 * Project Mark


EVALUATION CRITERIA

  • For considering the Theory Mark, it is necessary to obtain a minimum mark of 4 in each partial to make the average.
  • For considering the Project Mark, it is necessary to obtain a minimum mark of 4 in each delivery to make the average.
  • If the student fails some of the project deliveries, the maximum score that can be obtained in the retake is 7.
  • To pass each part (theory and project), a minimum of 5 must be obtained.
  • The course will be passed if the COURSE FINALSCORE is greater than or equal to 5.
  • In case of not reaching the minimum required in any of the evaluation activities, the numerical grade of the record will be the lower value between 4.5 and the weighted average of the grades.


NOT EVALUABLE: If the student does not deliver any evaluation activity.

REPEATING STUDENTS: No separately approved part (theory, project) is kept/validated from one academic year to another.

HONORS (MH): Awarding an honors degree is the decision of the teaching staff responsible for the subject. UAB regulations indicate that MH can only be granted to students who have obtained a final grade equal to or greater than 9.00. Up to 5% MH of the total number of students enrolled can be awarded.


EVALUATION SCHEDULE:

  • Partial exams: according to the academic calendar of the School of Engineering.
  • Retake Exam: according to the academic calendar of the School of Engineering.
  • Deliveries of the projects: date and time fixed in advance at Caronte.


The dates of deliveries at Caronte may be subject to program changes for reasons of adaptation to possible incidents. These changes will always bereported at Caronte, as it is the usual mechanism for the exchange of information between teachers and students.

For each assessment activity, a place, date and time of review will be indicated in which the student can review the activity with the teacher. In this context, claims may be made about the grade of the activity, which will be evaluated by the teachers responsible for the subject. If the student does not come to this review, the activity will not be reviewed later.


COPIES AND PLAGIARISM

Without prejudice to others that are deemed appropriate and in accordance with current legislation academic discipline, irregularities committed by a student thatcan lead to a variation of the rating will be rated with a zero mark (0). Assessment activities classified in this way and by this procedure will not be recoverable. If it is necessary to pass any of these assessment activities to pass the course, this course will be suspended directly, with no opportunity to recover it in the same course. These irregularities include, among others:

  • the total or partial copy of a practice, report, or any other evaluation activity;
  • let other copy your exam/work;
  • present a group work that has not been entirely done by the members of the group;
  • present as own those materials produced by a third party, even if they are translations or adaptations, and in general works with non-original and exclusive elements of the student;
  • have communication devices (such as mobile phones, smartwatches, etc.) accessible during the theoretical assessment tests - individual practices (exams).
  • In case the student has committed irregularities in any evaluation part (and therefore it will not be possible to pass via compensation), the numerical grade of the subject will be the lower value between 3.5 and the weighted average of the grades. In summary: copying, let others copy your work or plagiarizing in any of the evaluation activities is equivalent to a failure with a grade lower than 3.5.


Use of AI (Artificial Intelligence)

Model 2 - Restricted Use: \"For this course, the use of Artificial Intelligence (AI) technologies is permitted exclusively in support tasks, such as bibliographic or information searches. Students must clearly identify which parts have been generated with this technology, specify the tools used, and include a critical reflection on how they have influenced the process and final outcome of the activity. Lack of transparency in the use of AI in this assessable activity will be considered a breach of academic dishonesty and may result in a partial or total penaltyin the activity grade, or greater sanctions in serious cases.

Bibliography

  • J. Guttag. Introduction to Computation and Programming Using Python: With Application to Understanding Data. Second Edition. MIT Press. ISBN-10: 9780262529624.
  • S. Chazallet Python 3. Los fundamentos del lenguaje.  Eni, ISBN-10: 2409006140.
  • E. Matthes. Python Crash Course: A Hands-On, Project-Based Introduction to Programming. No Starch Press ISBN-10: 1593276036.
  • M. Myers. A Smarter Way to Learn Python: Learn it faster. Remember it longer. Createspace Independent Pub  ISBN-10: 1974431479.
  • D. Phillips, C. Giridhar, S. Kasampalis. Python: master the art of design patterns. Packt Publishing, 2016.
  • Steven F. Lott. Mastering object-oriented Python. Packt publishing, 2014.
  • Clean code: a handbook of agile software craftmanship. R.C. Martin. Prentice Hall, 2008.

Software

Anaconda, which includes Python and Spyder (https://www.anaconda.com/download)

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 71 English first semester afternoon
(PAUL) Classroom practices 711 English first semester afternoon
(PLAB) Practical laboratories 711 English first semester afternoon
(PLAB) Practical laboratories 712 English first semester afternoon