Checking date: 29/07/2025 12:35:01


Course: 2025/2026

Programming
(15366)
Bachelor in Telecommunication Technologies Engineering (Plan: 583 - Estudio: 252)


Coordinating teacher: BELLUCCI , ANDREA

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



Objectives
The goal of this course is to introduce basic programming techniques useful for telecommunication applications. The techniques taught in the course are generic, i.e. they apply to other programming languages as well. Upon successful completion of the course, the student will be able to: - Understand the fundamentals of imperative programming - Understand the fundamentals of structured programming - Understand and manage language data types - Understand and manage the structures of flow control - Know a programming syntax - Know program testing and debugging - Analyze and understand programs - Localize and fix syntax and functional errors - Analyze and understand algorithms written in pseudocode or in flow diagrams - Design and develop simple algorithms based on given prerequisites - Develop simple programs from flow diagrams, pseudocode or functional descriptions - Have knowledge of basic search and sorting algorithms - Design, develop and execute program test plans.
Learning Outcomes
K3_FB11: Basic concepts of computer use and programming, operating systems, databases and IT programs with engineering applications.
Description of contents: programme
PART I: Programming fundamentals - Essentials of computer architecture - Programming languages - Compiling and running code - Elements of a program: data and algorithms - Basic programming tools: algorithms, flow diagrams, and pseudo code. PART II: Structured programming - Data types and operators - Flow control - Conditional sentences - Loops PART III: Introduction to program testing PART IV: Advanced concepts - Lists - Dictionaries - Input/output PART IV: Modular programming - Organizing code in functions - Information exchange between functions: passing parameters
Learning activities and methodology
The teaching methodology includes: 1. Lectures presenting theoretical knowledge. Basic textbooks for both theory and problems will also be recommended, which will allow the students to complete and deepen the subjects in which they are most interested. 2. Practice in computer labs, during which the students will develop and analyze programs using the theoretical concepts taught in lectures. The assignments are developed in groups, in order to promote teamwork. 3. Problem solving both on paper and with the computer, targeting self-evaluation. 4. Individual practical assignments in computer labs based on the assignments developed in groups. 5. Sharing the problems solutions and joined correction in order to develop the capacity of analyzing and communicating information relevant to problem-solving. Additionally, this activity will promote the change of critical opinions between the professor and the students and among students.
Assessment System
  • % end-of-term-examination/test 30
  • % of continuous assessment (assigments, laboratory, practicals...) 70

Calendar of Continuous assessment


Extraordinary call: regulations
Basic Bibliography
  • LUCIANO RAMALHO. Fluent Python: Clear, Concise, and Effective Programming. OReilly. 2022
  • MARK LUTZ. Learning Python: Powerful Object-Oriented Programming. . OReilly. 2013
Additional Bibliography
  • Donald E. Knuth. The Art of Computer Programming. Addison-Wesley Educational Publishers Inc. 2011
Recursos electrónicosElectronic Resources *
(*) Access to some electronic resources may be restricted to members of the university community and require validation through Campus Global. If you try to connect from outside of the University you will need to set up a VPN


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