Logic plays a key role in computer science (databases, computational complexity, programming languages, artificial intelligence, hardware and software design and verification, etc..), and is undoubtedly one of the foundations that provide the maturity and agility to assimilate the future concepts, languages, techniques and tools in computer science. Similarly to architects and engineers, who mathematically analyze their products, computer scientists need to analyze the logical properties of their systems while designing, developing, verifying and maintaining them, especially when it comes to systems that are critical financially, or with respect to safety, privacy or efficiency. This course provides a solid basis for computer science logic, studying in depth the two most important logics, propositional logic and first-order logic. In the laboratory sessions, various types of practical problems are solved using logic-baed techniques such as the SAT and logic programming with and without constraints.
Person in charge
Robert Lukas Mario Nieuwenhuis (
Enric Rodriguez Carbonell (
Jose Miguel Rivero Almeida (
Maria Josefina Sierra Santibañez (
Common technical competencies
CT1 - To demonstrate knowledge and comprehension of essential facts, concepts, principles and theories related to informatics and their disciplines of reference.
- To demonstrate knowledge and comprehension about the fundamentals of computer usage and programming, about operating systems, databases and, in general, about computer programs applicable to the engineering.
- To use properly theories, procedures and tools in the professional development of the informatics engineering in all its fields (specification, design, implementation, deployment and products evaluation) demonstrating the comprehension of the adopted compromises in the design decisions.
CT2 - To use properly theories, procedures and tools in the professional development of the informatics engineering in all its fields (specification, design, implementation, deployment and products evaluation) demonstrating the comprehension of the adopted compromises in the design decisions.
- To design, develop, select and evaluate computer applications, systems and services and, at the same time, ensure its reliability, security and quality in function of ethical principles and the current legislation and normative.
CT4 - To demonstrate knowledge and capacity to apply the basic algorithmic procedures of the computer science technologies to design solutions for problems, analysing the suitability and complexity of the algorithms.
- To identify the most adequate algorithmic solutions to solve medium difficulty problems.
- To reason about the correction and efficiency of an algorithmic solution.
- To demonstrate knowledge and capacity to apply the fundamental principles and the basic techniques of the intelligent systems and its practical application.
CT5 - To analyse, design, build and maintain applications in a robust, secure and efficient way, choosing the most adequate paradigm and programming languages.
- To choose, combine and exploit different programming paradigms, at the moment of building software, taking into account criteria like ease of development, efficiency, portability and maintainability.
- To know, design and use efficiently the most adequate data types and data structures to solve a problem.
- To design, write, test, refine, document and maintain code in an high level programming language to solve programming problems applying algorithmic schemas and using data structures.
- To design the programs¿ architecture using techniques of object orientation, modularization and specification and implementation of abstract data types.
G9 [Avaluable] - Capacity of critical, logical and mathematical reasoning. Capacity to solve problems in her study area. Abstraction capacity: capacity to create and use models that reflect real situations. Capacity to design and perform simple experiments and analyse and interpret its results. Analysis, synthesis and evaluation capacity.
- Critical capacity, evaluation capacity.
G3 [Avaluable] - To know the English language in a correct oral and written level, and accordingly to the needs of the graduates in Informatics Engineering. Capacity to work in a multidisciplinary group and in a multi-language environment and to communicate, orally and in a written way, knowledge, procedures, results and ideas related to the technical informatics engineer profession.
- To study using resources written in English. To write a report or a technical document in English. To participate in a technical meeting in English.
Technical Competences of each Specialization
Computer science specialization
CCO1 - To have an in-depth knowledge about the fundamental principles and computations models and be able to apply them to interpret, select, value, model and create new concepts, theories, uses and technological developments, related to informatics.
- To evaluate the computational complexity of a problem, know the algorithmic strategies which can solve it and recommend, develop and implement the solution which guarantees the best performance according to the established requirements.
CCO2 - To develop effectively and efficiently the adequate algorithms and software to solve complex computation problems.
- To demonstrate knowledge about the fundamentals, paradigms and the own techniques of intelligent systems, and analyse, design and build computer systems, services and applications which use these techniques in any applicable field.
- Capacity to acquire, obtain, formalize and represent human knowledge in a computable way to solve problems through a computer system in any applicable field, in particular in the fields related to computation, perception and operation in intelligent environments.
CCO3 - To develop computer solutions that, taking into account the execution environment and the computer architecture where they are executed, achieve the best performance.
- To implement critical code following criteria like execution time, efficiency and security.
- To program taking into account the hardware architecture, using assembly language as well as high-level programming languages.
Coneixements bàsics de matemátiques (conjunts, funcions, relacions, conteig, combinatòria molt bàsica i técniques de demostració: inducció, reducció a l'absurd, contrarrecíproc...).
Coneixements d'algorismica, programació (C++) i estructures de dades.
Coneixements de circuits digitals i funcions Booleanes.
Capacitats de treball autònom.
En cas de no poder-se fer les classes presencials de teoria, es faran via gmeet (o similar) a l'horari establert.
En cas de no poder-se fer l'avaluació presencial, es mantindrà el mètode d'avaluació previst, però l'estudiant de LI farà els exàmens des de casa, comprometent-se a fer-los sols i en les mateixes circumstàncies que si fossin presencials.
Where we are
B6 Building Campus Nord
C/Jordi Girona Salgado,1-3
08034 BARCELONA Spain
Tel: (+34) 93 401 70 00