At the end of the first three years (1st cycle) the students will acquire a solid base instruction comprising not only the essential scientific and engineering skills, but also a wideband fundamental knowledge in several domains of informatics. At the five years integrated cycle conclusion the graduated students will exhibit an advanced instruction in Informatics and Computation Engineering, comprising a specialization area or a deep broader range of interests. In the last two years the student has an extensive subject offer, individually configurable. Possible specializations include: Software Engineering and Information Systems (divided in two sub areas with the same name) Networks and Information Technologies (divided in Internet Technologies and Information Infrastructures sub areas) Intelligent Systems and Multimedia (divided in two sub areas with the same name)
SPECIFIC AIMS: This discipline has two main objectives: the promotion of logical reasoning and methods of analysis and the introduction and theoretical development of a set of concepts that will be fundamental to support the study of other disciplines along this course of studies.
This course aims to acquaint students with the differential and integral calculus, in order to make them able to apply basic tools of mathematical analysis in problem solving related with subjects of this degree. This course also aims to expand students’ knowledge, so that they can solve new kinds of problems. At the end of this course, the learning outcomes are: 1. To solve derivatives of functions, draw graphics and study functions in general 2. To solve integrals and use them in various engineering applications 3. To use different integration techniques and differential equations 4. To use series and polynomials, to dominate the approximation concepts.
This course introduces the principles of operation and general structure of a modern computer and its general structure, with particular emphasis on the contribution of each subsystem to the overall performance. The analysis of the implementation technology of computers (logic circuits and memory), together with the basic principles of digital information representation, will allow students to identify and describe the principles of computer operation, programming languages and software development.
1 - BACKGROUND
Informatics Engineers require expertise in programming techniques which can only be consolidated with a good basis in programming fundamentals.
2 – SPECIFIC AIMS
To develop the basic knowledge to solve medium complexity programming problems.
3 – PERCENTUAL DISTRIBUTION
Scientific component: 40%
Technological component: 60%
Logic is the fondament of any scientific reasoning and that is the main reason for its inclusion in the first year of the program. Furthermore, in the case of a Computer Science program, Logic has direct operational relevance in multiple professional aspects.
The goals are the development of skills of rigorous reasoning and in the techniques of discrete mathematics required in several areas of computer science like problem solving, algorithm design and analysis, theory of computing, knowledge representation and security.
Scientific component: 100%
Technological component: 0%.
1- BACKGROUND The main aim is to introduce fundamental mathematical concepts by developing the ability to analyze problems and results and also to acquire mathematical precision. These aspects form an educational background for other subjects in the curricula.
2- SPECIFIC AIMS Enhance the students reasoning capacity and knowledge of essential mathematical concepts. The students should acquire solid theoretical and practical training on the main concepts and results of differential and integral calculus of several variables, including the basic theorems of calculus.
3- PREVIOUS KNOWLEDGE Functions and graphs. Differential and integral calculus in R1, R2 and R3. Matrix Algebra.
4- PERCENTAGE DISTRIBUTION Scientific component:75% Technological component:25%
5- LEARNING OUTCOMES Knowledge and understanding: Partial and directional derivatives for real-valued and vector-valued functions; gradient vector. The chain rule for real-valued and vector-valued functions including implicit functions. Apply parametric curves and surfaces in R3 to calculate line and surface integrals. Establishment of the relationship between the line integral and the surface integral based on the Green’s, Stokes and Gauss Theorems.
Physics is the foundation of any Engineering field. With the advent of computers, the kind of physical problems that can be solved in an introductory course has expanded significantly. Computational physics and simulation techniques allow students to get a wider view of physical phenomena without requiring complicated analytical methods. The computational techniques developed to solve mechanics problems have been applied to other areas outside physics, giving rise to the general theory of dynamical systems.
This course aims to give the student basic background knowledge on dynamics and the computational techniques used to solve dynamical systems. A Computer Algebra System (CAS) is used, in order to allow the student to solve practical problems in mechanics and dynamical systems, rather than spending their time learning abstract analytical techniques. The knowledge on dynamics and computer modeling of physical systems acquired will be very important in other courses of their curriculum: computer graphics and visualization, games theory, simulation and scientific computing.
This course unit aims to provide students with an integrated vision of the basic concepts and techniques of Statistics.
The PC-compatible desktop and portable computers have become an everyday tool in modern societies. PC architecture reflects the current technological development, but also defines the limits of the computer's capabilities and performance. At the core of the PC-compatible computer, the IA-32 ISA is the most widespread instruction set architecture in use today. Both computer architecture and ISA have a deep impact on the day-to-day practice of informatics engineers.
The course unit Microprocessors and Personal Computers aims to develop, combine and apply concepts in the areas of Computer Architecture and Programming Languages. On the one hand, the course explores the relationships between the CPU instruction set and low-level programming (assembly language). On the other hand, recognizing that the architecture of modern personal computers goes far beyond the architecture of the CPU, the course addresses the general architecture of a PC, including data storage subsystem and other peripherals. The discussion is based on the family of microprocessors Intel IA-32, used in the vast majority of personal computers. Upon successful completion of this course, students will have acquired the ability to identify and describe the architecture of personal computers in use today, as well as the ability to apply assembly programming to the implementation of any algorithm.
The main objectives of this curricular unit are to transmit to the students:
- fundamental knowledge on procedural and object oriented programming techniques;
- the ability of applying those programming paradigms to develop programs, using the C++ language as development tool.
Following up the former course on Programming, with this unit we intend: to use notions already acquired and systematically apply data structures and algorithms to solve certain categories of problems; to use object-oriented programming; give emphasis to the organisation of programs on the basis of abstract data types. Practice is to be achieved with exercises and implementation of a small project in C++.
Nowadays information processing, storage and transmission are done using electromagnetic phenomena. Therefore, the background knowledge for a computer engineer must include the study of electricity, magnetism and electric circuits.
This course aims to provide the students with basic knowledge on electromagnetism and signal processing. An experimental approach is used with simple on-hands experiments that the students may conduct during the practical sessions, in order to strengthen the subjects covered in the lectures and to gain experience with the use of measuring devices. The Computer Algebra System (CAS) used in Physics 1 is also used in this course to help solve problems and to visualize electric and magnetic fields.
I/O devices are an integral part of a computer, without which the usefulness or the ease of use of a computer would be significantly lower. The importance of I/O devices in computer-based systems has increased since the first generation of computers, and it continues up to these days with the ever increasing use of computers in embedded systems. However, programming of I/O devices using their programatic interface requires specific knowledge and techniques.
2- Specific Objectives
This course unit aims to endow students with the knowledge and the skills required to:
3- Percentual Distribution
The course aims at providing the student with solid numerical methods foundations. It is topic oriented, covering numerical error analysis, algebraic and differential equation and systems solving, definite integration, non-linear optimization and curve fitting.
The student will be able to:
To prepare students about computing theory topics with a special emphasis to formal language topics.
Students will learn about regular languages, regular expressions, non-regular languages, deterministic and nondeterministic finite automata, context-free languages and grammars, deterministic and nondeterministic pushdown automata, and Turing machines, and how to apply these topics to problems.
Students will be able to express computing problems by using formal languages, automata and Turing machines.
In addition, students will learn how to formally specify computing problems related to formal languages and prove related statements.
Information Systems (IS) is a key topic in informatics engineering. Databases are the data repository that is required in any IS. The database course is a key course in the area of IS. The main objective of this course unit is to prepare students to design and develop database systems that meet the users' needs according to the organizational management goals.
This is an introductory course on databases. It is focused on the relational paradigm. It covers the design (UML model), construction (SQL data definition language), querying (SQL data manipulation language and PL/SQL) and management (optimization, access control and concurrency policies).
Scientific component:50% Technological component:50%
BACKGROUND Computer graphics has been stated and is today a very important component in the whole human-computer interaction ambience. However, its applicability goes far beyond, having nowadays a prominent position in major industries such as the cinema and electronic games. Also in technology and science it plays an irreplaceable role allowing the visualization of phenomena, often linked to simulation and virtual reality techniques. In this course, the approach to computer graphics is made under a Top-Down philosophy, starting with the subjects most related to 3D (image synthesis, modelling) and ending with a visit to several most basic algorithms in 2D. The 3D components of the programme are accompanied, in practical lessons, with exercises based on the usual technologies, like OpenGL and WebGL.
SPECIFIC AIMS -Transmit knowledge of concepts, techniques, algorithms, computer graphics technologies and architectures. -Strengthen the theoretical knowledge with practical application, through the implementation, testing and evaluation of algorithms discussed in theory.
-Scientific Component: 50%
-Technological Component: 50%
This course unit aims to follow up and deepen the knowledge acquired in previous modules such as “Programming” and “Algorithms and Data Structures”, namely by introducing techniques for devising and implementing efficient algorithms to solve different classes of problems, as well as for analysing and assessing them.
More specifically, it is intended to allow students to:
The main objectives of this curricular unit are to provide the fundamental knowledge on:
O1- the structure and the functioning of an operating system;
O2- the use of the Application Programming Interface (API) of a real .
This course aims to acquaint students with the engineering and management methods necessary for the cost-effective development and maintenance of high-quality complex software systems.
This curricular unit is defined in sequence with "Computer Graphics", from the 2nd semester of second year, where the main theoretical subjetcs were acquired.
The objective of this course is to develop a set of practical skills, some of them already tough in above courses. This course is focused in development practical works, multidisciplinary as possible, namely in the areas of Computer Graphics and Interfaces, Logic Programming, Operating Systems.
Scientific Component: 30%
Technological Component: 70%
It is also an objective to give the students the capacity to develop software, namely in the creation of 3D environments (polygonal representation, illumination and interaction) and in the use of services offered by the operating system, with emphasis in communications and synchronization.
The goal is providing the students with skills in the most significant languages and Web technologies in the current technological context or that were breakthroughs in the Web's evolutionary process.
The Logic Programming paradigm is a declarative approach to programming, based on formal reasoning processes, which is more appropriate to address some types of problems. Constraint logic programming allows addressing constraint satisfaction and optimization problems by modeling them in a straightforward and elegant fashion.
Aims: To get acquainted with the Logic Programming and Constraint Programming paradigms. To develop skills for abstract reasoning and declarative problem representation.
The course focuses on first-order logic programming. On the practical side the Prolog programming language is explored. Additionally, constraint logic programming is also introduced, and several application examples are provided.
Percentual Distribution: Scientific component: 50%; Technological component: 50%
Provide the students with basic training in Computer Networks - knowledge of the essential architectural concepts and principles, the more used technologies and solutions and also the main standards. Furthermore, the student must be capable of analyzing and evaluating the performance of different types of systems and communication networks.
Provide concepts which allow to:
- understand the languages’ compilation phases, in particular for imperative and object-oriented (OO) languages;
- specify the syntax and semantics of a programming language;
- understand and use the data structures and the main algorithms used to implement compilers.
This course provides a set of subjects (topics) that are the core for the Intelligent System area.
Percentual Distribution: Scientific component: 60%; Technological component: 40%
The unit aims at revisit the learning outcome of databases and web languages and technologies, providing a practical perspective on this core areas of computer engineering.
In this course, the students will learn how to design and develop web-based information systems backed by database management systems.
OBJECTIVES: • Identify and acquire the basic knowledges to know how to progressively maximize the successful conditions of the personal and interpersonal performance. • Apply self-control techniques and strategies of interpersonal relationships that allow managing with high mastery the efficiency of work processes implementation and the effectiveness of the outcomes to achieve in each organization. • Be aware of the importance of knowing how to use soft skills and to perform growing changes in order to develop a professional profile that contributes to improve the future performance of the computer engineer.
1 - BACKGROUND
One of the most important recent developments in computing is the growth of distributed applications, as witnessed by the sheer number of Web-based applications, many of them mobile.
2 - SPECIFIC AIMS
This course unit has to main objectives:
3 - PERCENTAGE DISTRIBUTION
Scientific: 50%; Technological: 50%
We assume in this course a technological-oriented approach to Software Agents design and applications. Students are expected to acquire a technological perspective on the subject.
Agents Oriented Programming is introduced as a new metaphore for designing and implementing distributed computer systems. However, students will be able to deal with agents, as well as multi-agent systems, design through the support of formalization tools, including logics (intentional, BDI...). Through small projects, students will be able to illustrate agents and MAS concepts in their practical aspects and importance.
This course aims at developing management competencies, integrating a solid theoretical basis with case study analysis and discussion.
The course unit has the key goal to develop the following skills in the students:
- applying a Software Engineering process to the complete development of a real software system. along the course unit, covering the specification of requirements, software architecture and design, coding, integration, test, documentation and demonstration;
- acquire fundamental knowledge and experience about agile software development practices: iteration planning, unit tests, refactoring, pattern-based design, collective ownership, pair programming, continuous integration;
- use software development tools adapted to agile methods to enable the continuous monitoring and tracking of the project along its lifecycle;
- use of large-scale APIs with class packages, to induct the component-based computing and the problems related with application integration;
- development of collaborative work integrating other project participants in design decisions, planning, delegation, negotiation, and group review;
- application and integration of the contents acquired by the students in courses within the areas of Software Engineering, Data Bases, Graphic Interfaces, Operative Systems, Programming Languages and Artificial Intelligence.
1- BACKGROUND Students should have knowledge about software processes and software modelling.
2- SPECIFIC AIMS To develop abstraction capabilities in order to describe what the system should do and not the way to do it. Be familiar with formal methods and the way they can contribute to increase the quality of software systems.
3- PREVIOUS KNOWLEDGE Software engineering; Computing Theory; Algorithm design and analysis.
4- PERCENT DISTRIBUTION Scientific component:75% Technological component:25%
5- LEARNING OUTCOMES At the end of the course students should be able to: - Apply formal methods of specification (based on models, based on properties, based on behavior) and verification ("Model-checking, formal proofs and test) in the development of software systems. - Identify existing formal methods and know when they should be applied and which are most suitable in each case.
BACKGROUND This is the only course on Information Systems in MIEIC. For this reason, we want this course to be an introductory Information Systems in Organizations focusing on their role and how the they contribute to the creation of value.
SPECIFIC OBJECTIVES / SPECIFIC AIMS The aim of this course to prepare students to understand the role of Information Systems (IS) in organizations and the importance of its alignment with the business strategy.
BACKGROUND As the dimension and complexity of software systems grows, it becomes more important to understand them at more advanced abstraction levels. The architecture of a software system describes the global structure in terms of its components, external proprieties and its interrelations. For medium and big-dimension systems, to chose the right architecture becomes crucial to the success of its development.
SPECIFIC AIMS This course aims to introduce the concepts of software architectures, design patterns and topics directly related, such as the software components’ one. Furthermore, it aims to teach how to design, understand and evaluate software systems architectures both at the level of abstraction of macro-architecture and micro-architecture. All this to familiarize the students with the fundamental concepts of software architecture, the proprieties and applicability of the different architecture styles, the most popular design patterns, software components, reusable architectures and the relations of all these concepts with the software reuse.
PERCENTAGE DISTRIBUTION Scientific component: 50% Technologic componente: 50.
Parallel and distributed computing is becoming the computing paradigm as hardware tends to multi-processing units. The common desktop is today built with multicore processors that collectively have more processing power, than the single core processor, but cores are individually less powerful. Programmers will have to deal with multiprocessor architectures in order to use effectively the machines of today and of the future.
Acquisition of useful knowledge to develop parallel programs. Construction of solid basis in parallel architectures, algorithms parallelization, programming models, synchronization of processes and performance measures by the development of programs.
1 - BACKGROUND
Software engineers can take great advantages of having skills in the development of digital games, not only as a final product of the entertainment industry, but also due to the immersive and interactive capabilities of this technology that can enhance diverse software products, even in learning.
2 - SPECIFIC AIMS
The aim of this course is to convey knowledge about the process of computer games development, with particular emphasis on issues related to the programming of the distinct modules that compose a game engine.
3 - PERCENT DISTRIBUTION
This course unit aims to endow students with planning and management skills, so that they can analyse and specify the requirements of a software system.
The aim of this course to provide the students with competences to: - identify decision problems; - apply the different phases of the methodology for a decision problem resolution, in particular defining and structuring problems, building models, applying quantitative methods for obtaining a solution - analyse critically the obtained solution - understand the relevance of the role of an "agent of change" in the organizations
1 - BACKGROUND
The success of projects and software products depends not only on the field of technical skills necessary to perform the various activities of the life cycle of software development, but also, increasingly, a set of skills and management skills, behavioral and communication, such as project management skills (in its various variables of time, budget, scope, quality, resources, etc..), capacity for teamwork, relationship skills with customers and communication skills and marketing.
2 - SPECIFIC OBJECTIVES
At the end of the course students should be able to:
1.Identify the need for use of project management as well as the importance of its strategic framework;
2.Identify the different frameworks and methodologies for project management;
3. Identify and define the process areas and variables involved in project management;
4. Apply methodologies and tools for project management and teamwork;
5. Apply concepts and tools of quality management ;
6. Identify and manage project risks.
3 - PREVIOUS KNOWLEDGE
Mastery of technical skills needed to develop software projects.
Having attended the Software Development Laboratory (LDSO).
4 - PERCENTAGE DISTRIBUTION
Scientific Component: 50%
Component Technology 50%
The "Markup Languages and Document Processing" unit assumes as its context the widespread use of markup languages for representing semi-structured information and the existence of standardized tools for their treatment.
1. Make the students aware of the multiple non-trivial applications of markup languages;
2. Make the students familiar with the technologies of processing and storage of semi-structured information;
3. Explore the technologies in defining an annotation language and in the development of an application.
The course aims to develop competences in the Marketing Management area, integrating a sound theoretical component, through the presentation and discussion of Marketing concepts and methodologies, with an applied component, through the development of a marketing plan and case study discussion.
To address planning and scheduling problems in an integrated perspective.
To study traditional approaches to planning and scheduling problems.
To explore recent planning and scheduling methodologies, based on heuristic algorithms from the domain of Artificial Intelligence.
To apply heuristic techniques for planning and scheduling in problems of medium complexity.
The objectives of this course are: a) to present the concepts, services and their multimedia and hypermedia applications; b) to present coding techniques and representation of multimedia information; c) to introduce application development tools; d) to develop applications.
In previous years of the course the students learn several programming languages. Nevertheless,they missi a global view of Programming Languages.
Provide teh students with a global view of the different programming paradigms enphasising the concepts, implementation and adequacy to the class of problems so they can understand the trade-offs in the design of programming languages.
This course addresses concepts and technological aspects within the context of the current Internet network architecture. Although acting as a unified network, from the user perspective, the Internet results in fact from the interconnection of a large number of heterogeneous networks that employ diverse networking technologies. It is thus necessary to understand how these technologies interoperate in order to deliver seamless services to the users. On the other side, the Internet and the World Wide Web have become a fundamental part of our daily lives. Therefore, it is of utmost importance for a telecommunications engineer to acquire the necessary knowledge and expertise to design, install and manage efficiently all the essential services to enable the Internet to satisfy all the requirements.
2- Specific Aims
The aim of this course is to provide students with consolidated knowledge in the area of computer networks from a perspective of network designers and managers. In particular, students will learn how to identify the requirements of organizations and accordingly design the complete network infrastructure divided into sub-networks to satisfy specific requirements. They will learn the concepts associated to the routing of packets within a domain and between domains and will study the basic services necessary to install to ensure the required functionality is offered to the users.
3- Previous knowledge
Basic knowledge in data communication networks, including principles and concepts of network architectures, main networking technologies and solutions in use, as well protocols currently employed in IP networks.
4- Percentage distribution
Scientifc component: 50%
Technological component 50%
5- Learning Outcomes
At the end of the course students will be able to design and configure the network infrastructure and systems of an enterprise, equipped with all essential services such as DNS, email, Web, etc. They will be able to make the full assignment of IP addresses, install and configure routers, identify the required network services, install and configure them.
This course unit aims to broaden students’ knowledge regarding Critical Systems. This course unit will cover notions related to safety, which are fundamental during the development life-cycle of Critical Systems. The main topics covered in this course include: a) the life-cycle phases for the development of safety critical systems, since its design and specification, to its certification, installation, maintenance and deactivation; b) Information about how to assess safety and how to determine the required measures to develop safety-critical computer systems; c) the available techniques to deal with critical safety aspects in computer systems and methodologies that can be used to improve its reliability. 3-
The students should be able to design and manage large databases, namely to tune the physical schema, to optimize SQL queries, to profit from extensions to object manipulation and XML technology, and to recover and replicate data.
The course main objectives include:
- providing knowledge and practice acquisition of fundamental concepts in designing and architecting distributed business applications;
- main distributed pattern and technology use, appropiate for scenario requirements and functionalities;
- detailed knowledge of several technologies, for fluent implementation of distributed business applications, knowing their interoperability and integration capabilities.
Conducting business electronically is an increasingly ubiquitous approach. This course addresses this concept from a scientific-technological point of view.
Specific aims are: To understand the importance and opportunities of Electronic Business; To explain Electronic Business Models; To present Support Technologies for Electronic Business
Scientific component:50% Technological component:50%
This course unit aims to provide students with knowledge of basic methodologies for the analysis of the financial and economic feasibility of investment projects in certainty and uncertainty conditions.
The students should be able to design, build and explore data warehouses.
Students should acquire competences in the planning and integrated management of network and system infra-structures. Today these network system infra-structures can easily have a petabit/s network core, million user-scale network access, complex network services like video content distribution, tens of thousands of servers and applications, and thousands of employee-owned mobile devices (BYOD), all with *-as-a-service requirements. Planning, configuring, and assessing the performance and accountability of these systems in a secure way is a challenge today and for the future.
Mobile Computing had an enormous increment in the last years with the explosion of mobile devices utilization. These devices present increasing capabilities concerning computation power, communication, storage and ease of interface. Applications extend now to incresing areas from entertainment and social networking to enterprise work.
The main ojectives include the acquisition of knowledge and practice of the main concepts of design, architecture and implementation of applications, mainly business, with particular access needs to data and computing in any place and at any time. Emphasis is on the use of current and generic frameworks, taking into account the mobile devices’ specificity.
Problems and challenges to overcome include the existing great diversity of capabilities and interaction ways and interfaces.
The "Information Description, Storage and Retrieval" unit assumes as its context the existence of large collections of heterogeneous information which needs to be organized, described, stored and retrieved.
In accordance with the procedure laid down in specific standards of FEUP, characterisation of Dissertation is as follows: 1. individual Work, research and development leading to the development of a scientific dissertation about a desktop theme, or knowledge of the course towards integration and application to solving complex problems of engineering knowledge, skills and attitudes acquired along the course. 2. it may be a work of research or technological development and implementation, involving experimental media and/or simulation, which promotes the development of capacity for initiative, decision-making, innovation, creative thinking and critical, in the context of individual or group work. 3. should involve the analysis of new situations, the collection of relevant information, development and selection of design or approach methodologies and instruments proposed problem resolution, to its resolution, the Office of sin-thesis and drawing of conclusions, and the preparation of a relevant dissertation subject to public presentation and discussion of results. 4. Can be carried out in academic or academic and entrepreneurial environment. In this case the objectives, nature and form of monitoring of the work shall be subject to prior agreement between the student and the College's guiding and company, validated by the course Director, ensuring the satisfaction of the scientific and pedagogical objectives of the curriculum unit, and protect any confidentiality issues by the host institution/company.
After a season in which the different companies / institutions lot invested in data collection within the computerization of their operations, there is now the need to put this data in the service of these companies / institutions. The goal is to be able to extract knowledge from data, improving efficiency and gaining competitive advantage. It is this need that arises the Course (UC) Knowledge Extraction and Computational Learning (ECAC).
Main aims: The main aim of this course unit is to prepare students to analyse and project interactive components of systems, particularly the user interface. It should be adequately done, considering the short, the medium and the long term.
1. To prepare students to analyse interactive systems concerning their quantitative and qualitative parameters.
2. To prepare students to use study, observation and questioning techniques based on the understanding of the conceptual model of system users
3. To prepare students to use a construction process of interactive products based on the design, user assessment, conception, prototyping, validation, construction and maintenance.
The key objectives of the course unit is to provide the students with knowledge and concrete experience on the definition, usage and refinement of agile processes for a specific project.
This course unit aims to endow students with theoretical and empirical knowledge about the strategic role of information systems in organisations and with the skills to strategically pan information systems in an organisation.
Augmented reality is a technology which improves and augments the user’s vision of the real world with virtual images, using Computer Vision and Graphical Computing/ Virtual Reality techniques. The main aim of this course is to transmit to the students the basic knowledge of these techniques, allowing them to proceed more advanced studies in the emergent area of Augmented Reality. Furthermore, another aim is to provide the students with the capacity to do little assignments illustrating the methodologies studied.
This Course aims the study of IT security systems, in order to provide students with a basic understanding of the concepts and of the threats and defenses to the misuse and operational destruction of these systems.
Software engineers affect society by creating applications. These applications produce value for users, but sometimes produce also discomfort and even disasters, when they fail to operate within the minimal level of quality they are supposed.
Software engineers build software that people use for different purposes, which pressures them to solve problems in new ways, and emphasizing different characteristics, such as security, usability, scalability, reliability, accessibility, efficiency, or correctness. For example, consumer software emphasizes low cost, medical software emphasizes high quality, and web software emphasizes rapid development.
The fundamental objective of this course unit is to learn, discuss, and draft solutions for issues raised by the influence of software engineering and software usage on people and society.
This course main goals are:
- to make students acquainted with Intelligent Systems research work.
- to make acquaintence with different researchers in Intelligent Systems and, through them, with different research groups active on the presented research topics.
At the end of the course, students should be able to:
understand the complexity and the qualitative aspects of decision making processes, and to use problem structuring techniques and multicriteria approaches; define the structure and the components of a Decision Support System (DSS), as well as using methodologies and techniques to design and implement DSSs; develop spreadsheet models, and design tools to support decision-making; use the main concepts of Decision Theory and Multicriteria Analysis, to structure alternatives and decision criteria; develop models and optimization algorithms, as well as heuristic approaches to solve problems with a practical interest, particularly in the context of Operations Management and Combinatorial Optimization; develop simulation models and design Interactive Visual Simulation Systems.
Be familiarized with the terminology used in software testing. Acquire knowledge about the main techniques that may be applied in software quality control. Acquiring sensitivity to issues relating to software quality processes.
Computer vision is a subfield of computer science that focuses on extracting "useful information" from images and videos. The goal of computer vision is to "discover from images what is present in the world, where things are located, what actions are taking place" (Marr, 1982). Examples of "useful information" include, for example, recovering the 3D geometry of objects in an image, detection and identification of human faces and gestures, and tracking moving people or vehicles in a video sequence. Computer vision algorithms have found a wide range of applications in the industrial, military and medical fields, as well as in the ever-growing entertainment field.
This course is an introduction to basic concepts and methods in computer vision. It is mainly suited for MIEIC students who are interested in following research in this area. The covered topics include: image formation, basic image processing and analysis methods, as well as more advanced methods like 3D scene reconstruction, motion analysis, tracking, and object recognition.
1-BACKGROUND In accordance with the procedure defined in the specific rules of FEUP, Dissertation characterization is as follows: • Individual work of research and development, leading to the development of a scientific dissertation on a theme under the knowledge of the MIEIC programme towards integration and application to complex problem solving engineering knowledge, skills and attitudes acquired throughout the above graduation years. • Can be a work of research or technological development and implementation, involving experimental media and/or simulation, which promotes the development of capacities for decision-making, initiative, innovation, creative and critical thinking, in a context of individual or group work. • Must involve the analysis of new situations, the collection of relevant information, the development and selection or design of a methodology and approach of the proposed problem resolution tools, their resolution, the exercise of synthesis and preparation of conclusions, as well as the preparation of a relevant dissertation, subject to public presentation and discussion of results. • Can be accomplished in an academic or in an enterprise and academic environment. In this case the objectives, nature and monitoring form should be object of prior agreement between the student and the College's advisors and the company, validated by the course Director, guaranteeing the satisfaction of scientific objectives and pedagogical curriculum unit, and protecting any issues of confidentiality on the part of the host institution/company. 2-SPECIFIC GOALS • Promoting the development of capacities for decision-making, initiative, innovation, creative and critical thinking, in a context of individual work. • Individual work-research and development; • Write a scientific dissertation. 3-PRIOR KNOWLEDGE • Technological knowledge in the area of MIEIC, • Knowledge, skills and attitudes acquired throughout the above years in MIEIC. 4-PERCENTAGE DISTRIBUTION • Scientific Component: 40% to 60% • Technological Component to 40 60% 5-LEARNING OUTCOMES At the end of the curriculum unit, students must demonstrate ability to: • Analysis of new situations with collection of relevant information; • Development and selection, or definition of methodologies and instruments to solve the proposed problem; • Problem solving, with the consequent exercise of synthesis and preparation of conclusions; • Preparation of a relevant dissertation to be subject to a public presentation and discussion of results.
O1. To learn about the processes, methodologies, and best practices associated to scientific research, with a particular focus on informatics engineering;
O2. To develop a scientific criticism spirit;
O3. To acquire the capability to elaborate a plan for the MSc dissertation project, including the state-of-the-art, in a theme to be selected;