Checking date: 28/04/2023

Course: 2023/2024

Bachelor in Engineering Physics (Plan: 434 - Estudio: 363)


Department assigned to the subject: Computer Science and Engineering Department

Type: Basic Core
ECTS Credits: 6.0 ECTS


Branch of knowledge: Engineering and Architecture

Requirements (Subjects that are assumed to be known)
-Experience in the use of computers will be valuable.
Skills and learning outcomes
Description of contents: programme
1 Basic Concepts. 1.1 Structure of a computer system: hardware and software. Information encoding. 1.2 Bool algebra. 1.3 The notion of programming language. Programming paradigms: structured programming. 1.4 Basic definitions: algorithm, program, process, etc. 1.5 Compilation, debugging and execution processes. 1.6 Pseudocode. 2 Basic elements of programming. 2.1 Identifiers. 2.2 Variables and constants. 2.3 Simple datatypes. 2.4 Operators, expressions and statements. 3 Control flow. 3.1 Conditional statements. 3.2 Loop statements. 3.3 Other control flow statements. 4 Data structures and user-defined datatypes. 4.1 Definition and design principles. 4.2 Strings: concept, management and application. 4.3 Arrays, tuples and sets: concept, management and application. 4.4 Dictionaries: concept, management and application. 5 Subprograms: procedures and functions 5.1 Definition and design principles. 5.2 Function signature, parameters and invocation. 5.3 Introduction to recursive functions. 5.4 Other paradigms: Object-Oriented programming introduction. 6 Basic algorithms. 6.1 Searching and sorting. 7 Resource management. 7.1 Static vs dynamic memory 7.2 Memory basic operations: allocation and free. 8 Input/Output system. 8.1 File definition, use and types: text and binary. 8.2 File management: create, write, read and delete operations.
Learning activities and methodology
Theoretical Lectures: 1 ECTS Practical Lectures: 1 ECTS - Exercise resolution - Best coding practices - General tutoring Team Work: 3 ECTS - Project design and development - Application of best coding practices Individual Work: 1 ECTS - Contribution to team project - Study and preparation of exams
Assessment System
  • % end-of-term-examination 30
  • % of continuous assessment (assigments, laboratory, practicals...) 70
Calendar of Continuous assessment
Basic Bibliography
  • Allen B. Downey. Think Python: How to Think Like a Computer Scientist, 2nd edition. O'Reilly. 2015
  • Andrew Koenig. C Traps and Pitfalls. Addison-Wesley Professional. 1989
  • Anthony Scopatz, Kathryn D. Huff . Effective Computation in Physics: Field Guide to Research with Python. O'Reilly. 2015
  • Brian W. Kernighan / Dennis Ritchie. The C Programming Language. Pearson. 2015
  • David M. Beazley. Python Cookbook: Recipes for Mastering Python 3. O'Reilly. 2011
  • Jose María Alvarez Rodríguez. Hands on Programming with Python: Theory and Practice. Amazon KDP Publishing. 2020
  • K. N. King . C Programming: A Modern Approach, 2nd Edition. W. W. Norton & Company. 2008
  • Luciano Ramalho. Fluent Python. O'Reilly. 2015
  • Mark Lutz . Learning Python. 0'Reilly. 2013
  • Paul Barry. Head-First Python, 2nd edition. O'Reilly. 2016
  • Robert C. Martin. Clean Code: A Handbook of Agile Software Craftsmanship . Prentice Hall. 2008
  • Samuel P. Harbison, Guy L. Steele Jr. . C: A Reference Manual, 5th Edition. Pearson. 2002
  • Zed A. Shaw. Learn Python 3 the Hard Way. Addison-Wesley. 2016
Recursos electrónicosElectronic Resources *
Additional Bibliography
  • Peter Prinz, Tony Crawford. C in a Nutshell. O'Reilly Media. 2015
  • Richard M. Reese . Understanding and Using C Pointers. O'Reilly Media. 2013
Recursos electrónicosElectronic Resources *
(*) Access to some electronic resources may be restricted to members of the university community and require validation through Campus Global. If you try to connect from outside of the University you will need to set up a VPN

The course syllabus may change due academic events or other reasons.

More information: