Tuition fee EU nationals (2025/2026)
3700.00 €Programme Structure for 2025/2026
| Curricular Courses | Credits | |
|---|---|---|
| 1st Year | ||
|
Database Introduction
6.0 ECTS
|
Mandatory Courses | 6.0 |
|
Programming II
6.0 ECTS
|
Mandatory Courses | 6.0 |
|
Principles of Networks and Cybersecurity
6.0 ECTS
|
Mandatory Courses | 6.0 |
|
JavaScript Programming
6.0 ECTS
|
Mandatory Courses | 6.0 |
|
Introductiom to Software Engineering
3.0 ECTS
|
Mandatory Courses | 3.0 |
|
Applied Project Programming
9.0 ECTS
|
Mandatory Courses | 9.0 |
|
Computer and Operating Systems Fundamentals
6.0 ECTS
|
Mandatory Courses | 6.0 |
|
Web Programming
6.0 ECTS
|
Mandatory Courses | 6.0 |
|
Programming I
6.0 ECTS
|
Mandatory Courses | 6.0 |
Database Introduction
"Develop abstraction mechanisms;
Develop Information Modeling abilities;
Deepen ability to formulate relational questions."
"I - Introduction to Database Management System
II Relational Model
I.2 Relations and primary keys
II.2.2 Foreign Keys and Integrity Rules
II.2.3 Optimizationsand Indexes
III.3 Mapping from a conceptual model to a relatoinal one;
III S.Q.L
III. 1 Simpl Querys ;
III.2 Agregate Functions;
III.3 SubQuerys;
III.4 Triggers and Stored Procedures;
IV Using Java to manipulate a Database."
The final grade assessment is calculated through a series 3 of practical individual projects in order to assess the student's progression throughout the course. The final grade will be calculated based of the quantitative grades of each work.
"Gouveia, Feliz Fundamentos de Base de Dados"" FCA Editora de Informática, 2014 Damas, L. SQL - Structured Query Language "" FCA Editora de Informática, 2005; http://plsql-tutorial.com/"
Date, C.J. "An introduction to Database Systems" Addison-Wesley Publishing Company, sexta edição, 1995 (I.2, I.3, I.4, II)
Programming II
"At the end of the period the student should be able to:
OA1. Use an object oriented programming language to design, implement test and debug small applications.
OA2. Define and use the concepts of encapsulation, abstraction, inheritance and polimorfism.
OA3. Select and use the basic data-structures in a standard library.
OA4. Use error-control mechanisms.
OA5. Explain the utility of design patterns and demonstrate some simple examples of their usage."
"CP1. Physical modules (packages) and information hidding
CP2. Inheritance, polymorphism and interfaces
CP3. Interfaces
CP4. Collections. Genericity.
CP5. Introduction to the main data-structures (Java Collections Framework), its use and construction.
CP6. Errors and exception handling
CP7. File I/O
CP8. Introduction to planning, testing and documenting software projects
CP9. Introduction to design patterns"
"The final grade assessment is calculated through a series of practical assignments (to be done in practical classes 2 through 11) a test and a project, in order to assess the student's progression throughout the course.
The possible classifications in the assignments are 0-5. Exercises and project should be solved in pairs.
The final grade will be calculated by: 25% * 4* (average assignment grade) + 25% mid-term test + 50% project. "
Y. Daniel Liang, "Introduction to Java Programming: Comprehensive Version" 10th Ed. Prentice-Hall / Pearson, 2015.
"F. Mário Martins, ""Java 8 POO + Construções Funcionais"", FCA - Editora de Informática, 2017. ISBN: 978-972-722-838-6 (portuguese) Ken Arnold, James Gosling e David Holmes, ""The JavaTM Programming Language"", 3ª edição, Addison-Wesley, 2000. ISBN: 0-201-70433-1 Bruce Eckel, ""Thinking in Java"", 3ª edição, Prentice Hall, 2002. ISBN: 0-13-100287-2 Gamma, Helm, Johnson & Vlissides (1994). Design Patterns. Addison-Wesley. ISBN 0-201-63361-2. Java resources at http://java.sun.com; (tutorials and Java Application Programming Interface)"
Principles of Networks and Cybersecurity
By completing this course unit students should be able to:
LO1: identify and distinguish the different reference models for computer networks
LO2 - Know, distinguish and evaluate the different protocols and services available for end-to-end communication and communication between applications over the network.
LO3 - Know the different methods for guaranteeing information security and identify solutions to potential security threats.
LO4 - Distinguish, evaluate and implement the different existing security techniques in an integrated manner with other protocols.
CP1 - Introduction to networks. Physical layer. Interconnection and routing in IP networks. NAT.
CP2 - End-to-end communication. Addressing and multiplexing. UDP and TCP protocols. Notions of flow and congestion control.
CP3 - Services (names, email) and network applications; WWW architecture. Content distribution networks.
CP4 - Information security: attacks and information security; cryptography, encryption and authentication.
CP5 - Network security: key distribution infrastructures and digital certification; firewalls; application-level security.
Summary of the assessment process:
50% - 1st written test, with minimum grade requirement of 8/10 points.
50% - 2nd written test, with minimum grade requirement of 8/10 points.
There is the possibility of final exam worth 100% for those that don't do the tests. The final exam will be on the same date as the 2nd written test.
Acetatos e outro material de apoio na plataforma de e-Learning >> https://e-learning.iscte-iul.pt Mitnick, K. D., & Simon, W. L. (2011). Ghost in the wires: My adventures as the world's most wanted hacker. Little, Brown and Company. Computer Networking: A Top-Down Approach Featuring the Internet, James F. Kurose, Keith W. Ross, Addison Wesley.
Erickson, J. (2008). Hacking: The art of exploitation (2nd ed.). No Starch Press Hadnagy, C. (2018). Social engineering: The science of human hacking (2nd ed.). Wiley. Mitnick, K. D., & Vamosi, R. (2011). Ghost in the wires: My adventures as the world's most wanted hacker. Little, Brown and Company. Mitnick, K. D., & Vamosi, R. (2017). The art of invisibility: The world's most famous hacker teaches you how to be safe in the age of Big Brother and Big Data. Little, Brown and Company. Stuttard, D., & Pinto, M. (2011). The web application hacker's handbook: Finding and exploiting security flaws (2nd ed.). Wiley. Steinberg, J. (2019). Cybersecurity for dummies. For Dummies
JavaScript Programming
"On completion of this course the student should be able to:
LO1. Explain the fundamental concepts for programming in JavaScript.
LO2. Understand the concepts of React.js.
LO3. Understand the mechanisms for querying data.
LO4. Develop a web application in React.js.
The teaching method to be used consists of alternating between moments of exposition and demonstration that aim to introduce the concepts, and practical moments where students will apply them in work and activities proposed either in class or autonomously, outside the classes. The compatibility between the objectives and the teaching method is thus ensured, since the learning objectives consist essentially of the understanding of concepts and their subsequent application."
"CP1. JavaScript fundamentals
CP2. Introduction to React.js, JSX and TypeScript
CP3. React components and Props - single-page application;
CP4. Conditional presentation of content;
CP5. Component life cycle;
CP6. Component state and synchronisation - Hooks useState and useEffect;
CP7. Contexts - Hook useContext;
CP8. React routers and developing websites with multiple URLs;
CP9. Content feed from REST API;
CP10. User registration, login and logout;
CP11. React- PrimeReact and reactstrap component libraries."
The final grade of the course will be the arithmetic average of the grades obtained in a succession of practical mini-projects (4) carried out individually throughout the course, and which will have some continuity between them.
"Laurence Lars Svekis, Maaike Van Putten, Rob Percival, JavaScript from Beginner to Professional, Packt Publishing, 2021. Mikhail Sakhniuk and Adam Boduch, ""React and React Native (5th Edition)"", Packt Publishing, 2024 "
"Jon Duckett, ""JavaScript and JQuery: Interactive Front-End Web Development"", Ed. John Wiley and Sons, Inc., 2017 Sebastian Springer, ""React: The Comprehensive Guide"", Rheinwerk Computing, 2023 Robin Wieruch, The Road to React (2024 Edition), independently published, 2024."
Introductiom to Software Engineering
After completing this course, the student should be able to:
LO1. Apply an engineering process to software development;
LO2. Develop software in large teams (>6 members);
LO3. Apply software engineering principles to activities such as requirements management, software configuration and version management, software construction, testing, software delivery and deployment.
CP1 - Software engineering process
CP2 - Software configuration and version management
CP3 - Software construction
CP4 - Software testing
CP5 - Software engineering development and operations (DevOps)
Assessment:
Completing practical exercises/worksheets in groups, throughout the classes, with a weight of 20% of the final grade (no minimum grade) and a written test at the end of the course unit, with a weight of 80% of the final grade (minimum grade 9.5 out of 20).
Or a single final exam with a weight of 100% of the final grade of the course unit.
Sommerville, I. (2016). Software Engineering, Global Edition (10th ed.). London, England: Pearson Education. Sommerville, I. (2021). Engineering software products: An introduction to modern software engineering. IEEE Computer Society. (2024). Guide to the software engineering body of knowledge 4.0. (Hironori Washizaki, Eds.). IEEE Computer Society Press.
Applied Project Programming
LO1 - Implement a Full-Stack Application
LO2 - Utilize Core Web Technologies
LO3 - Understand Design Principles
LO4 - Analyze and Solve Complex Problems
LO5 - Integrate Concepts from Previous Modules
LO6 - Work in Collaborative Environments
LO7 - Present and Demonstrate Application Features
CP1- Project Start-up and Requirements Definition
CP2- Environment Configuration and Backend Development
CP3- Backend Development with Java
CP4- Frontend Development with React.js
CP5- Implementation of Specific Functionalities
CP6- Optimisation and Preparation for Release
CP7- Communication with the client
The assessment process for this course is structured to evaluate student progress and learning outcomes through a combination of intermediate assessments and the presentation of a final project in groups of 3 students.
1. Intermediate Assessments (Sprints)
The assessment process includes four intermediate assessments, referred to as sprints, which collectively account for 40% of the total grade. Each sprint is designed to evaluate specific milestones within the project development cycle.
Sprint Structure:
1 Project Planning and Requirements Definition
• Focus: Clarity of project objectives, requirements gathering, and initial design concepts.
• Assessment Criteria: Completeness of requirements, feasibility analysis, and initial design principles.
2 Environment Configuration and Initial Backend Development
• Focus: Setting up the development environment and implementing core backend functionalities.
• Assessment Criteria: Configuration accuracy, code quality, and functionality of backend components.
3 Frontend Development and Integration
• Focus: Development of the user interface and integration with backend services.
• Assessment Criteria: User interface design, responsiveness, and effective integration with backend APIs.
4 Implementation of Specific Functionalities and Optimization
• Focus: Finalizing application features and optimizing performance.
• Assessment Criteria: Functionality completeness, optimization techniques applied, and overall application performance.
Each sprint will be assessed based on a rubric that evaluates both individual and group contributions, ensuring accountability and collaboration.
2. Final Project and Presentation
The final project and presentation constitute 60% of the overall grade. This component assesses the culmination of the project work, including the final product and the ability to effectively communicate its features and functionalities.
Final Project Evaluation:
• Product Functionality: Assessment of the completed application, including all implemented features, performance, and user experience.
• Code Quality: Evaluation of the codebase for readability, maintainability, and adherence to best practices.
• Documentation: Quality and completeness of project documentation, including user manuals and technical documentation.
Final Presentation:
• Presentation Skills: Clarity, organization, and engagement during the presentation.
• Demonstration of Features: Ability to effectively showcase the application’s functionalities and respond to questions.
J Sharma, Ashish Sarin, Getting Started with Spring Framework, Ed. Createspace Independent Publishing Platform, 2017. Laurence Lars Svekis, Maaike Van Putten, Rob Percival, JavaScript from Beginner to Professional, Packt Publishing, 2021. Mikhail Sakhniuk and Adam Boduch, React and React Native (5th Edition), Packt Publishing, 2024
Computer and Operating Systems Fundamentals
"LO1: Know the basic operating principles of a computer system
LO2: Make a clear distinction between hardware and software and explain how they interact
LO3: Identify the main physical components of a computer and describe their functions
LO4: Understand and describe different computer architectures
LO5: Understand how a computer executes programs and how it communicates with other computers and users
LO6: Know the components of operating systems (OS), describe their functions and how they are implemented in different OSs
LO7: Distinguish between different types of OS and their practical applications
LO8: Use the command line, scripts and the OS graphical environment to carry out administration tasks
LO9: Understand hardware and OS virtualization and their relevance to saving resources
LO10: Implement hardware virtualization in type I hypervisors and in the cloud, and OS components in Docker."
"CP1: Introduction to number bases 2, 8, 16; Coding and representation of information (ASCII and others); Presentation of Boolean Algebra.
CP2: Computer structure: System board; CPU (processor architecture); Memories; BUS; Storage system; Graphics cards; Communication ports; Peripherals.
CP3: Components of Operating Systems (OS): Process management; Memory hierarchy and virtual memory; Input and output management; File system; Administration and security.
CP4: Study of Linux and Windows OS commands.
CP5: Hypervisors type II (VMware, VirtualBox) - Creation, OS configuration, export and import of virtual machines (VMs) Windows (client and server), Linux (client, firewall and email servers, VoIP, storage), and MacOS; Networking VMs.
CP6: Clouds (Azure and others) - Creation of Windows and Linux VMs; Access and use VMs in clouds."
"Mandatory attendance at 90% of classes, presentations and other events considered necessary for learning. Attendance and participation in theoretical-practical-laboratory classes is essential;
It is compulsory to complete 80% of the individual practical work;
The laboratory project, in groups, is compulsory. Groups of 3 or 4 people;
Summative assessment weights:
Av1: 5 practical assignments (5% each): 25% -> 3 group practical assignments, one for each topic (Hardware, OSs, Virtualization); 2 individual practical assignments, on one of the topics studied;
Av2: 2 mini-tests: 25% -> multiple choice tests, carried out individually, on Moodle in the classroom, without consultation. Each mini-test covers half the subject;
Av3: Laboratory project, with group presentation and demonstration and individual oral discussion: 50% -> the project work is eliminatory. Anyone who does not achieve a minimum mark of 9.5 out of 20 for the project fails the course;
Formative assessment:
- Exercises and standard tests are made available on Moodle so that students can self-assess their knowledge;
- For those who require it, question times are available for discussion and guidance on how to carry out the project;"
"José Alves Marques, Paulo Ferreira, Carlos Ribeiro, Luís Veiga, Rodrigo Rodrigues, ""Sistemas Operativos"", FCA, 2012, ISBN 978-972-722-575-0 Paulo Trezentos e António Cardoso, ""Fundamental do Linux"", 3ª Edição, FCA, 2009, ISBN: 978-972-722-514-9 Abraham Silberschatz, ""Operating System Concepts"", 10th Edition, Wiley, 2018, ISBN: 978-1119456339 Recursos diversos referidos nas Obervações: https://www.acsov.pt/p/recursos.html"
"Textos, exercícios e guias de laboratório da autoria da equipa docente. Morris Mano, Charles Kime, ""Logic and Computer Design Fundamentals"", 5th Ed, Prentice Hall, 2015, ISBN: 978-1292096070 Guilherme Arroz, José Monteiro, Arlindo Oliveira, ""Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores - 2ª Edição"", IST Press, 2009 Andrew Tanenbaum, Todd Austin, ""Structured Computer Organization"", 6th Ed, Pearson, 2012, ISBN: 978-0132916523 A. Silberschatz, P. Galvin, G. Gagne,""Operating Systems Concepts Essentials"", 2nd Ed, Wiley, 2013, ISBN: 978-1118804926 A. S. Tanenbaum and H. Bos, ""Modern Operating Systems (4th Ed)"", Pearson Prentice-Hall, 2014, ISBN: 978-0133591620 W. Stallings, ""Operating Systems Internals and Principles"", 9th Ed, Pearson, 2017, ISBN: 978-0134670959 M. Portnoy, ""Virtualization Essentials"", 2nd Ed, 2016, Sybex, ISBN: 978-1119267720 S. Mohan Jain, ""Linux Containers and Virtualization: A Kernel Perspective"", Apress, 2020, ISBN: 978-1484262825"
Web Programming
"After obtaining approval in the course, students should be able to:
OA1. Explain the main concepts of a MVC Web architecture, of Web Services, and of a REST architecture.
OA2. Model a MVC application for the Web based on the JAVA Enterprise Application.
OA3. Program a MVC application for the Web using the JAVA Spring Framework.
OA4. Program Web Services and a REST architecture."
"CP1. Documentation and Code Conventions
CP2. Software Engineering
CP3. Software Automation with MAVEN
CP4. JAVA Enterprise Architecture
CP5. Spring Framework
CP6. Development of Web Frontend
CP7. Web development in JAVA
CP8. MVC Spring Framework
CP9. Errors and Logging
CP10. Web Services
CP11. Spring REST"
The final grade of the course will be the arithmetic average of the grades obtained in a succession of practical mini-projects (2) carried out individually throughout the course, and which will have some continuity between them.
J Sharma, Ashish Sarin, "Getting Started with Spring Framework", Ed. Createspace Independent Publishing Platform, 2017.
Ludovic Dewailly, "Building a RESTful Web Service with Spring", Ed. Packt Publishing, 2015
Programming I
"After obtaining approval in the course, students should be able to:
OA1. Develop functions/procedures that implement simple algorithms.
OA2. Develop code that manipulates arrays and objects.
OA3. Develop simple object classes (no recourse to inheritance and polymorphism), taking into account the notion of encapsulation.
OA4. Write and understand Java code."
"CP1. Functions and parameters
CP2. Variables and control structures
CP3. Invocation and recursion
CP4. Arrays
CP5. Procedures and references
CP6. Matrices
CP7. Simple objects
CP8. Object classes
CP9. Composite objects"
The final grade is based on an individual project (50%) and a test (50%). The individual project will have a follow-up phase in the final weeks of the course, with the grade being assigned based on the entirety of the project and its presentation. The exam will take place after the teaching period ends.
Y. Daniel Liang, "Introduction to Java Programming and Data Structures", 12th Ed. Pearson 2021.