General Data

Code: V05G301V01105
Number of credits: 6.00
Status: Core
Academic Year:
Term:
Available for Mobility Students: Yes

Coordination

Description

The aim of the course is to provide students with basic skills to program in a high-level language.

The programming paradigm followed is that of structured programming.

English Friendly subject: International students may request from the teachers: a)
resources and bibliographic references in English, b) tutoring sessions in English, c) exams
and assessments in English.

Requirements

Subjects that it is recommended to have taken before:

  • Computer Architecture/11585-53339

Instructors

Silvia García Méndez (Coordinator, sgarcia@gti.uvigo.es)

Francisco Fernández Masaguer

Fernando Ariel Mikic Fonte

Estrella Sousa Vieira

Contents

Lecture 1: The algorithm and the programming languages.1. A computer’s structure and operation
2. How the program gets into the computer
3. C programming language
4. The process of developing programs
5. Simple programming examples
6. Software engineering concepts

Lecture 2: Grammar and basic elements
of C language.1. Basic elements of a C program
2. Identifiers
3. Expressions
4. Declaration and initialization
5. The assignment statement
6. Formatted input/output

Lecture 3: Iteration and selection statements.1. Control statements
2. Decision statements: (a) if statement (b) if-else statement (c) switch statement
3. Iteration statements: (a) do-while statement (b) while statement (c) for statement
4. Statements for altering the control flow: break and continue

Lecture 4: Arrays and pointers.1. Data structures
2. Arrays: (a) one-dimensional arrays (b) two-dimensional arrays
3. Strings
4. Copy of arrays

Lecture 5: Functions.1. Function declaration and definition
2. Functions with no parameters
3. C inter function communication: local, global and static variables
4. Functions with parameters by value

Lecture 6. Pointers.1. Pointers
2. Pointer arithmetic
3. Dynamic memory allocation
4. Arrays and pointers
5. Pointers to pointers
6. Functions with parameters by reference
7. Command line arguments

Lecture 7: Files.1. Introduction: types of files
2. Text files in C
3. Declaration
4. File opening and closing
5. File management
6. Operations on characters
7. Operations on strings
8. Formatted operations

Lecture 8: Structured type variables.1. Introduction: Structured data types
2. struct type. Declaration
3. struct type. Operations
4. Pointers and struct type
5. Struct as parameters
6. Creation of data types

Lecture 9: Lists.1. Introduction: The need for dynamic data structures
2. Dynamic data structures
3. Linked lists: (a) types (b) most common operations

 

Learning Outcomes

  • C7. Know and make use of the fundamentals of programming in networks, systems and telecommunication services.
  • C35. Develop programs according to the basic principles of software engineering quality, taking into account the main existing sources of norms, standards and specifications.
  • D1. Demonstrate autonomy to learn new knowledge and techniques appropriate to the design, development or operation of telecommunication systems and services.
  • D25. Conceiving Engineering within a framework of sustainable development.
  • D27. Promote cooperative work, communication skills, organization, planning, and acceptance of responsibilities in a multilingual and multidisciplinary work environment that fosters education for equality, peace, and respect for fundamental rights.
  • D30. Solve problems with initiative, decision-making, creativity, and the ability to communicate and transmit knowledge, skills, and abilities, understanding the ethical and professional responsibility of the Telecommunications Technical Engineer's work.
  • D32. Work in a multidisciplinary group and in a multilingual environment and communicate, both in writing and orally, knowledge, procedures, results and ideas related to telecommunications and electronics.

Recommended Readings and Tools

Subjects that continue the syllabus

  • Programming II/V05G301V01110

 

Planned Activities

  • Introductory activities.
    • Introduction to theoretical and practical activities.
  • Lecturing.
    • Professors present the main theoretical contents related to the subject.
    • These sessions can include the development of works and programs by the students.
    • Through this methodology the competencies D25 and C7 are developed.
  • Laboratory practical.
    • During the first part of the term, the students codify, compile, and document simple programs guided by the professors.
    • In the laboratory, the Ubuntu Linux operating system and the gcc compiler will be used.
    • Some of these activities can require the submission of a report in order to be evaluated.
    • Through this methodology the competencies D1, D25, D27, D30, D32, C7, and C35 are developed.

Assessment Methods and Criteria

  • Laboratory practice (50% of the final grade)
    • The student will take two midterm laboratory tests consisting in the development of small programs on the computer.
    • Each of these tests will assess the student's progress on a portion of the laboratory practical exercises.
    • The final laboratory test will assess the student's progress on the practical exercises as a whole.
  • Objective questions exam (40% of the final grade)
    • The student will take one midterm theoretical test that may consist of short answer questions and multiple choice questions.
    • This exam will assess individually the student's mastery of the concepts introduced in the lecture sessions.
    • The final theoretical exam will also contain this type of questions.
  • Problem and/or exercise solving (10% of the final grade)
    • The theoretical exams will have a part consisting of problem and/or exercise solving. 

Other comments on the Evaluation

Following the guidelines specific to the degree program, each student will have 2 opportunities (the ordinary and extraordinary calls) to pass the course.

Furthermore, in the ordinary call, there will be 2 evaluation procedures (continuous and global).

ASSESSMENT TESTS

Throughout the semester, several intermediate assessment tests will be given. Specifically, there will be two Midterm Laboratory Tests (PL1 and PL3) and one Midterm Theoretical Test (PT2). The schedule of the different intermediate assessment tests will be approved by the Academic Degree Committee (CAG) and will be available at the beginning of the semester.

During the regular examination period of the School, the Final Theoretical Test (ETF) and the Final Laboratory Test (ELF) will be given.

During the extraordinary examination period of the School, the Extraordinary Theoretical Test (ETX) and the Extraordinary Laboratory Test (ELX) will be given.

Each theoretical test may include short-answer and/or multiple-choice questions, as well as problem-solving and/or exercise resolution questions. It assesses students' knowledge of the content covered in the lectures.

All the practical exercises are mandatory. Prior to each laboratory test, it will be necessary to have uploaded to Moovi all the corresponding assignments for that test. Each laboratory test consists of making modifications to the submitted practical exercises. It evaluates those submitted practical exercises.

-----------------------------------------------------------------------------------

ORDINARY CALL

Each student taking this course may choose between the 2 evaluation procedures: continuous assessment and global assessment.

Taking the second midterm test (PT2) will be interpreted as the decision to choose continuous assessment. No taking it will be interpreted as the decision to choose global assessment.

-------------------------------

CONTINUOUS ASSESSMENT

The condition for passing the course using the continuous assessment procedure is obtaining a final grade (NFC) equal to or higher than 5.

The final grade for continuous assessment will be calculated as the weighted arithmetic mean of the midterm and final test grades. It will be given by the following expression:

NFC = 0.6 NPP + 0.2 ETF + 0.2 ELF

Where:

    NPP is the Midterm Test Grade, calculated as the weighted arithmetic mean of all midterm tests, according to the following expression: NPP = (1PL1 + 3PT2 + 2*PL3) / 6.

    ETF is the grade obtained on the Final Theoretical Test.

    ELF is the grade obtained on the Final Laboratory Test.

A minimum grade of 2.5 points will be required in the three components of this grade (NPP, ETF, and ELF). If the student fails to reach this minimum in any of them, the final grade for continuous assessment will be at most 4.0 (fail).

Continuous assessment consists of the tests detailed in this guide, which are not recoverable. In other words, if a student cannot complete them within the specified timeframe, the teaching staff is not obliged to repeat them.

Before each test, the date and procedure for reviewing the grades will be indicated. Students will have the option to know the grade of each test and review the correction within approximately 2 weeks.

-----------------------------

GLOBAL ASSESSMENT

The condition for passing the course using the global assessment procedure is obtaining a final grade (NFG) equal to or higher than 5.

This method will consist of the same final tests as the continuous assessment, although with different weights. The final grade for global assessment will be given by the following expression:

NFG = (ETF + ELF) / 2

A minimum grade of 2.5 points will be required in the two components of this grade (ETF and ELF). If the student fails to reach this minimum in any of them, the final grade for global assessment will be at most 4.0 (fail).

------------------------------

Each student taking the final tests for the course will have both grades calculated: the final grade for continuous assessment (NFC) and the final grade for global assessment (NFG). The higher of the two grades will be awarded as the final grade in the ordinary call.

------------------------------

The grade will be "No-show" if the student does not attend any test after the first Midterm Test (PL1).

------------------------------

EXTRAORDINARY CALL

Each student who does not pass the course in the ordinary call will have a second opportunity.

In the extraordinary call, the condition for passing the course is obtaining a final grade (NFX) equal to or higher than 5.

The final grade in the extraordinary call will be given by the following expression:

NFX = (NTX + NLX) / 2

Where:

    NTX is the Extraordinary Theoretical Grade: if the student takes the Extraordinary Theoretical Test, NTX will be the grade obtained in that test: NTX = ETX. If not, NTX will be the theoretical grade obtained in the ordinary call: NTX = 0.6 PT2 + 0.4 ETF, as long as in ETF the obtained score is of 2.5 or more, otherwise the NTX must be taken.

    NLX is the Extraordinary Laboratory Grade: if the student takes the extraordinary Laboratory Test, NLX will be the grade obtained in that test: NLX = ELX If not, NLX will be the laboratory grade obtained in the ordinary call: NLX = 0.2 PL1 + 0.4 PL3 + 0.4 ELF, as long as in ELF the obtained score is of 2.5 or more, otherwise the NLX must be taken.

A minimum grade of 2.5 points will be required in the two components of this grade (NTX and NLX). If the student fails to reach this minimum in any of them, the final grade in the extraordinary call will be at most 4.0 (fail).

------------------------------

END-OF-PROGRAM TEST

Following the guidelines specific to the degree program, students who have 3 or fewer courses remaining to graduate will have end-of-program test call in those courses.

In the end-of-program test call, the condition for passing the course is obtaining a final grade (NFX) equal to or higher than 5.

In this call, a test with short-answer and/or multiple-choice questions, as well as problem-solving and/or exercise resolution questions, will be conducted (End-of-program Theoretical Test, ETZ), and a laboratory test evaluating the lab work (End-of-program Laboratory Test, ELZ). The final grade in the end-of-program test call will be given by the following expression:

NFZ = (ETZ + ELZ) / 2

A minimum grade of 2.5 points will be required in the two components of this grade (ETZ and ELZ). If the student fails to reach this minimum in any of them, the final grade in the end-of-program test call will be at most 4.0 (fail).

-------------------------------------

The grade obtained in any of the assessable tasks will be valid only for the academic year in which they are performed, meaning that no grade is carried over from one year to the next.

-------------------------------------

If plagiarism is detected on any of the assignments/tests, the grade will be Fail (0), and the teaching staff will report the incident to the School's administration for appropriate action to be taken.

-------------------------------------

The use of generative artificial intelligence (GAI) is permitted in the completion of academic activities for this subject. Its use must be ethical, critical, and responsible. If GAI is used, any results it provides should be critically evaluated, and any generated citations or references must be carefully verified. Additionally, it is recommended to disclose the tools used.

-------------------------------------