Checking date: 12/06/2025 23:09:42


Course: 2025/2026

Programming techniques
(19768)
Bachelor in Neuroscience (Plan: 517 - Estudio: 389)


Coordinating teacher: ANTON FERNANDEZ, ALEJANDRO

Department assigned to the subject: Departamento de Neurociencia y Ciencias Biomédicas

Type: Compulsory
ECTS Credits: 6.0 ECTS

Course:
Semester:




Requirements (Subjects that are assumed to be known)
As an introductory course, there are no mandatory prerequisites. However, basic computer skills, file management, and fundamental mathematics concepts are assumed. To get the most out of the course, it is recommended to familiarize yourself beforehand with the Python programming language.
Objectives
The primary objective of this course is to provide students with a solid foundation in programming, with special emphasis on practical applications in the field of neuroscience. Upon completing the course, students will be able to: Understand the fundamentals of computational architecture, programming languages, and their applicability to the study of the brain. Design basic algorithms using pseudocode and flowcharts. Manage and analyze experimental data, using with Python control structures, functions, modules, and scientific libraries such as SciPy and Scikit-learn. Use appropriate data structures to represent complex experimental information (e.g., multivariate matrices, time series). Apply debugging and code optimization techniques to improve the quality of software aimed at the neuroscience domain. Handle common input/output files in neuroscientific research (e.g., data in ASCII, binary, or CSV formats).
Learning Outcomes
K14: Can describe ideas using mathematical computational models, and is conversant with their programming languages, the functioning of neural operating systems, and their posible interactions with external devices. S1: Uses a variety of techniques to find, manage, integrate and critically evaluate available information for the development of professional activities in Neuroscience, especially in the digital sphere S4: Uses their ability to analyse and synthesise, as well as to apply the principles of the scientific method in the work environment, in order to provide innovative responses to the needs and demands of society in their area. S5: Appropriately uses the scientific and technical vocabulary of the different subfields within Neuroscience. S7: Comprehends the computational and experimental tools used for analysis and quantification of neuroscience data, and can appropriately apply these tools to significant problems in neuroscience. C2: Apply knowledge about the organisation, structure and function of the Central Nervous System (CNS) to contribute to the evolution and improvement of technologies and systems for computing, data handling and analysis. C3: Apply knowledge about technologies for the study of the Nervous System and the brain (Medical Imaging, brain-machine interfaces) to develop new systems for diagnosis and treatment, as well as and other applications within Neuroscience (Artificial Intelligence, Robotics) with the aims of improving the quality of life and furthering social progress. C4: Uses advanced mathematical, statistical and computational tools to increase and improve knowledge in neuroscience and its applications. C5: Apply your neuroscience knowledge in a unifying and integrated fashion as part of a multidisciplinary team (pharmaceutical sector, health industry, diagnostic techniques, health information technologies, government agencies and regulatory bodies. C6: Apply the results of your comprehensive training to your everyday professional activities, combining Neuroscience knowledge with a solid foundation of ethical responsibility and respect for fundamental rights, diversity and democratic values. C7: Apply the scientific and technical principles you acquired during your undergraduate training, together with your own natural learning capabilities, to better adapt to novel opportunities arising from scientific and technological development.
Description of contents: programme
1. Introduction - Computer architecture - Programming languages - Compilation and execution of programs 2. Programming fundamentals - Programming paradigms - Elements of a program: data and algorithms - Basic programming tools: algorithms, flowcharts and pseudocode 3. Programming in Python - Characteristics of the Python language - Working with arrays - Expressions - Operators 4. Flow Control - Conditional statements - Loops 5. Functions and Scripts - Functions and scripts - Scripts 6. Data Structures - Characters and text - Multidimensional arrays - Cell Arrays - Structures 7. Input and Output - Import / Export data - ASCII and Binary files 8. Scientific libraries in Python - ScyPy, Scikit-learn 9. Advanced Techniques - Debugging, testing and error checking - Recursion
Learning activities and methodology
Classroom lectures. Face-to-face classes: reduced (workshops, seminars, case studies). Student individual work. Laboratory session. Final exam. Seminars and lectures supported by computer and audiovisual aids. Practical learning based on cases and problems, and exercise resolution. Individual and group or cooperative work with the option of oral or written presentation. Individual and group tutorials to resolve doubts and queries about the subject. Internships and directed laboratory activities.
Assessment System
  • % end-of-term-examination/test 60
  • % of continuous assessment (assigments, laboratory, practicals...) 40




Extraordinary call: regulations
Basic Bibliography
  • John V. Guttag. Introduction to Computation and Programming Using Python. MIT press. 2013
  • Y. Liang. Introduction to Python. 3rd ed. Harlow: Pearson Education. 2022
Additional Bibliography
  • Thomas H. Corme. Introduction to algorithms. MIT press. 2001

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