General information


Subject type: Basic

Coordinator: Julián Horrillo Tello

Trimester: Second term

Credits: 6

Teaching staff: 

Montserrat Rabassa Jou

Skills


Specific skills
  • CE3. Have basic knowledge about the use of computer programming, operating systems, databases and computer programs of application in engineering.

Description


The various topics covered in the course are designed to train students in learning the fundamental concepts of computer programming that allow the development of small and medium-sized programs at the industrial level.

This subject has methodological and digital resources to make possible its continuity in non-contact mode in the case of being necessary for reasons related to the Covid-19. In this way, the achievement of the same knowledge and skills that are specified in this teaching plan will be ensured. The Tecnocampus will make available to teachers and students the digital tools needed to carry out the course, as well as guides and recommendations that facilitate adaptation to the non-contact mode.

Learning outcomes


At a general level, this subject contributes to the following learning outcomes specified for the subject to which it belongs (Basic Computer Science):

  • Apply the basic concepts of computer programming 
  • Demonstrate skills in the use of basic programming techniques and tools 
  • Ability to solve problems by developing small and medium-sized programs at the industrial level
  • Ability to abstract in the use of models for solving real problems
  • Ability to organize personal work 
  • Use oral and written communication and independent work fluently
  • Put into practice the mode and dynamics of teamwork 

At a more specific level, at the end of the course the student must be able to:

  • LO1: Demonstrate knowledge and understanding of concepts related to the structure of a computer and operating systems.
  • LO2: Write simple programs that use sequential and / or conditional structures, code them in a high-level programming language, test and debug them.
  • LO3: Write programs that use iterative structures, code them in a high-level programming language, test and debug them. The most appropriate algorithmic schemes must be selected.
  • LO4: Write programs that use the functional decomposition technique that allow them to be divided into simpler subproblems, coded in a high-level language, tested and refined.
  • LO5: Write programs that use sequences to store data, encode them in a high-level imperative language, test and debug them.
  • LO6: Organize personal work
  • LO7: Work autonomously and use oral and written communication fluently.
  • LO8: Work in a team

Working methodology


All the theoretical concepts of the subject will be exposed in theory classes (large groups). In these classes, and at the discretion of the teachers, exercises and problems of a more practical nature will also be solved. Likewise, and always at the discretion of the teachers, students may be asked to solve, individually or in groups, short problems and / or exercises. These activities, which due to their optional nature and brevity are not reflected in the list of activities, will serve the student as a tool for self-assessment of their achievement of the contents of the subject and may be used by the teacher. to make decisions about the final grade of the good student and that never to the detriment of the numerical grade calculated according to the grading system indicated above.

The more practical concepts and everything that can essentially be considered the practical application of the theoretical concepts will be worked on in small (laboratory) groups. In the sessions scheduled for this purpose, the appropriate tools will be given to solve the scheduled activities well and it is expected that these will be extended from a temporal point of view beyond the laboratory hours and that, consequently, students must complete them during the time of autonomous learning.

 

Contents


1. INTRODUCTION TO COMPUTERS

Functional structure of a computer. Internal operation of a computer. Introduction to operating systems: types of operating systems, the operating system as a virtual machine, process management and memory management

2. INTRODUCTION AND GENERAL CONCEPTS OF PROGRAMMING

Algorithms and programs. Programming languages ​​Programming environment Programming process Anatomy of a simple program Compilation and interpretation

3. BASIC CONCEPTS OF PROGRAMMING 

Variables, types and assignment Assessment of expressions Reading and writing Forms of execution and control structures: sequential, conditional / alternative and iterative Basic iterative schemes

4. FUNCTIONAL DECOMPOSITION AND DESCENDING DESIGN

Decomposition of problems into subproblems Functions and procedures. Parameterization

5. TYPES OF COMPOUND DATA

Sequences: Chains. Lists 

Learning activities


A series of activities of an eminently practical nature (short exercises, problems ...) are made available to students, which are the basis of the learning activities of the subject. These activities will have to be solved by the students, often in a non-contact way, following the instructions of the teachers and will also be worked in class, either as examples in the theory sessions, or in the laboratory sessions. Although these activities will be optional (teachers will not individually verify the performance by students), they will be essential to achieve the theoretical and practical knowledge of the subject.

In order to gather evidence of the achievement of the expected learning outcomes, the following evaluative activities are carried out (practices and exams):

PRACTICE 1. 

In this practice, students have a first contact with the program development environment that must be used in all practices and activities of the subject. In the first part, it is the teacher who makes the presentation of the environment, showing them those elements that will be most useful to them. In the second part, the student is faced with solving various problems.

In this first activity, the student learns to use the most basic options of a computer program, specifically a programming environment, which through a programming language allows him to codify the problems requested in the practice sessions and activities of the subject. As well as advancing the subject the student will learn more functions of the computer program, deepening in the necessary parts to develop the syllabus of the subject. The student must understand and comprehend the entire programming process that takes place when using a programming environment.

Completion of this activity contributes to the achievement of specific competence E3, general competence CB1, professional competence CP3 and learning outcomes RA1, RA2, RA6 and RA7.

PRACTICE 2. 

This practice is specifically intended for students to practice coding and debugging programs of a conditional and iterative nature and that can be designed by applying the basic iterative schemes presented in the theory class. The student faces the solution of several problems where the concepts of theory worked until then must be applied, deepening mainly to the necessary algorithmic logic in the writing of the conditions and conditional structures. Students must apply different conditional structures, using the most appropriate ones in each case.

The problems that have been solved will have been made available to the students prior to the realization of the laboratory session, with the double objective, that they know the problems that will be treated and that they have begun to design the solutions.

Completion of this activity contributes to the achievement of specific competence E3, general competence CB1, professional competence CP3 and learning outcomes RA2, RA3, RA6, RA7 and RA8.

PRACTICE 3. 

This practice is specifically intended for students to practice the coding and debugging of slightly more complex programs than those of the two previous practices, using functional decomposition techniques that allow to decompose a problem into simpler subproblems, the solution to which can be coded with the help of functions. The student faces the solution of several problems where the concepts of theory worked until then must be applied, deepening mainly the necessary algorithmic logic in the writing of iterative structures. Students will be helped by the algorithmic schemes worked on in theory class that guarantee them to make correct and more efficient implementations.

The problems to be solved will have been made available to students prior to the laboratory session, with the dual purpose, that they know the problems that will be addressed and that they have begun to design solutions.

Completion of this activity contributes to the achievement of specific competence E3, general competence CB1, professional competence CP3 and learning outcomes RA2, RA3, RA4, RA6, RA7 and RA8.

PRACTICE 4. 

In this practice, students must codify and debug programs that, potentially, may require all the tools and mechanisms worked on in the theoretical contents worked on until then. Thus, the nature of this practice can be a synthesis of the previous ones and emphasize the last theoretical aspects seen in class and that have not yet been worked on in their practical aspect. The student, with the resolution of the exercises of this activity, will become aware of the importance of reusing the code, write it once and use it as many times as you want.

The problems to be solved will have been made available to students prior to the laboratory session, with the dual purpose, that they know the problems that will be addressed and have begun to design solutions. .

Completion of this activity contributes to the achievement of specific competence E3, general competence CB1, professional competence CP3 and learning outcomes RA2, RA3, RA4, RA6, RA7 and RA8.

PRACTICE 5.

In this practice, students must codify and debug programs that, potentially, may require in addition to all the tools and mechanisms worked on in previous practices, the last content of the subject, the lists. The student with the resolution of the exercises of this activity, will work with algorithmic schemes applied to the lists.

The problems to be solved will have been made available to students prior to the laboratory session, with the dual purpose, that they know the problems that will be addressed and have begun to design solutions. .

Completion of this activity contributes to the achievement of specific competence E3, general competence CB1, professional competence CP3 and learning outcomes RA2, RA3, RA4, RA5, RA6, RA7 and RA8.

WRITTEN PROGRAMMING TEST

Individual test of practical application (solution of exercises and problems) of the theoretical concepts and practical procedures of programming.

This written test evaluates all the contents of the subject, thus evaluating all the learning outcomes of the subject: RA1, RA2, RA3, RA4, RA5, RA6 and RA7 and yet contributes to the achievement of specific competencies. E3, general CB1 and professional CP3

In order to pass (pass) the assessment activities, students must demonstrate:

  • That they have acquired the theoretical knowledge related to the contents of the subject and that their understanding allows them to put them into practice [MECES-2 point a, point c]
  • That they can develop solutions to problems that, although they are similar to others seen above, present aspects that are new [MECES-2 point f]

At the competence level, the five practices and the written test cover the specific competence assigned to the subject E3 (basic knowledge of computer programs applied to engineering)

In relation to the professional competence assigned to the subject, this is covered especially with regard to the aspects that are explained:

  • CP3: knowledge of basic subjects that enable the learning of new methods and theories.

And finally, with regard to the basic competence assigned to the subject, this is worked on in the practical exercises that are carried out in the course of the theory and practice sessions.

  • CB1: Demonstrate having and understanding knowledge based on general secondary education

Rules for carrying out learning activities

For each activity, teachers will be informed of the particular rules and conditions that govern them. One-on-one activities presuppose the student's commitment to carry them out individually and without any collaboration with other people. All activities in which the student does not comply with this commitment to individuality will be considered suspended (grade 0), regardless of their role (sender or receiver) and without this excluding the possible application of other sanctions in accordance. with the current Disciplinary Regime.

Likewise, the activities to be carried out in groups presuppose the commitment on the part of the students who make it up to carry them out within the group and without any kind of collaboration with other groups or people who are alien (group individuality). All activities in which the group has not respected this commitment regardless of its role (sender or receiver) and without this excluding the possible application of other sanctions in accordance with the current Disciplinary Regime will be considered suspended (rating 0).

In the particular case of the internships, when in any of them the commitment of individuality is not respected and / or fraudulent means are used in its accomplishment, the qualification of end of the practices PRACTICE will be, for all the members of the group, of 0 points independently of the qualification of the other practices and without this exclude the possible application of other sanctions in agreement with the current Disciplinary Regime.

Any activity not delivered will be considered scored with zero points. It is optional for teachers to accept or not deliveries outside the deadlines indicated. In the event that these late deliveries are accepted, it is up to the teacher to decide whether to apply a penalty and the amount thereof.

Evaluation system


The subject is evaluated based on the grades of the following activities:

  • TEST: WRITTEN TEST OF ALL BLOCKS
  • PRACTICE 1
  • PRACTICE 2
  • PRACTICE 3
  • PRACTICE 4
  • PRACTICE 5

The calculation of the part of theory and practices of the asignatura calculates taking into account these formulas:

  • THEORY = TEST 0.6
  • PRACTICE = 0.05 PRACTICE 1 + 0.05 PRACTICE 2 + 0.1 PRACTICE 3 + 0.1 PRACTICE 4 +0.1 PRACTICE 5

And the final grade is obtained:

  • If THEORY <4 the final grade is the THEORY grade
  • Otherwise, the final grade of the subject is THEORY + PRACTICE

Recovery

The theoretical part of the subject (THEORY) can be recovered as long as the weighted grade obtained is less than 5 (excluding those not presented). Internships cannot be recovered, under any circumstances.

For students who attend the resit exam their THEORY grade will be the one obtained in this test and the final grade will be calculated with the weights detailed above and in no case will it exceed 5.

REFERENCES


Basic

Rabassa, Fundamentals of Computer Science: class notes, examples and exercises. Internal publication ESUPT

Python language reference. https://docs.python.org/3/tutorial/index.html

Python 3. http://openbookproject.net/thinkcs/python/english3e/

Complementary

http://repositori.uji.es/xmlui/bitstream/handle/10234/102653/s93.pdf

http://anh.cs.luc.edu/python/hands-on/3.1/handsonHtml/index.html