Active filters:

Programming and Data Processing I

Interactive guide to the annual programme | 1st year of Bachillerato

[+] Filter by Learning Situations [+] Filter by Basic Knowledge [+] Filter by Key Competences [+] Filter by Assessment Criteria [+] Filter by Operational Descriptors

Key Competences

CCL: Competence in linguistic communication

It is the ability to express and interpret concepts, facts and opinions orally and in writing, interacting linguistically in all social and cultural contexts.

See the full definition

CP: Multilingual competence

It involves using different languages appropriately and effectively for learning and communication, taking advantage of one's own experiences to make transfers between them.

See the full definition

STEM: Competence in mathematics and in science, technology and engineering

It is the ability to apply mathematical reasoning and the methods of science and technology to solve problems in diverse real-life contexts.

See the full definition

CD: Digital competence

It involves the safe, critical and creative use of information and communication technologies for learning, work and participation in society.

See the full definition

CPSAA: Personal, social and learning-to-learn competence

It is the ability to reflect on oneself, manage one's own learning, collaborate with others constructively and deal with uncertainty.

See the full definition

CC: Citizenship competence

It is the ability to act as responsible citizens and participate fully in civic and social life, based on democratic values.

See the full definition

CE: Entrepreneurial competence

It is the ability to transform ideas into action, including creativity, innovation and the ability to plan and manage projects to achieve goals.

See the full definition

CCEC: Competence in cultural awareness and expression

It involves appreciating the importance of the creative expression of ideas, experiences and emotions through various media and artistic manifestations.

See the full definition

Operational Descriptors

CC3: Democratic coexistence

Reflects on ethical issues and human rights and takes part in community activities, becoming aware of the importance of citizen participation, cooperation, social cohesion and respect for diversity for democratic coexistence.

Justification for Inclusion

Its inclusion is justified by the growing interest in democratic participation and in the available computer tools that connect civic thinking with computational logic.

CCL1: Comprehension and analysis of texts

Understands, interprets and critically analyses oral, signed and written texts of different types, forms and media, assessing their reliability, form and content, in order to build knowledge, form their own opinion and take part in social and cultural life.

CCEC4-1: Creation of artistic projects

Creatively selects and combines various media and formats, as well as visual-arts, visual, audiovisual, sound or body techniques, to design and produce sustainable artistic and cultural projects.

Justification for Inclusion

This descriptor is key with the advent of generative AI. It is included to assess the ability to create a range of content (documentation, concept maps, icons, manuals) using these new tools effectively and creatively.

CD1: Information search and management

Carries out efficient and safe information searches in different digital environments, selecting, evaluating, organising and storing information and data critically and responsibly in order to turn them into knowledge.

CD2: Communication and digital collaboration

Communicates, relates and collaborates effectively, safely and responsibly in environments and with digital tools, participating in collective activities and projects and contributing to the achievement of shared objectives.

CD3: Creation of digital content

Creates, edits, integrates and reworks complex digital content in different formats to express ideas, knowledge and opinions and to share their artistic and cultural work, respecting intellectual property and copyright.

CD4: Safe and responsible use

Identifies risks and takes preventive measures when using digital technologies in order to protect devices, personal data, health and the environment, and becomes aware of the importance and need for critical, legal, safe, healthy and sustainable use of these technologies.

CD5: Solving technical problems

Sets up and uses digital devices and tools and solves simple technical problems, in order to take advantage of the opportunities that digital technology offers for lifelong learning and everyday life.

CE1: Analysis of challenges and opportunities

Analyses and assesses challenges and opportunities in the immediate and global environment, and presents innovative and sustainable ideas and solutions, applying the principles of project management and design thinking, to create value for others.

CE2: Mobilization of resources

Mobilises personal, social and cultural resources, including financial ones, to carry out ideas and projects and to make ethical and responsible economic and financial decisions, taking the social and environmental impact into account.

Justification for Inclusion

Although it is not a direct descriptor of the subject, its inclusion is justified because data processing (Knowledge C) and project management (Knowledge B) often involve analysing challenges and making informed decisions based on the feasibility and value that a software project can bring.

CP2: Communication in a foreign language

Uses one or more languages, in addition to the family language or languages, fluently, appropriately and with acceptable accuracy, to respond to their communication needs spontaneously and autonomously in different situations and contexts in the personal, social, educational and professional spheres.

Justification for Inclusion

Although the curriculum does not explicitly link this descriptor to a specific competence in this subject, its inclusion is considered fundamental. The vast majority of technical documentation, forums, and programming learning resources are in English. Developing autonomy in the use of a foreign language is a key factor for the real progress of students.

CPSAA1: Self-awareness and personal growth

Knows themselves and fosters ongoing personal growth, managing time and information effectively and adapting to change in order to deal with uncertainty and complexity.

CPSAA2: Adaptation and management of uncertainty

Adapts and manages uncertainty, learning from mistakes constructively, to face the situations and challenges that arise in everyday life.

CPSAA3: Collaboration and teamwork

Collaborates constructively with others, maintaining resilience, and manages lifelong learning, contributing to their own and other people’s physical, mental and emotional wellbeing.

CPSAA4: Managing learning

Manages their own learning, identifying their strengths and weaknesses, setting goals and planning the actions needed to achieve them, and assessing their progress and results.

CPSAA5: Future-oriented life

Designs and manages a future-oriented life project, taking into account their aspirations, values and interests, and making informed and responsible decisions for their personal, social and professional development.

STEM1: Mathematical reasoning and representation

Uses inductive and deductive methods typical of mathematical reasoning in familiar situations, and selects and applies different strategies to solve problems, critically analysing the solutions and reformulating the procedure if necessary.

STEM2: Use of scientific models

Develops and uses models based on scientific knowledge to analyse natural and social phenomena and to predict how they will evolve, taking into account their limitations and uncertainty.

STEM3: Designing and conducting investigations

Designs and carries out investigations, individually or in teams, applying the scientific method and computational thinking to pose questions and hypotheses and test them through experimentation or observation.

STEM4: Data analysis and conclusions

Analyses and interprets data using mathematical and technological tools to draw relevant conclusions, assess the reliability of sources and communicate results clearly and rigorously.

STEM5: Health and sustainability

Takes scientifically grounded action to promote physical, mental and social health and to protect the environment and living things.

Specific Competences

CEsp1: Analysis and design of algorithms

Analyse problems abstractly and computationally, identifying the data required and the processes that apply to them, in order to design algorithms and programs that solve them efficiently.

CEsp2: Project development and management

Develop software projects, individually or as a team, applying project management methodologies for planning, monitoring and presentation of the final product.

CEsp3: Use of data structures

Select and use the most appropriate data types and structures for information storage and processing, considering the efficiency and complexity of operations.

CEsp4: Information storage

Organize and store information persistently and efficiently, using database management systems and other data exchange formats to ensure its integrity and security.

CEsp5: Publication and documentation of applications

Elaborate the documentation of a computer application and design friendly and accessible interfaces to facilitate its use and maintenance, taking into account the user experience.

CEsp6: Application of IT concepts

Know and apply fundamental concepts from different branches of computer science, such as artificial intelligence or version control, for problem solving and project development.

Assessment Criteria

CA1.1: Algorithm design

Design solutions to computing problems through algorithms, applying programming elements and techniques creatively, regardless of the programming language that will be used to implement them.

CA1.2: Application programming

Program applications for different environments, using programming principles and adapting algorithms to a specific programming language.

CA1.3: Creation of efficient programs

Create computer programs taking into account their efficiency both in computational cost and in modularity, cohesion and coupling.

CA2.1: Analysis and planning

Analyze and plan the application development process based on the requirements established in the statement.

This criterion is based on problem and user-requirements analysis and on software design with diagrams, which are taught in the second year of Bachillerato.

CA2.2: Continuous improvement

Apply continuous improvement strategies applicable to the stages of the project's life cycle.

This criterion is closely linked to agile programming methodologies (SCRUM, Kanban) and version control tools (git, GitHub), which are taught in the second year.

CA2.3: Use of methodologies

Use or learn appropriate software engineering methodologies according to the characteristics of the product to be developed.

This criterion is extended in the second year because it is directly linked to the use of agile methodologies and TDD, which are taught in the second year of Bachillerato.

CA3.1: Selection of data structures

Program applications by selecting the most suitable data types and structures for the given context.

CA3.2: Implementation of data structures

Incorporate data structures that enable efficient programs, minimizing resource consumption and execution time.

CA4.1: Database design

Design databases that ensure the integrity and consistency of the data to respond to a given problem.

This criterion requires knowledge of the entity-relationship model and normalisation theory; since these are listed as content exclusive to the second year of Bachillerato, this criterion belongs mainly to the second year.

CA4.2: Manipulation of databases

Perform basic database manipulation operations (creation, query, update and deletion).

CA4.3: Use of data repositories

Work with other data repositories performing appropriate operations to meet project requirements.

CA5.1: Interaction design

Apply interaction design techniques according to style guides.

CA5.2: Usability evaluation

Study whether the programs created are useful and usable for their target audience, identifying shortcomings and, where appropriate, improving their usefulness and usability.

CA5.3: Generation of documentation

Produce the documentation the end user needs to understand how the program works, providing a guide that helps them use the program or application in a simple, intuitive and satisfying way.

CA6.1: Incorporation of concepts

Incorporate concepts from certain branches of computer science in the creation of programs and applications.

CA6.2: Application research

Investigate current applications to learn their inner workings.

CA6.3: Version control

Monitor project versions by using version control tools.

CA6.4: Critical use of AI

Use artificial intelligence tools to produce content (including documents for researching a topic), to program and to learn, always with a strongly critical approach.

CA6.5: Simulation of environments

Simulate environments with self-made and/or existing software and develop games.

Term Schedule

145 total sessions (4/week)

There are more sessions scheduled than time available in the calendar for two fundamental reasons:

  • Pedagogical flexibility: It allows going deeper into the topics that generate the most interest or need in the group, and having extra activities available in case they prove useful.
  • Adaptation to AI: The programme is designed to be modified and to accommodate the paradigm shift that artificial intelligence is bringing about in the field of development.
2026-27 school year calendar.

UP1: How do we organize our learning?

Portfolio and self-assessment

(15 sessions - Terms 1, 2, 3)

Creating the portfolio for last year and this year, and how the course works.

  • What is the school portfolio?
  • Create the portfolio with the highlights of last year.
  • Where are assignments handed in?
  • Developing mature self-assessment of results
  • Measuring the effects of classroom tactics (Hattie)

UP2: How can we learn with an intelligent assistant?

Learning with AI across the board

(10 sessions - Terms 1, 2, 3)

Critical use of Artificial Intelligence tools for learning.

  • Using AI for personalized learning
    • Study methods, improvement...
    • Personalized learning
    • Rules to make learning effective
    • Self-Assessment & Assessment by AI
  • Learning with AI (personalized learning, rules and assessment)
  • AI-assisted production (documents, programming, songs...).

UP3: How do we think like a computer?

Algorithm Design and Flowcharts

(15 sessions - Terms 1, 2)

Assessment of computational thinking and the ability to design logical solutions before programming.

  • Continuous work in the class notebook.
  • Making diagrams with the application Dia or similar.
  • Final assessment exam on algorithm design.

View the checklist

UP4: How do we translate ideas into code?

Programming Practices and Data Structures

(20 sessions - Terms 1, 2, 3)

Translation of algorithms to real code, selecting and implementing efficient data structures.

  • Program applications by selecting data types and structures.
  • Compare the efficiency between different structures for the same problem.
  • Personalized learning with AI to reinforce concepts.
Screenshot of Python code: menu program with hello world, bubble sort and factorial
Checklist
  • QuestionWhat does this function do, and why did you choose this structure over another?
  • QuestionWhat happens if the input is empty? Trace the code with this example.
  • QuestionYour list grows with each insertion and must stay sorted. If it goes from 10 to a million elements, how many comparisons might you need to search for one? What steps do you follow to insert a new one without breaking the order, and which of those steps change as the list grows?
  • QuestionIf someone else had to read this, which part would you change and why? Is there anything that isn't needed?
  • QuestionWhat does your version add that the task does not ask for? How would you do it if you had more time?
Python instructions summary
print()prints to the screen. Inside the brackets: print("Hi", name)
input()asks the user for input and returns text. You can add a message: input("Name? ")
int(), float(), str()convert types: int(input())
type()shows the type of a variable: type(x)
len()number of items in a list or text: len(list)
range()sequence of numbers, end not included: range(1, 6) → 1 to 5
if / elif / elsedecisions: if x > 0:
for x in llista:loops over all the items
while condició:repeats while the condition is true
def nom(p):defines a function; return gives back a value
llista = []empty list; list.append(x) adds to the end
llista[i]accesses a position (starts at 0; [-1] is the last)
x in llistachecks whether x is there (True or False)
dic = {"clau": valor}dictionary: key → value pairs; dic["key"]
sorted(), llista.sort()sort: the first returns a copy, the second changes the list
open("f.txt", "r")opens a file: "r" read, "w" write, "a" append
import mathimports a module: math.sqrt(x)
round(x, 2)rounds to 2 decimals
f"Hola {nom}"text with variables inside (f-string)
Bash summary (Linux terminal)
pwdshows which directory you are in
ls -lalists files with details, including hidden ones
cd rutachanges directory. cd .. goes up one level, cd ~ goes home
mkdir -p rutacreates directories (parents too if needed)
cp -r origen destícopies; -r for folders
mv origen destímoves or renames
rm fitxer, rm -r carpetadeletes permanently (there is no bin)
cat fitxershows the whole content of a file
less fitxerviews page by page (q to quit)
head -n 5, tail -ffirst 5 lines / follows the last lines live
grep -ri "text" .searches text inside files (-i ignores case)
find . -name "*.py"searches files by name
chmod +x script.shgives execution permission to a script
./script.sh, python3 prog.pyruns a script or a Python program
> f, >> fredirects output to a file (overwrites / appends)
ordre1 | ordre2passes the output of one to the other: ls | wc -l
wc -l fitxercounts the lines
man ordremanual page for a command (q to quit)
Ctrl+C, Ctrl+Dstops the program / closes the input
sudo apt install paquetinstalls software (Debian/Ubuntu)

UP5: How do we measure the efficiency of our code?

Assignment: Computational Cost Analysis

(5 sessions - Term 1)

Theoretical and practical analysis of the efficiency of the developed algorithms, learning to measure and optimize the consumption of resources.

  • Calculation of the computational cost in exercises and exams.

Interactive map with the rules for calculating the cost, four algorithms (bubble sort, binary search, linear search and selection sort) and growth graphs.

Open the map (1st year of Bachillerato) Open the map (1st year of Bachillerato)

UP6: How do we talk directly to the machine?

Introduction to the Linux Console

(6 sessions - Terms 1, 2)

The console is used instrumentally during the course to achieve other goals. When the time comes, explicit time is devoted to the study of essential commands to solidify this knowledge and assess technical autonomy.

Evaluation methodology:

  • Writing a list of commands in English explaining what they do, which is also used to assess multilingual competence (CP2).
  • Solving command sequences on paper to check the use of notes and the internalisation of the syntax (STEM4).
  • Practical execution on the computer to demonstrate application of knowledge and autonomy in problem solving (CD5, CPSAA5).

UP7: How can we find the fairest winner?

Programming Project: Condorcet Winner

(5 sessions - Terms 1, 2, 3)

Development of a program that reads voting preferences from a JSON file and determines if a Condorcet winner exists.

UP8: What is the first step before building?

Introduction to Requirements Analysis

(3 sessions - Term 2)

Before starting the database project, we learn to define what we really need in order to avoid mistakes later.

  • Identification of real customer/user needs.
  • Difference between Functional and Non-Functional Requirements.
  • Advantages of analysis and planning before programming.
  • Application of concepts to practical examples.
Requirements Analysis Scheme

UP9: How do we manage large amounts of data?

Comprehensive Database Project

(25 sessions - Terms 2, 3)

Complete project covering the data lifecycle from design to manipulation, import and presentation.

  • Design and creation of databases and tables with office software.
  • Establishing primary keys and relationships.
  • Creation of forms and subforms for data entry.
  • Practice of basic operations (CRUD): insert, query, update and delete.
  • Import and export data to and from CSV or JSON files.
  • Design and generation of reports for data visualization.

Material: data format comparison (JSON, XML) vs KDL v2.0

Screenshot of the data format comparison vs KDL v2.0, medium level Open the comparison (medium level)

UP10: How do we make our programs useful?

Quality Practice: UX, Style and Documentation

(10 sessions - Term 3)

Improving the quality of software created, focusing on end-user experience and code maintainability.

  • Application of programming style guides (e.g. Python PEP 8).
  • Usability analysis to identify shortcomings and propose improvements.
  • Generation of technical documentation and user manuals.

Infographic: User Experience (UX) from top to bottom

UP11: How do we work as a team without losing changes?

Practical Workshop: Version Control (Git)

(5 sessions - Term 3)

Introduction to professional version control tools for tracking and collaborating on software projects.

  • Version tracking of a project using Git.

UP12: What else is there in the world of computing?

Research Work: Branches of Computer Science

(10 sessions - Term 3)

Autonomous or AI-guided research into the fundamental concepts of other areas of computer science and current applications.

  • Concepts of Networks, Operating Systems, etc.
  • Analysis of the internal functioning of relevant applications.

UP13: How can we create virtual worlds and prototypes?

Simulation of real programming environments

(5 sessions - Terms 1, 2, 3)

Introduction that integrates programming and creation skills with the critical and efficient use of Artificial Intelligence tools.

  • Simulation of environments with own or available software.
  • Creation of prototypes (games, models...).

UP14: Your judgment in the age of AI

(6 sessions - Term 3)

Interactive concept map on the eight distortions that skew our judgment in the age of AI (authority, urgency, misleading numbers, repetition, fluency, cognitive offloading, motivated reasoning and overconfidence) and a four-step protocol to defend ourselves against them. It includes real cases, the key studies, prompts for checking AI answers and a test.

Thumbnail of the concept map “Your judgment in the age of AI” Open the map (Age 16 · 1st Bach.)

Basic Knowledge

A. ALGORITHMICS AND PROGRAMMING

  • Computational thinking. Algorithmics.
  • Making algorithms. Pseudocode and flowcharts.
  • Constants and variables. Basic operators.
  • Logical, arithmetic and relational operators.
  • Solving problems using algorithms.
  • Programming languages: definition and types.
  • Integrated Development Environments (IDE).
  • Coding and execution of programs.
  • Control structures: Conditional and iterative.
  • Built-in functions of the language.

See details of the evaluation criteria

B. PROJECT MANAGEMENT

  • Life cycle and stages of a project.
  • Software construction process: modularity.
  • Resource and time management. Gantt and PERT charts.
  • Traditional programming methodologies.
  • Feedback on versions and changes.

See details of the evaluation criteria

C. DATA PROCESSING

  • Basic data types, conversions and strings.
  • Static data structures (Arrays).
  • Entity-relationship model: diagrams, attributes and keys.
  • Database Management Systems (DBMS).
  • SQL language: DDL (CREATE) and DML (UPDATE, INSERT).
  • SQL queries: SELECT, filter and order.
  • Storage formats: CSV, JSON.
  • Management of text files (reading and writing).

See details of the evaluation criteria

D. PUBLICATION AND DOCUMENTATION

  • Usability and user experience (UX).
  • Input (keyboard) and output (screen) of information.
  • Design of user-friendly terminal interfaces.
  • Code: Comments and readability.
  • Documentation of an application: structure and quality.
  • User guide for the end user.

See details of the evaluation criteria

E. APPLICATION IN SIMULATED ENVIRONMENTS

Programming applications

  • 1st Bach.
    • artificial intelligence
  • 2nd Bach.
    • robotics
    • video games
    • home automation
    • cryptography
    • large-scale data processing
    • IoT

See details of the evaluation criteria

References and extras

Bloom's Taxonomy Table

A visual guide to learn how to study better. Instead of just memorising, discover how to start by analysing and prioritising information to make your study more effective.

Useful for students and families to understand how we learn and how we are assessed.

Summary table of Bloom's Taxonomy

FP and Secondary Education Terminology

My interactive conceptual hypermap that clarifies and connects the terminology used in Vocational Training (FP) and Secondary Education.

Hypermap of FP and Secondary Education terminology

Legal and Curricular Foundations

Legal foundations arranged chronologically (Official Pages):

See the detailed regulatory evolution

↑