Checking date: 27/04/2023


Course: 2023/2024

Programming
(15491)
Bachelor in Industrial Technologies Engineering (2010 Study Plan) (Plan: 244 - Estudio: 256)


Coordinating teacher: SESMERO LORENTE, MARIA PAZ

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)
There are no pre-requisites for this course
Objectives
1.Analysis and synthesis skills 2. Organization an planning skills 3. Ability to apply academic knowledge to practice 4. Basic computer skills 5. Ability to proactively solve problems with critical thinking 6. Basic teamwork skills Cognitive 1. To understand the role of Computing Science and Programming in the context of Industrial Engineering 2. To explain the fundamentals of computer hardware and computer architecture and to identify the basic computer components involved in the execution of statements and programs 3. To describe the concepts of algorithm, program, statement and programming language 4. To explain the fundamentals of computer software: operating systems, types of programs, compilers 5. To understand the concepts of variable, constant, operator and expression, as well as the different operators available in the C programming language 6. To know the basic algorithmic structures: sequential, alternative, iterative 7. To understand the concept of function and the use of parameters 8. To understand the principles of modular and structured programming, as well as the concepts of data and function abstraction 9. To understand the concept of structured data type and use arrays, structures and strings 10. To know the basic search and sort algorithms 11. To know the syntax of the C programming language 12. To know the main programs used to solve Engineering problems Procedural 1. To solve Engineering problems of medium complexity by designing algorithms and developing computer programs in the C language 2. To select the most appropriate data structures to solve a problem 3. To use an integrated development environment to write, compile and debug programs 4. To use functions of the C standard library
Skills and learning outcomes
CB1. Students have demonstrated possession and understanding of knowledge in an area of study that builds on the foundation of general secondary education, and is usually at a level that, while relying on advanced textbooks, also includes some aspects that involve knowledge from the cutting edge of their field of study CB2. Students are able to apply their knowledge to their work or vocation in a professional manner and possess the competences usually demonstrated through the development and defence of arguments and problem solving within their field of study. CG1. Ability to solve problems with initiative, decision-making, creativity, critical reasoning and to communicate and transmit knowledge, skills and abilities in the field of Industrial Engineering. CG9. Knowledge and ability to apply computational and experimental tools for the analysis and quantification of Industrial Engineering problems. CG13. Basic knowledge on the use and programming of computers, operating systems, databases and software with application in engineering. RA1. Knowledge and understanding: Have basic knowledge and understanding of science, mathematics and engineering within the industrial field, as well as knowledge and understanding of Mechanics, Solid and Structural Mechanics, Thermal Engineering, Fluid Mechanics, Production Systems, Electronics and Automation, Industrial Organisation and Electrical Engineering. RA2. Engineering Analysis: To be able to identify engineering problems within the industrial field, recognise specifications, establish different resolution methods and select the most appropriate one for their solution RA5. Engineering Applications: To be able to apply their knowledge and understanding to solve problems and design devices or processes in the field of industrial engineering in accordance with criteria of cost, quality, safety, efficiency and respect for the environment.
Description of contents: programme
Topic 1. Introduction to Computer Science and Programming. 1.1. Computers and Computer Science. Brief history of computers 1.2. Information representation with computers 1.3. Algorithms and programs. Tools for algorithm design 1.4. Computer Science in the context of Industrial Engineering Topic 2. Software and Hardware 2.1.Logic support: Software. 2.1.1. Programming languages. 2.1.2. Translators, compilers and interpreters. 2.1.3. Operating systems. 2.2. Physical support: Hardware. 2.2.1. Computer architecture. Components. 2.2.2. Program execution. 2.2.3. Peripherals. 2.2.4. Computer networks and the Internet Topic 3. Introduction to Programming in C 3.1. Basic structure of a program 3.2. Variables and constants 3.3. Simple data types 3.4. Expressions and instructions 3.5. Operators: arithmetic, relational, logical and assignment operators 3.7. Basic input and output: printf and scanf Topic 4. Control Flow 4.1. Conditional control flow structures: 4.1.1. if-else 4.1.2. switch 4.2.Iterative control flow structures (loops): 4.2.1. for 4.2.2. while 4.2.3. do-while 4.3.Control structure nesting Topic 5. Functions 5.1. Modular programming 5.2. Function declaration and definition 5.3. Function calling 5.4. Parameters: pass by value and by reference 5.5. Scope of variables and visibility 5.6. Library functions and standard C libraries Topic 6. Structured Data Types 6.1. Introduction: structured vs. simple data types 6.2. Arrays. 6.2.1. Arrays: definition and use 6.2.2. Arrays as function parameters 6.2.3. Character strings 6.3. Structures 6.3.1. Structures: definition and use 6.3.2. Arrays of structures 6.3.2. Structures as function parameters Topic 7. Search, Sort and Merge Algorithms 7.1. Search algorithms 7.2. Sort algorithms 7.3. Merge algorithms Topic 8. Advanced topics 8.1. External data storage: files and databases 8.2. Dynamic memory management 8.3. Programs used in Engineering
Learning activities and methodology
Lectures Lectures will be developed in joint student groups. Professors will explain the contents of the course to support the students to acquire the related cognitive skills. Exercise sessions Exercise lectures will be developed in small groups. Professors and students will solve problems to acquire the procedural skills of the course. Computer lab sessions In these sessions, students will implement and test problem solutions on a computer. They are mainly oriented to the acquisition of the procedural and attitudinal competences of the subject. Individual tutorships Students can request for individual sessions with the professors to ask specific questions about the course contents and exercises. Individual work Students will study the contents of the course presented in the lectures and solve the exercises proposed in exercise and computer lab sessions. They will receive feedback from the professors to detect and correct their errors.
Assessment System
  • % end-of-term-examination 50
  • % of continuous assessment (assigments, laboratory, practicals...) 50
Calendar of Continuous assessment
Basic Bibliography
  • Brian W. Kernighan, Dennis M. Ritchie. C Programming Language. Prentice Hall. 1988 (2nd Edition)
  • K. N. King. . C Programming: A Modern Approach. . W.W. Norton & Company, . 2008 (2nd Edition)
  • Paul J. Deitel, Harvey M. Deitel. . C: How to Program. . Prentice Hall, (6th Edition). 2009

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