Interactive guide to the annual programme | 1st year of Bachillerato
It is the ability to express and interpret concepts, facts and opinions orally and in writing, interacting linguistically in all social and cultural contexts.
It involves using different languages appropriately and effectively for learning and communication, taking advantage of one's own experiences to make transfers between them.
It is the ability to apply mathematical reasoning and the methods of science and technology to solve problems in diverse real-life contexts.
It involves the safe, critical and creative use of information and communication technologies for learning, work and participation in society.
It is the ability to reflect on oneself, manage one's own learning, collaborate with others constructively and deal with uncertainty.
It is the ability to act as responsible citizens and participate fully in civic and social life, based on democratic values.
It is the ability to transform ideas into action, including creativity, innovation and the ability to plan and manage projects to achieve goals.
It involves appreciating the importance of the creative expression of ideas, experiences and emotions through various media and artistic manifestations.
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.
Its inclusion is justified by the growing interest in democratic participation and in the available computer tools that connect civic thinking with computational logic.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Knows themselves and fosters ongoing personal growth, managing time and information effectively and adapting to change in order to deal with uncertainty and complexity.
Adapts and manages uncertainty, learning from mistakes constructively, to face the situations and challenges that arise in everyday life.
Collaborates constructively with others, maintaining resilience, and manages lifelong learning, contributing to their own and other people’s physical, mental and emotional wellbeing.
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.
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.
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.
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.
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.
Analyses and interprets data using mathematical and technological tools to draw relevant conclusions, assess the reliability of sources and communicate results clearly and rigorously.
Takes scientifically grounded action to promote physical, mental and social health and to protect the environment and living things.
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.
Develop software projects, individually or as a team, applying project management methodologies for planning, monitoring and presentation of the final product.
Select and use the most appropriate data types and structures for information storage and processing, considering the efficiency and complexity of operations.
Organize and store information persistently and efficiently, using database management systems and other data exchange formats to ensure its integrity and security.
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.
Know and apply fundamental concepts from different branches of computer science, such as artificial intelligence or version control, for problem solving and project development.
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.
Program applications for different environments, using programming principles and adapting algorithms to a specific programming language.
Create computer programs taking into account their efficiency both in computational cost and in modularity, cohesion and coupling.
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.
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.
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.
Program applications by selecting the most suitable data types and structures for the given context.
Incorporate data structures that enable efficient programs, minimizing resource consumption and execution time.
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.
Perform basic database manipulation operations (creation, query, update and deletion).
Work with other data repositories performing appropriate operations to meet project requirements.
Apply interaction design techniques according to style guides.
Study whether the programs created are useful and usable for their target audience, identifying shortcomings and, where appropriate, improving their usefulness and usability.
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.
Incorporate concepts from certain branches of computer science in the creation of programs and applications.
Investigate current applications to learn their inner workings.
Monitor project versions by using version control tools.
Use artificial intelligence tools to produce content (including documents for researching a topic), to program and to learn, always with a strongly critical approach.
Simulate environments with self-made and/or existing software and develop games.
There are more sessions scheduled than time available in the calendar for two fundamental reasons:
Portfolio and self-assessment
(15 sessions - Terms 1, 2, 3)
Creating the portfolio for last year and this year, and how the course works.
Learning with AI across the board
(10 sessions - Terms 1, 2, 3)
Critical use of Artificial Intelligence tools for learning.
Algorithm Design and Flowcharts
(15 sessions - Terms 1, 2)
Assessment of computational thinking and the ability to design logical solutions before programming.
Programming Practices and Data Structures
(20 sessions - Terms 1, 2, 3)
Translation of algorithms to real code, selecting and implementing efficient data structures.
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 / else | decisions: 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 llista | checks 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 math | imports a module: math.sqrt(x) |
round(x, 2) | rounds to 2 decimals |
f"Hola {nom}" | text with variables inside (f-string) |
pwd | shows which directory you are in |
ls -la | lists files with details, including hidden ones |
cd ruta | changes directory. cd .. goes up one level, cd ~ goes home |
mkdir -p ruta | creates directories (parents too if needed) |
cp -r origen destí | copies; -r for folders |
mv origen destí | moves or renames |
rm fitxer, rm -r carpeta | deletes permanently (there is no bin) |
cat fitxer | shows the whole content of a file |
less fitxer | views page by page (q to quit) |
head -n 5, tail -f | first 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.sh | gives execution permission to a script |
./script.sh, python3 prog.py | runs a script or a Python program |
> f, >> f | redirects output to a file (overwrites / appends) |
ordre1 | ordre2 | passes the output of one to the other: ls | wc -l |
wc -l fitxer | counts the lines |
man ordre | manual page for a command (q to quit) |
Ctrl+C, Ctrl+D | stops the program / closes the input |
sudo apt install paquet | installs software (Debian/Ubuntu) |
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.
Interactive map with the rules for calculating the cost, four algorithms (bubble sort, binary search, linear search and selection sort) and growth graphs.
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:
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.
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.
Comprehensive Database Project
(25 sessions - Terms 2, 3)
Complete project covering the data lifecycle from design to manipulation, import and presentation.
Quality Practice: UX, Style and Documentation
(10 sessions - Term 3)
Improving the quality of software created, focusing on end-user experience and code maintainability.
Practical Workshop: Version Control (Git)
(5 sessions - Term 3)
Introduction to professional version control tools for tracking and collaborating on software projects.
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.
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.
(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.
Programming applications
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.
My interactive conceptual hypermap that clarifies and connects the terminology used in Vocational Training (FP) and Secondary Education.
Legal foundations arranged chronologically (Official Pages):