
Foundations of Computer Science
Code: 107845Credits: 6
| Degree programme | Type | Course |
|---|---|---|
| Electronic Engineering for Telecommunications | FB | 1 |
| Telecommunication Systems Engineering | FB | 1 |
Contact lecturer
- Name :
- Marc Codina Barbera
- Email :
- marc.codina@uab.cat
Teaching staff
- Marc Codina Barbera
- Marc Vallribera Ros
Group languages
You can consult this information at the end of the document.
Prerequisites
Any one.
Objectives
The objective of the Fundamentals of Computer Science subject is to introduce the basic concepts of computer science, the physical components of a computer, the basics of processor programming and the representation of information on the computer. Specifically,
- Learn the representation of information within a computer. This includes numbering systems (binary, decimal, hexadecimal), character encoding (ASCII, Unicode), and the representation of data such as integers, reals and booleans.
-Learn the basic components of hardware, such as the CPU, memory (RAM), storage devices (hard drives, SSD), and input and output peripherals. It explains how these elements interact and how they form part of a complete computer system.
- Learn the architecture of the processor and its programming.
- Introduce general concepts about operating systems and databases.
Learning outcomes
Electronic Engineering for Telecommunications
- KU096 (Distinguish the different types of data and their storage in memory.) Distinguish the different types of data and their storage in memory.
- KU097 (Distinguish between the different types of flow control of a computer program.) Distinguish between the different types of flow control of a computer program.
- 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.
Telecommunication Systems Engineering
- KU096 (Distinguish the different types of data and their storage in memory.) Distinguish the different types of data and their storage in memory.
- KU097 (Distinguish between the different types of flow control of a computer program.) Distinguish between the different types of flow control of a computer program.
- 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.
Contents
Block 1: Information Coding and Digital Systems
- Number systems
- Data representation in the computer
- Fundamentals of digital logic: Boolean Algebra and fundamental logic gates. Representation and simplification.
- Basic logic circuits: Concept and example of Combinational and Sequential circuits.
Block 2: Computer Architecture: CPU, Memory, and Input/Output
- CPU structure and architecture: Classic components (Control Unit, ALU, registers) and the instruction cycle.
- Design philosophies: Fundamental differences between RISC and CISC architectures.
- The memory system: Memory hierarchy, semiconductor memory (RAM/ROM), cache memory concepts, and introduction to virtual memory (paging and segmentation).
- Input/Output and storage subsystem: I/O management mechanisms (polling, interrupts, and DMA). Storage devices (HDD, SSD), RAID systems, and communication peripherals.
Block 3: Introduction to Low-Level Programming
- Hardware/Software Interface: Concept of the instruction set architecture (ISA).
- Assembly programming
- Comparative analysis: Using assembly programming as a tool to understand how different architectures interact with system resources.
Block 4: Introduction to Operating Systems and Process Management
- The Operating System: Main functions, evolution, and role as an intermediary between the user, software, and hardware.
- Process management: Process definition, transition states, and the structure of the Process Control Block (PCB).
- CPU Scheduling: Operation of software-level scheduling and fundamental algorithms (FCFS, Round Robin, priorities) for efficient processing time allocation.
Learning activities and methodology
| Title | Hours | ECTS | Learning outcomes |
|---|---|---|---|
| Therorycal classes | 36 | 1.44 | KU096, KU097, SU105 |
| Class problems and laboratory sessions | 24 | 0.96 | KU096, KU097, SU105 |
| Autonomous work | 90 | 3.6 | KU096, KU097, SU105 |
Theory classes:
Basic knowledge of the subject is given and indications on how to complete and deepen this content are given.
Problem classes:
The scientific and technical knowledge presented in the master classes is worked on. Problems are solved and practical cases are discussed. The problems promote the capacity for analysis and synthesis, critical reasoning, and the student is trained in the resolution of practical cases.
The methodology followed in problems is as follows: problem sheets are given, which the students must solve. In class, the doubts that have arisen are reviewed and those that the students have had conflicts with are resolved.
Eventually, in some problem sessions, group work is done to solve problems of subject synthesis with self-assessment.
Practices:
During the course, practical classes will be held. Students will work in groups of two.
In the practices, the student must develop the thinking habits specific to the subject and group work. The student will have to start solving algorithms.
The sessions may include self-assessment or evaluation exercises.
AI can be used as a learning tool. However, it is not permitted in the practical and assessment activities of the subject.
Assessment
Continuous assessment activities
| Title | Weight | Hours | ECTS | Learning outcomes |
|---|---|---|---|---|
| Continuous assessment tests | 65% - 75% | 0 | 0 | KU096, KU097, SU105 |
| Supervised activities | 10%-0% | 0 | 0 | KU096, KU097, SU105 |
| Practical activities | 25% | 0 | 0 | KU096, KU097, SU105 |
This subject does not have a single evaluation system.
1. ABOUT THE TYPE OF EVALUATION ACTIVITY
Up to 3 types of activities are involved in the subject grade:
- Two CONTINUOUS EVALUATION tests. The final weight in the subject is between 65% and 75%, depending on the number of supervised evaluation activities that have been carried out.
- Evaluation activities proposed in the PRACTICAL CLASSES. The final weight in the subject will be 25%. Attendance is mandatory.
- SUPERVISED EVALUATION ACTIVITIES may be carried out during the course. The maximum weight of these activities will be 10%. The weight will depend on the total number of activities carried out.
2. CONTINUOUS EVALUATION TESTS
- There will be two continuous evaluation tests. The continuous evaluation dates are set at the beginning of the course by the coordination of the degree and do not have an alternative date for recovery in case of absence.
- The weight of each test will be 50%.
- The final grade of the continuous assessment tests is the arithmetic average of the two grades.
- To be able to take an average, you must have at least 5 (out of 10) in each of the two tests.
3. EVALUATION IN PRACTICAL ACTIVITIES
The practices are approved by continuous assessment.
The assessment activities will be:
- Submission of reports and/or exercises from the practice sessions. If there are, the grade will be of 1 point (out of 10) in total.
- Assessment tests for the practical class (they may be oral).
- You must have a 5 (out of 10) in the assessment of the practices to be able to take an average with the theory grade and pass the subject.
- You must take all the practical assessment tests and get more than 2 (out of 10) in each test to be able to take an average.
4. ABOUT SUPERVISED ASSESSMENT ACTIVITIES
- They may be done during the course as collections of continuous assessment activities in class.
- There is no requirement that affects the final grade.
- They cannotbe recovered.
- If done, they may count for up to 10% ofthe final grade, which will be adjusted based on the grade of the continuous assessment activities.
5. ABOUT THE FINAL SCORE
Anyone is considered passed who
- has a grade equal to or greater than 5 (out of 10) (calculated according to the established scales) and
- has at least a 5 in the practical activities and
- does not have any grade in the continuous assessment below the minimum grade (which is 5 (out of 10)).
6. ABOUT POSSIBLE VALIDATION OF INTERNSHIPS:
At the beginning of the academic year, if possible, you will be notified if there is validation of internships. If applicable, practical classes must have been completed and passed the previous year.
7. Grades may be reviewed within the period established for each activity.
8.The awarding of the MatrĂcula de Honor grade will be at the discretion of the teaching staff for grades equal to or higher than 9, and will be granted in strict compliance with the criteria and limits set by university regulations.
A non-assessable will be considered in the event that a student has not carried out any assessment activity. The failure for not having achieved the minimum grade in any of the assessment activities is the min{average grade, 4.5}.
9. Any change in the schedule will be reported to the Virtual Campus.
10. Without prejudice to other disciplinary measures that may be deemed appropriate, and in accordance with current academic regulations, any irregularities committed by the student that could lead to a variation in the grade of an assessment activity will be graded with a zero. Therefore, copying or allowing others to copy a practical exercise or any other assessment activity will result in failing it with a zero, and if passing it is required to pass the course, the entire course will be failed. Assessment activities graded in this manner and through this procedure cannot be retaken, and therefore the course will be directly failed without the opportunity to recover it in the same academic year.
11. At the discretion of the teaching staff, in cases where it is deemed appropriate, any written exam must be subsequently validated by an oral exam. In the event of discrepancies between the results of the two exams, the oral exam will prevail.
12. In this course, the use of Artificial Intelligence (AI) technologies is not permitted in any of its phases. Any assignment that includes AI-generated fragments will be considered a breach of academic integrity and may result in a partial or total penalty on the activity's grade, or more severe sanctions in serious cases.
13. Students have the right to request the rescheduling of assessment exams exclusively in cases of serious illness, a justified exceptional situation, or when the affected exam accounts for more than 20% of the final grade (or is essential to pass the course). To exercise this right, a formal request must be submitted to the relevant academic administration office.
Bibliography
Generic book for the course:
- Linda Null. \"Essentials of Computer Organization and Architecture\", Sixth Edition, Burlington, MA: Jones & Bartlett Learning, 2023. ISBN 978-1284259445
- D. Patterson, A. Waterman. \"Guia pràctica de RISC-V. El atlas de una arquitectura abierta.\" : ISBN 978-0-9992491-2-3. Document pdf. (Recomanat pel RISC-V).
Complementary bibliography:
Specific for the processor:
- S.L. Harris, D. Harris. \"Digital Design and Computer Architecture, RISC-V Edition\". Morgan-Kaufman. 2021
Specific for digital systems:
- J. Oliver, C. Ferrer. \"Diseño de sistemas digitales: introducción práctica\". Servei de publicacions de la Universitat Autònoma de Barcelona. 1998. ISBN 84-490-1445-X
Specífic for operating systems:
- Pedro de Miguel Anasagasti, Fernando Pérez Costoya. \"Sistemas Operativos\", D. Arquitectura y Tecnología de Sistemas Informáticos, ETSE, UPM. 2016. Bajo licencia Creative Commons NoComercial CompartirIgual 4.0.
Software
Complex programming tools are not required for the development of the subject.
Network tools will be used for the introduction to assembly language programming.
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 | first semester | morning-mixed |
| (TE) Theory | 33 | Catalan | first semester | morning-mixed |
| (PAUL) Classroom practices | 311 | Catalan | first semester | morning-mixed |
| (PLAB) Practical laboratories | 311 | Catalan | first semester | morning-mixed |
| (PAUL) Classroom practices | 312 | Catalan | first semester | morning-mixed |
| (PLAB) Practical laboratories | 312 | Catalan | first semester | morning-mixed |
| (PLAB) Practical laboratories | 313 | Catalan | first semester | morning-mixed |
| (PLAB) Practical laboratories | 314 | Catalan | first semester | morning-mixed |
| (PLAB) Practical laboratories | 315 | Catalan | first semester | afternoon |
| (PLAB) Practical laboratories | 316 | Catalan | first semester | afternoon |
| (PLAB) Practical laboratories | 317 | Catalan | first semester | afternoon |
| (PLAB) Practical laboratories | 318 | Catalan | first semester | afternoon |
| (PAUL) Classroom practices | 331 | Catalan | first semester | morning-mixed |
| (PAUL) Classroom practices | 332 | Catalan | first semester | morning-mixed |