Guia docente 2023_24
Centro Universitario de la Defensa de la Escuela Naval Militar de Marín
Grado en Ingeniería Mecánica
 Subjects
  Computer science: Computing for engineering
   Contents
Topic Sub-topic
Concepts and basic programming techniques applied to engineering
Objectives and development:
This topic aims to explore the concepts and basic programming techniques and algorithms, as well as modular and structured programming methodologies.

Topic index:
Introduction to programming.
Programming methodologies.
- Modular programming.
- Structured programming.
Algorithms and its description.
Programming languages.
Phases in the development of a program.
Conclusions.
Introduction to C programming language Objectives and development:
Once the student has mastered the basic concepts of programming, this unit introduces the C programming language. Most of this unit will be addressed in the practical sessions of the course.

Topic index:
Data types
- Variables.
- Expressions.
- Operators.
Structure of a C program.
- Style in programming.
- Basic instructions.
- Sequential structure.
The conditional structure.
- Simple conditional structure.
- Multi-conditional structure.
The repetitive structure.
- Repetitive structures controlled by condition.
- Repetitive structures controlled by counter.
Strings and arrays.
- Strings.
- Vectors and matrices.
Files.
- Input and output with format.
- Handling files.
Structured programming. Modules and subroutines.
- Definition of functions.
- Passing parameters by value and by reference.
Conclusions.
Foundations of operating systems: concept, evolution and structure Objectives and development:
The objective of this unit is, on the one hand, to establish the concept of operating system, its functions and its aims, and on the other hand, to present its structure and main components to provide to the student with an overview.

Topic index:
Concept of operating system.
History and evolution of the operating systems: types of systems.
Components and services of the operating system.
Structure of the operating system.
Conclusions.
Introduction to database management systems (DBMS) Objectives and development:
In this unit the management systems of relational databases are presented to the students: the basic concept as well as the SQL language will be addressed.

Topic index:
Basic concepts: relational model, primary and foreign keys. Indexes.
The SQL language.
Conclusions.
Basic computer architecture Objectives and development:
This unit is intented to present the structure and main components of a computer to provide to the student with an overview of its operation.

Topic index:
History and evolution of computers.
Basic computer architecture.
Main components.
Conclusions.
Practice 0: Introduction to the computer lab and its tools. Objectives and development:
In the first session of laboratory the student will familiarise with the tools to be used during the course: Linux operating system, the command interpreter, gcc compiler and different text editors emacs, saw, nano, gedit, etc.
Practice 1: Variables. Data Input/Output. Objectives and development:
The fundamental goal of this session is that the student knows the different types of existent data, and that understands which functions allow to carry out the data input by keyboard and the data output by screen.
Practice 2: Flow diagrams. Objectives and development:
The goal of this session is that the student learns to develop flow diagrams in the design phase of a program.
Practice 3: Selective and repetitive structures. Objectives and development:
The main goal of these sessions is that the student understands the operation of the selective structures if-else and switch as well as the repetitive structures for, while and do-while.
Practice 4: Manipulation of strings and arrays. Objectives and development:
The main goal of this session is that the student understands how the mechanisms of manipulation of strings and arrays work in the C language.
Practice 5: Manipulation of files. Objectives and development:
The fundamental goal of this session is the familiarization with data files. The student learns to design and implement solutions to a problem where it is necessary to access to text file to read and/or write data, being also an objective that the student understands how the system calls work.
Practice 6: Functions. Objectives and development:
The main goal of this session is the familiarization of the student with the modular programming and the use of functions. It will have to know also the differences between passing parameters to functions by value and by reference.
Practice 7: Programming project. Objectives and development:
This practice consists in the resolution of a more complex problem, posed so that its solution needs the cooperative work of two students (or three students, as an exception).
Practice 8: Introduction to SQL. Objectives and development:
Its goal is that the students learn to connect to a management system of relational databases (in particular, MySQL) from a Linux terminal and to interact with it by using the SQL language to carry out basic tasks: to create a table, to insert data, to make queries, etc. Students are expected to work only at the level of system user, not admin.
Universidade de Vigo            | Rectorado | Campus Universitario | C.P. 36.310 Vigo (Pontevedra) | España | Tlf: +34 986 812 000