2016/2017, 1st sem, Security Risk Analysis and Management (graduate) Master Degree in Information Security, Faculty of Science of the University of Lisbon. (1st semester). Synopsis: This course enables the student to effectively perform information security risk analysis and management and support organizational decision making in the context of information security investments. The course introduces a cost-benefit analysis of information security assets and financial models that allow evaluating information security investments. Current frameworks, guidelines and standards for risk analysis and management are exposed and discussed, as well as specialized computational tools. Contents: Threats and vulnerabilities. Risk identification. Risk assessment. Risk analysis. Risk management. Control strategies. Cost-benefit analysis in InfoSec. Management indicators: Net Present Value (NPV), Internal Rate of Return (IRR) and Return on Investment (ROI). InfoSec investment analysis. Decision trees. International standards, methodologies and frameworks. Application to case studies in computer security. Biblio: Lawrence A. Gordon and Martin P. Loeb. Managing cybersecurity resources: a cost-benefit analysis, McGraw-Hill, 2006. Michael E. Whitmam and Herbert J. Mattord, Management of information security, 3rd Edition. Course Technology Ptr, 2010. Paul Goodwin and George Wright, Decision analysis for management judgment, 4th Edition. Wiley, 2009. Collection of research articles.
2016/2017, 1st sem, Theory of Computation (undergraduate, 5th semester) Faculty of Sciences of the University of Lisbon. Degree in Informatics Engineering. Synopsis: Introduction to basic concepts of Computation Theory relevant to define abstract models of computation with which it is possible to establish results concerning computability and complexity. Concepts of the “Formal Languages Theory” which are the fundamentals of programming languages. Abstract machines. The concept of algorithm revisited. Computability and decidibility. Church-Turing Thesis. Universal machines. Computability under limited resources. Complexity classes. Complete problems. Biblio: Michael Sipser, Introduction to the Theory of Computation 3rd Ed., Thomson Course Technologies, 2012.
2015/2016, 2nd sem, Programming Labs (undergraduate, 2nd semester) Faculty of Sciences of the University of Lisbon. Degree in Informatics Engineering. Objectives: Provide a practical and autonomous programming experience. Contents: This course has a practical/laboratorial component only. The practical component consists of the use of Java to solve several programming problems, applying the concepts introduced in two related courses: Introduction to Programing and Data Structures and Algorithms. Focus on: object oriented programming, queues, lists, trees, graphs, file handling, and iterative and recursive algorithm design. The students solve each problem individually. There are also some classes where the teacher supports the student in the resolution of small problems. Algorithms, file operations, arrays, matrices and other data structures like Lists, Queues and Stacks. Programs with several Java classes. Use of generic classes and practice with the Java API. Recursion and binary trees. Biblio: Java: Software Solutions, Foundations of Program Design, Fourth edition. Lewis e Loftus. Addison-Wesley, 2004. ISBN 0-321-26979-9. Java: Introduction to Problem Solving and Programming, Fifth Edition. Savitch e Carrano. Pearson International Edition, 2008. ISBN 0-13-135451-5. Objects, Abstraction, Data Structures and Design Using Java, Version 5.0. Koffman e Wolfgang. Wiley & Sons, 2005. The Elements of Java Style, Vermeulen, Ambler, Bumgardner, Metz, Misfeldt, Shur e Thompson. Cambridge University Press, 2000. ISBN: 0-521-77768-2.