Checking date: 10/06/2021


Course: 2021/2022

Programming
(15090)
Bachelor in Energy Engineering (Plan: 452 - Estudio: 280)


Coordinating teacher: IGLESIAS MARTINEZ, JOSE ANTONIO

Department assigned to the subject: Computer Science and Engineering Department

Type: Basic Core
ECTS Credits: 6.0 ECTS

Course:
Semester:

Branch of knowledge: Engineering and Architecture



Requirements (Subjects that are assumed to be known)
(None)
Objectives
Competencias genéricas: ------------------------------------------- - Synthesis and analysis - Organization and planning - Application of theoretical knowledge to practical problems - Use of computers - Proactivity, creativity and reasoning for problem resolution - Team work Specific Competences: ------------------------------------------- - Cognitive: o To understand the role of Computer Science and Programming in the context of Industrial Engineering o To solve engineering problems by designing algorithms and developing computer programs o To understand the fundamentals of structured and modular programming o To apply theoretical knowledge to solve practical problems by implementing computer programs in the C programming language o To understand the role of Computer Science and Programming in the context of Industrial Engineering - Procedural: o To use a personal computer o To solve engineering problems by designing and implementing computer programs in the C language o To acquire a good programming style, resulting in efficient, well-organized, and well-documented programs o To acquire the ability to understand and use third-party programs o To learn how to use an integrated development environment (IDE) for program coding, compiling, and debugging o To learn how to use common C programming libraries.
Skills and learning outcomes
Description of contents: programme
Topic 1. Introduction to computer science and programming. ------------------------------------------------------------------- - Computer science and computers. A historical perspective. - Information representation in computers - Algorithms and programs. Tools for algorithm design Topic 2. Software and Hardware ------------------------------------ - Programs and programming languages. Classification. Translators, compilers and interpreters. Operating systems. - Functional structure of a computer. Internal architecture. Instruction execution by the processor. Data storage. Peripherals. Computer networks and the Internet Topic 3. Basic elements of the C programming language. --------------------------------------------------------------- - General structure of a program - Variables and constants - Types of operators: arithmetic, relational, logic and assignment operators. - Operators, expressions and instructions - Pointer type. - Input and output instructions Topic 4. Control Flow and Loops ----------------------------------- - Selection structures: if-else, switch - Repetition structures (loops): for, while, do-while - Nested control structures Topic 5. Functions -------------------- - Modular programming - Function definition - Calling a function - Types of arguments: input, output, input / output - Passing Arguments by Value or by Reference -Scope of Function Variables. Visibility - Arrays and structures as parameters - Library functions and standard C libraries Topic 6. Complex Data Types -------------------------------- - Introduction: structured vs simple data types - Definition and use of arrays - Pointers and arrays - Character strings - User defined data structures: records - Arrays of records Topic 7. Search, sort and merge algorithms ------------------------------------------------- - Search algorithms - Sort algorithms - Merge algorithms Topic 8. Advanced Topics ---------------------------- - External data structures: files and databases - Dynamic memory allocation - Computer programs commonly used in engineering.
Learning activities and methodology
Theory classes: ----------------- Basic theoretical knowledge and skills will be presented in large groups. Resolution of Exercises: -------------------------- Resolution of exercises by the student that will serve as self-evaluation and to acquire the procedural and cognitive competences. Laboratory sessions: ----------------------- Small groups classes, in which problems proposed to the students are discussed and developed using the computer. Tutorials --------- The student will ask for a tutorial always that it is needed. Final Practice. --------------- Project groups will be formed for this activity which is divided in 3 parts taking into account the students knowledge.
Assessment System
  • % end-of-term-examination 40
  • % of continuous assessment (assigments, laboratory, practicals...) 60
Calendar of Continuous assessment
Basic Bibliography
  • Al Kelley and Ira Pohl. A book on C : programming in C . Addison-Wesley. 1998
  • Brian W. Kernighan, Dennis M. Ritchie. C Programming Language. Prentice Hall. 1988
  • Deitel, Harvey M.. C : how to program. Prentice-Hall International. 1994
  • Greg Perry, Dean Miller. C Programming Absolute Beginner´s Guide.. Que. 2013
  • K. N. King. C Programming: A Modern Approach. W.W. Norton & Company. 2008
  • King, K.K.. C programming: a modern approach. W.W. Norton & Company. 2008
  • Paul J. Deitel, Harvey M. Deitel. C: How to Program. Prentice Hall. 2009
Additional Bibliography
  • Doris Appleby, Julius J. Vandekopple. Lenguajes de Programación: Paradigma y práctica. McGraw-Hill. 1998
  • Yung-Hsiang Lu. Intermediate C Programming. CRC Press. 2015

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