. "Computer Systems, Architectures, Network"@en . . . . . . . . . . . . . . . . . . . . . . . . . "Aircraft computer systems"@en . . "3" . "Not provided" . . "Presential"@en . "FALSE" . . "Information networks"@en . . "8" . "Topics include: how to model the formation of \r\nsocial and economic networks; understand and \r\nmeasure certain patterns of real-world networks; identify, quantify and model how opinions, fads, \r\npolitical movements and diseases spread through \r\ninterconnected systems and measure the robustness \r\nand fragility of them. We will bring together models \r\nand techniques from economics, sociology, math, \r\nphysics, statistics and computer science to answer \r\nthese questions.\r\nIn more detail the course will include: Repetition \r\nof Statistical Definitions, Background and Network \r\nElements, Networking, Social Networking & \r\nBehavioral Contagion, Project Management \r\nNetworks, Economic complexity, Visualization \r\nof Networks\n\nOutcome: Not Provided" . . "Presential"@en . "TRUE" . . "Specification of embedded systems"@en . . "3" . "Development of specification models for embedded control systems and cyber-physical systems, \r\nusing the modelling formalism UML/SysML. Automated code generation for embedded Systems \r\nfrom UML/SysML Models. For 6 ECTS credit points, all lectures and tutorials need to be \r\nattended. The oral examination covers both UML/SysML modelling and code generation. For 3 \r\nECTS, only the first half of the lectures and tutorials concerned with modelling only needed to be \r\nattended. The oral examination only covers modelling with UML/SysML\n\nOutcome:\nLearning outcomes:\r\nLearn how to model the expected behavior of an embedded control system with real-time \r\nconstraints.\r\nLearn how to use the formal modelling language UML/SysML, based on real-world examples \r\nfrom the automotive industry\r\nLearn how to elaborate models using a state-of-the-art tool (e.g. Papyrus/Eclipse)\r\nLearn how to generate efficient C-code automatically from a model\r\nLearn how to set up an efficient domain framework supporting execution of generated code in \r\nreal-time" . . "Presential"@en . "FALSE" . . "Web application architecture"@en . . "4" . "Know and understand the architecture of web applications\n\nOutcome: Not Provided" . . "Presential"@en . "FALSE" . . "Embedded systems and hpc"@en . . "2" . "Know embedded programming and parallel programming\n\nOutcome: Not Provided" . . "Presential"@en . "FALSE" . . "Safety-critical digital systems"@en . . "5" . "Learning outcomes of the course unit:\nA student has knowledge on reliability of digital systems and design of safety-critical systems. Student is familiar with faults in digital systems that are induced by cosmic rays and is able to apply suitable fault-tolerant architectures to ensure the reliability of space electronic systems. Students are able also apply advanced FPGA technologies for space engineering. Students have practical skills advanced methods of digital system verification and debugging. Based on this, students are able to design, verify and debug a safety-critical digital system with a given level of reliability, suitable for use in space applications. Students are able to use common EDA tools for design and implementation of digital systems.Course Contents:\n1. Safety-critical electronic systems for space applications.\n2. Need for design verification, test and diagnostics.\n3. Advanced methods of system verification (OVM, UVM).\n4. Defects, faults, error, bugs, failures. Test and testability.\n5. Design for testability methods. SCAN approach.\n6. BIST. Memory testing.\n7. FPGA technologies for space engineering (Rad Hard FPGA). Debugging in FPGA (JTAG).\n8. Error mitigation techniques for FPGA.\n9. Faults in digital systems induced by cosmic rays. Reliability. Six Sigma.\n10. Fault-tolerant digital systems. Hardware and information redundancy.\n11. Built-in self repair (BISR) systems.\n12. Systems-on-chip (SoC)." . . "Presential"@en . "TRUE" . . "Computer network security"@en . . "6" . "Description\n The course is about hardening routers and switches from known attacks. Keywords - IPsec tunnels, firewalls and VPN's (Virtual Private Network).\nLearning outcomes:\nStudents\r\n- will be able to configure firewall, intrusion detection systems (IDS), VPN, advanced access lists, AAA services;\r\n- will have better understanding of cryptographic services on routers and switches." . . "Presential"@en . "FALSE" . . "Hardening operating systems and services"@en . . "6" . "Description:\n Installation of operating systems and creation of file systems. Booting process, structure, and components of the operating systems. Different system administration tools and methods. Encryption of files and disks. Mobile operating systems. Operating system security and hardening methods.\nLearning outcomes\n* Has architectural overview of implementing operation systems and network services\n* Knows best practices for operation system and network service hardening\n* Can work safely in unfamiliar network environment.\n* Can harden Windows and Linux servers, workstations and basic network services (DHCP , DNS , Web)\n* Has overview of SSO technologies and authentication authorization related security\n* Can implement securely at least 2 SSO technologies.\n* Has overview of possibilities and drawbacks of cloud implementation." . . "Presential"@en . "FALSE" . . "Microcontrollers and embedded systems"@en . . "6" . "LEARNING OUTCOMES OF THE COURSE UNIT\n\nThe graduate is able: (a) describe the structure of ARM Cortex-M core; (b) describe basic blocks of STMicroelectronics STM32; (c) create firmware in C language including GCC specialties; (d) design and use connection of selected microcontroller peripherals; (e) design and assemble own device with microcontroller including firmware.\n.\nCOURSE CURRICULUM\n\n1. C language: constants and operators, control structures, preprocessor, functions, memory classes, pointers.\n2. C language: arrays, strings, struct, union, enum, bit operations, inline, volatile, naked, state machines.\n3. C language: introduction to libc libraries, arm-none-eabi-gcc compiler, printf and stdout.\n4. C language: specialties in libc and gcc, combination with ASM, basic libraries.\n5. Source code: Doxygen, Subversion; coding style.\n6. Embedded systems design principles, introduction to RTOS, cooperative RTOS.\n7. ARM Cortex-M core: architecture, features, NVIC, GPIO.\n8. STM32 peripherials: counter/timer (SysTick, tone generator, PWM etc.), RTC, ADC, DAC.\n9. STM32 communication: UART (RS232/485), SPI, I2C, 1-wire, DMA.\n10. High-level firmware development, middlewares, STM32CubeMX tool.\n11. Preemptive operating system FreeRTOS, application debugging over SWD.\n12. Peripherals: buttons, normal LED, multiplexed LED, rotary encoder, text display, beeper, shift registers.\n13. Peripherals: graphic display (drivers, vector graphics, TV screen); motors (DC motor, bridges, stepper motor, servo, BLDC).\nAIMS\n\nThe aim of the course is to deepen students' knowledge of microprocessor technology and programming in C, to familiarize them with ARM Cortex-M core, with STMicroelectronics STM32 MCUs, and learn to design the hardware and firmware for the most common peripherals." . . "Presential"@en . "TRUE" . . "Smart solutions"@en . . "3" . "Learning outcomes\nDuring the practice:\n* learn to use Raspberry Pi and Arduino to control externela devices;\n* get (first) knowledge about Linux;\n* learn basics and practical use of client-server architecture;\n* learn to communicate to and control of different wireless (WiFi, Bluetooth, IR, RF, GSM) and wired (Ehernet) devices;\n* learn to use different sensors: webcam, motion detector, temperature, pressure, humidity, flow sensors etc.;\n* learn to create autonomous power supply for remote devices;\n* learn to create initial app for Andrid operating system to control remote devices;\n* solve a individual real-life problem.\nBrief description of content\nThis practical course deals with the practical integration of the Internet of Things (IoT) components into real-life and real-world problem solving systems. It is learned that seemingly technically complex and standardized or standard-assuming solutions can be accomplished by everyone at a cheap and simple level. For this, the prepared general practice and a problem-based, independent project will be completed." . . "Presential"@en . "TRUE" . . "Digital and microprocessor systems"@en . . "3" . "Counting systems and conversions. Binary codes. Fixed and float-\ning point arithmetic. Basics of Boolean algebra. Logic gates and flip-\nflops. Basic combinatorial, sequential and arithmetic blocks. Pro-\ngrammable circuits. Classification and organisation of memory. Mi-\ncroprocessor architecture, command cycle, command list. Design\nand operation of microprocessors and microcontrollers. Micropro-\ncessor system organisation. Input-output (I/O) systems and em-\nbedded peripherals of microcontrollers. Introduction to micropro-\ncessor programming - languages and programming environments." . . "Presential"@en . "TRUE" . . "Aircraft digital systems and computer networks"@en . . "4" . "Architectures and components of aircraft avionics systems. Se-\nlected organisational elements of on-board computers and avionics\nmodules. Digital circuits used for on-board computers and avionics\nmodules. Integrated avionics modular systems. Input and output\ndevices of on-board computer and avionics modules. General prin-\nciples and tools for hardware design and software implementation\nof avionic digital systems Specificity of technologies implemented\nin hardware and software of digital flight systems. Protection of dig-\nital aircraft equipment against electrostatic discharges. Fundamen-\ntals of data exchange in aircraft computer systems. On-board com-\nputer network architectures. Fibre optics and fibre optics technology\non aircraft. “Glass Cockpit” Information Imaging Systems. On-\nboard operational support systems. Cabin systems. Information\nsystems." . . "Presential"@en . "FALSE" . . "Operating systems"@en . . "no data" . "no data" . . "Presential"@en . "FALSE" . . "Aircraft computer systems"@en . . "3" . "no data" . . "Presential"@en . "FALSE" . . "Computer architecture and peripherals"@en . . "8" . "Objectives and Contextualisation\nThe basic objectives of the subject are:\n• Define the operation of a general-purpose computer system and an embedded system based on microcontrollers.\n• Acquire fundamental assembly language programming skills.\n• Give an overview of the most common peripherals, how they work, how they are controlled, and how they connect to a computer using high-level languages, such as C and assembler.\n\n\nCompetences\nElectronic Engineering for Telecommunication\nDevelop personal work habits.\nDevelop thinking habits.\nLearn new methods and technologies, building on basic technological knowledge, to be able to adapt to new situations.\nWork in a team.\nTelecommunication Systems Engineering\nDevelop personal work habits.\nDevelop thinking habits.\nLearn new methods and technologies, building on basic technological knowledge, to be able to adapt to new situations.\nWork in a team.\nLearning Outcomes\nApply the basics of hardware device description languages.\nDevelop applications in real time.\nDevelop critical thinking and reasoning.\nDevelop independent learning strategies.\nDevelop systemic thinking.\nDevelop the capacity for analysis and synthesis.\nManage available time and resources.\nManage available time and resources. Work in an organised manner.\nPerform real time, concurrent, distributed and event-based programming, and design person-computer interfaces.\nUse the basics of software design, verification and validation in the description of hardware systems based on high level hardware description languages.\nWork cooperatively.\n\nContent\nINTRODUCTION. COMPUTER ARCHITECTURE\n\n- Basic concepts: processors and microcontrollers. Typical architectures.\n\n- Historical evolution of processors: a generational classification with representative examples.\n\n- Instructions Set Architecture (ISA). Assembler programming.\n\nINPUT / OUTPUT CONCEPTS\n\n- The Input / Output (I/O) space in computers.\n\n- Classification of I / O devices. I / O modules.\n\n- Programming of I / O devices.\n\n- Synchronization with the processor: Scheduled survey, interruptions, and DMA.\n\n- Examples of I / O devices.\n\nMEMORY SYSTEM\n\n- Characteristics of storage systems\n\n- Types of memories.\n\n- Memory organization\n\n- Hierarchy of memory.\n\nDESIGN OF SYSTEMS BASED ON MICROCONTROLLERS\n\n- Microcontrollers: internal organization, external interface. Memory map.\n\n- Tools for the design of systems based on microcontrollers: evaluation boards, simulators, and monitors.\n\n- Debuggers: basic concepts, hardware and software techniques, advanced concepts (Background Debug Mode).\n\n- Microcontroller programming: Assembly language and C language." . . "Presential"@en . "TRUE" . . "Digital systems and hardware description languages"@en . . "9" . "Objectives and Contextualisation\nThis is a basic training course, taught during the second academic year, first semester. Is the bridge between the courses “Theory of Circuits and Electronics” and “Fundamentals of Computing”, in the first year, and “Computer Architecture and Peripherals”, in the second year.\n\nThe objectives of this course are for students to understand the role of digital systems in the computer world, be capable of designing low-to-medium complexity digital systems using logic gates and reconfigurable devices, and understand that a computer is simply a digital system of a certain complexity.\n\nIn the last part of the course, methodologies based on \"Process Unit – Control Unit (UP-UC)\" architectures are addressed to solve digital systems of a certain complexity by introducing the basic concepts of these architectures both in their \"wired\" version (UC made with gates and logic blocks) and \"microprogrammed\" (UC based on ROM + sequencer). Finally a simple computer open source (RISC-V) is presented in order for the students to understand the concepts of process-unit, control-unit, instruction set, microinstructions, microorders and microprogramming and applying the previous UP-UC architectures.\n\n\nCompetences\nElectronic Engineering for Telecommunication\nDevelop personal work habits.\nDevelop thinking habits.\nLearn new methods and technologies, building on basic technological knowledge, to be able to adapt to new situations.\nWork in a team.\nTelecommunication Systems Engineering\nDevelop personal work habits.\nDevelop thinking habits.\nLearn new methods and technologies, building on basic technological knowledge, to be able to adapt to new situations.\nWork in a team.\nLearning Outcomes\nAnalyse and design combinational and sequential, synchronous and asynchronous, microprocessor and integrated circuits.\nApply the basics of hardware device description languages.\nDevelop applications in real time.\nDevelop critical thinking and reasoning.\nDevelop independent learning strategies.\nDevelop systemic thinking.\nDevelop the capacity for analysis and synthesis.\nManage available time and resources.\nManage available time and resources. Work in an organised manner.\nUse computer tools to research bibliographic resources or information on telecommunications and electronics.\nUse the basics of software design, verification and validation in the description of hardware systems based on high level hardware description languages.\nWork cooperatively.\n\nContent\nBlock 1: Combinational Circuits (CC)\n\nDigital signals and digital systems. Description of digital systems. Electronic digital systems (EDS). MOS transistors. AND, OR and INV logical gates. Synthesis of EDS as a process of successive refinements.\nCombinational Circuits. Synthesis from a table I: ROM. Synthesis from a table II: logic gates.\nBoolean algebra. Truth tables.\nNAND, NOR, XOR, NXOR logical gates. 3-state buffers.\nFeatures: Propagation time. Hardware cost\nOther combinational blocks: multiplexers, decoders, AND-OR planes (PLAs).\nSynthesis tools: Synthesis from algorithms.\nBlock 2: Sequential Circuits (SC)\n\nThe need for sequential circuits. Some examples. States and synchronization. Synchronous sequential circuits. Clock, reset and set.\nExplicit functional description of SCs. State transition graphs and tables.\nBasic components: Flip flops and latches.\nSynthesis of SC from tables. Moore and Mealy machines. States encoding.\nRegisters, counters and memories. Structures, types and most common uses.\nFinite state machines (FSM). Formal definition. Implementation. Propagation times.\nHardware description language: VHDL. Some examples of FSM description using VHDL.\nSequential implementation of algorithms.\nPhysical implementation of digital circuits. Field Programmable Gate Arrays (FPGA) and other implementation strategies.\nBlock 3: Process Unit-Control Unit (PU-CU) architecture and processors\n\nPU-CU architecture.\nPU with multiplexers. PU with busses.\nROM based Control Unit with sequencers.\nBasic structure of a microprocessor. Von Neumann architecture vs Harvard. Functional units and busses.\nProcessor instruction set. Programming with machine language. Micro-orders and status signals.\nExample of open source processor: RISC-V\nHarvard architecture. Fetch, decoding and execution cycles.\nMicroinstructions and microprograms.\nMicroprogrammed implementation of the Control Unit.\nRelations between hardware, firmware and software." . . "Presential"@en . "TRUE" . . "Space embedded systems"@en . . "3.00" . "Course Contents The first part of the course will consist of lectures covering the following topics:\n1. Introduction to embedded systems\n2. Hardware and software elements\n3. Space environment and effects on embedded systems\n4. Fault tolerant techniques in space application\n5. Radiation testing\nThe second part of the course will be dedicated to a Group Assignment: students, in groups of 2-4, will build and program an\nembedded system for a possible space application which will feature fault tolerant techniques\nStudy Goals The students will learn to:\nExplain the basic elements of embedded systems and their characteristics.\nExplain the different radiation environments encountered in space and their effects on electronics components.\nDesign and implement (hardware and software) an embedded system based on microcontrollers.\nApply fault tolerance techniques both on software and hardware parts.\nDefine the system requirements and select the components\nEvaluate the performances of the selected components to ensure they satisfy the system requirements" . . "Presential"@en . "TRUE" . . "Basic computer knowledge"@en . . "3.5" . "Description in Bulgarian" . . "Presential"@en . "TRUE" . . "Introduction to telecommunications and computer engineering"@en . . "3.0" . "Objectives\nGive an overview of Telecommunications and Informatics Engineering.\n\nProgram\nWhat is the Telecommunications and Informatics Engineering field and how it relates to the Internet? Main areas of the Telecommunications and Informatics Engineering. Time management, teamwork, oral communication, written communication, ethics.\n\nEvaluation Methodology\n50% continuous evaluation / 50% non-continuous evaluation\n\nCross-Competence Component\nIntrapersonal Skills - Doing the work involves components of productivity and time management, stress management, proactivity and initiative, intrinsic motivation and decision making without explicit assessment. Interpersonal Skills - In the evaluation of the written work, 30% of the classification is attributed to the form of the report. In the oral presentation evaluation, 70% of the classification is attributed to the presentation form.\n\nMore information at: https://fenix.tecnico.ulisboa.pt/cursos/lerc/disciplina-curricular/845953938490006" . . "Presential"@en . "TRUE" . . "Digital systems"@en . . "6.0" . "Prerequisites\n(none)\n\nObjectives\n- Use binary number systems and binary arithmetic. - Derive, manipulate and minimize boolean functions. - Implement boolean functions with circuits with logic gates. - Understand the operation of the fundamental building blocks of combinational circuits. - Understand the operation of basic memory elements, and work with registers and counters. - Specify and synthesize synchronous sequential circuits. - Understand basic timing issues, including clocking, timing constraints, and propagation delays. - Design low-complexity digital systems with both combinational and sequential components.\n\nProgram\nBinary, octal and hexadecimal number systems, arithmetic operations, decimal and alphanumeric codes. Logic circuits: binary logic and gates, Boolean algebra, logic functions, standard forms, incompletely specified functions, algebraic and map minimization, circuits with NAND and NOR gates. Elementary technology elements: logic families, tri-state gates, propagation delays. Combinational circuits: encoders, decoders, multiplexers, demultiplexers, comparators, adders and subtractors. Sequential circuits: latches and flip-flops, timing analysis and timing synchronization. Registers and Counters: registers, shift registers, counters, counter interconnection and expansion. Synchronous sequential circuits: Mealy and Moore models, state diagrams and state tables, state encoding, classical synthesis, alternative synthesis methods, state minimization. Memories: RAM, ROM and PROM.\n\nEvaluation Methodology\n50% continuous evaluation / 50% non-continuous evaluation\n\nCross-Competence Component\nThe course covers the development of transversal competences in Critical and Innovative Thinking, Interpersonal and Intrapersonal Competences (oral, organizational and teamwork, self-discipline, perseverance, self-motivation) and Information and media literacy (ability to locate and access information) in the laboratory component. The grading weight associated with these skills is of around 10%.\n\nLaboratorial Component\nThe curricular unit involves weekly laboratory work aiming at the monitoring and deepening of the topics taught in theoretical lectures. The evaluation of the laboratory work comprises the demonstration of the performed work, the reports, and the discussion.\n\nProgramming and Computing Component\nConsidering that “Digital Systems” is taught at the beginning of the degree, before the other courses related to programming methodologies and technologies, the offered skills in this domain are related to Boole's logic and algebra, numbering and representation systems (binary), and the elementary principles of sequential procedures, often defined through state machines and/or flowcharts. These skills provide support for the subsequent teaching of formal programming languages (e.g. conditional structures, data types and algorithm implementation). The evaluation of these skills is weighted at least with 50% over all the considered evaluation elements. \n\nMore information at: https://fenix.tecnico.ulisboa.pt/cursos/lerc/disciplina-curricular/845953938490007" . . "Presential"@en . "TRUE" . . "Computer architecture"@en . . "6.0" . "Prerequisites\nBoole's algebra; binary numbering systems; basic programming skills\n\nObjectives\n- Identify the fundamental computer architecture components and their roles. - Identify the main processor's components and their role. - Identify the different instruction types and the required mechanisms for their execution (at an introductory-level). - Understand how a program, written in a high-level language, is executed, including the role of the compiler, assembler, and loader. - Write simple programs in Assembly language. - Understand the underlying principals of interruptions/exceptions and the interface with processor peripherals. - Understand the importance of a hierarchical memory subsystem and its role in the performance of applications. - Identify the advantages and drawbacks stemming from the evolution of computers with respect to the original architecture.\n\nProgram\n- Historical evolution of computing systems. - Instruction Set Architectures: operands and operation types; memory map; peripherals interface; handling of interruptions and exceptions. - Processors' operation: datapath; control structures; single-cycle and pipelined architectures. - Memory hierarchy: structure and operation of cache memories; hierarchical cache systems; physical and virtual addressing and translation. - Advances in computer architectures.\n\nEvaluation Methodology\n50% avaliação contínua; 50% avaliação não contínua\n\nCross-Competence Component\nThe curricular unit covers the development of transversal competences in Critical and Innovative Thinking, Interpersonal and Intrapersonal Competences (oral, organizational and teamwork, self-discipline, perseverance, self-motivation) and Information and media literacy (ability to locate and access information) in the laboratory component. The grading weight associated with these skills is of around 10%.\n\nLaboratorial Component\nThe curricular unit involves weekly laboratory work aiming at the monitoring and deepening of the topics taught in theoretical lectures. The evaluation of the laboratory work comprises the demonstration of the performed work, the reports, and the discussion.\n\nProgramming and Computing Component\nThe Computer Architecture discipline comprehends competences in the programming and computing domains, namely through: Assembly programming; the principles of program translation (compilation) from a high-level language to assembly and machine code; the loading of programs; the interface with peripherals; handling of interruptions and exceptions; the impact of the memory subsystem in an application performance and the basic principles of cache-aware programming. These competencies are evaluated through laboratory work (percentage >80%) and the final exam (percentage >50%).\n\n\nMore information at: https://fenix.tecnico.ulisboa.pt/cursos/lerc/disciplina-curricular/845953938490009" . . "Presential"@en . "TRUE" . . "Operating systems"@en . . "6.0" . "Prerequisites\nHave completed courses that present the essential concepts of 1) computed architectures and 2) programming in C.\n\nObjectives\nProgram at the system level using all operating systems functionalities taking into account both the sequential and concurrent programming models. Learn the fundamental concepts underlying operating systems, with emphasis on the mechanisms and algorithms used, as well as the internal structure of most relevant operating systems.\n\nProgram\nProgramming with processes, threads and files. Concurrent programming on shared memory. Inter-process communication. Organization and evolution of operating systems. The kernel of a multitasking operating system. Dispatch and scheduling. Virtual memory and algorithms for virtual memory management. File systems.\n\nEvaluation Methodology\nDetermined by 2 components: theory (50%) e laboratory (50%). The theory component consists of 2 tests. Possibility of repeating each test.\n\nCross-Competence Component\nThe laboratory component includes different measures to promote the development of soft skills related to innovative and critical thinking, as well as intra and inter-personal skills.\n\nLaboratorial Component\nProject that is progressively developed in 2 exercises. After the code of the project is graded, an individual practical test and a discussion determine the final grade that is assigned to each student.\n\nProgramming and Computing Component\nIn the course where this UC is offered the Computing and Programming components are assured according to MEPP 2122.\n\n\nMore information at: https://fenix.tecnico.ulisboa.pt/cursos/lerc/disciplina-curricular/845953938490011" . . "Presential"@en . "TRUE" . . "Introduction to computer networks"@en . . "6.0" . "Prerequisites\nPrior programming and operating system knowledge recommended.\n\nObjectives\nAt the end of the course, students must understand: - Computer networks and be able to analyze the main paradigms. -The TCP/IP protocol architecture and identify existing problems and evolution trends. Students must also have acquired the skills and methodologies needed to: - Analyse the essential aspects of network performance - Analyse a network protocol - Configure simple services and networks, as well as to detect errors and correct them.\n\nProgram\n1) Introduction - network components; access networks, physical media, and digitization of information; core networks, switching and Internet structure; Degradation factors and performance metrics; TCP/IP protocol architecture; historical evolution 2) Application layer - networked applications, client-server and peer architectures; API and socket programming; Web and HTTP; the e-mail; name service and DNS; file distribution; streaming; network management and SNMP 3) Transport layer: connectionless transport and UDP; reliability and TCP; congestion control and TCP 4) Network layer - data and control; IPv4 and IPv6 (addressing, fragmentation, configuration, address translation and resolution); routing algorithms, intra-AS routing, and OSPF; inter-AS routing and BGP; ICMP; SDN 5) Link layer: error detection and correction; multiple access; local area networks; level 2 switching and addressing; virtualization and data center networks\n\nEvaluation Methodology\n50% continuous evaluation / 50% non-continuous evaluation\n\nCross-Competence Component\nThe discipline seeks to stimulate a diverse set of transversal competences, suitable for a BSc student:: Critical and Innovative Thinking - Lab practice, programming project, and theory-based work enable to develop strategic thinking, critical thinking, creativity, and problem-solving strategies without explicit assessment. Intrapersonal Competencies - Performing laboratory work involves components of productivity and time management, stress management, proactivity and initiative, intrinsic motivation, and decision making without explicit assessment. Interpersonal Skills - In the network programming project, 20% of the project grade refers to the ability to work in teams and 20% of the demonstration grade to the ability to present the solution orally.\n\nLaboratorial Component\nDuring laboratory classes, students perform group work of 2 or 3 elements. Laboratory activities consist of traffic analysis, network configuration, debugging, and programming. Quizzes, experimental tests, and demonstrations are used to assess the students' performance. Laboratory classes are compulsory attendance classes, and the maximum limit of 2 absences is acceptable. If the student cannot attend at the scheduled time, he/she must agree in advance with the professor a replacement time. Exceptional situations, such as health problems, must be accompanied by valid justification (medical certificate, for example) for further analysis by the professor.\n\nProgramming and Computing Component\nThe course has a crucial programming component, which is the development of a network application using the socket API and the Pyhton programming language. Development goes through the various phases of the SW development process: design, specification, development, and testing. This component represents 1.5 ECTS of the teaching effort.\n\nMore information at: https://fenix.tecnico.ulisboa.pt/cursos/lerc/disciplina-curricular/845953938490016" . . "Presential"@en . "TRUE" .