Tiago Santos Curriculum Vitæ B [email protected] Í tiago.santos.com.pt A tvcsantos Personal Information Full Name Birth Date Gender Nationality Tiago Vieira Correia dos Santos December 24, 1987 Male Portuguese Education 2010 – Present Advanced Studies in Computer Science, Faculdade de Ciências e Tecnologia, Universidade Nova de Lisboa. Scholarship granted by Fundação para a Ciência e Tecnologia, Ministério da Educação e Ciência Supervisor: Prof. Luís Caires 2008 – 2010 MSc. in Computer Science, Faculdade de Ciências e Tecnologia, Universidade Nova de Lisboa. Final grade: 18/20. Dissertation Title: Linguagem de Especificação Leve Hoare-Separação para Java. Advisor: Prof. Luís Caires 2005 – 2008 BSc. in Computer Science, Faculdade de Ciências e Tecnologia, Universidade Nova de Lisboa. Final grade: 17/20. Merit Scholarship (2005/2006), granted by the University. 2002 – 2005 High School Diploma - General Sciences, Escola Secundária Cacilhas-Tejo, Cacilhas, Almada. Final grade: 19/20. Work Experience 2009 – Present Research Assistant, Faculdade de Ciências e Tecnologia, Universidade Nova de Lisboa. During this period I have worked on static analysis techniques for reasoning about imperative programs with data structures and aliasing. One of the main novelties of this approach is the usage of a specification language closer to a programming language, integrated in the programming environment and tailored to an automatic verification process during application development. In this approach we ease the burden of complex annotations in programs and the verification is automatic. Supervisor: Prof. Luís Caires. Scholarship Holder at Departamento de Informática / NOVA-Lincs (formerly CITI) 2009 – Present Teaching Assistant, Faculdade de Ciências e Tecnologia, Universidade Nova de Lisboa. { { { { { { Object Oriented Programming – Spring Semester 2014/2015 Introduction to Programming (B) – Winter Semester 2012/2013 Programming Languages and Environments – Spring Semester 2011/2012 Introduction to Programming (C) – Winter Semester 2010/2011 Introduction to Computers and Programming – Spring Semester 2010/2011 Computational Logic – Spring Semester 2009/2010, Winter Semester 2015/2016 Technical Skills Programming Java (Expert), Scala (Expert), OCaml (Proficient), C (Proficient), C++ (Proficient), JavaScript Languages (Proficient), SQL (Proficient), Python (Intermediate) Operating Microsoft Windows, Linux, Mac OS Systems Expertise Software Construction, Programming Languages and Type Systems, Static Analysis Techniques, and Automatic Program Verification. Tools and SMT - Z3, SVN, Git, LaTeX, HTML, XML, CSS, Arduino Frameworks Soft Skills { Good Communication Skills { Critical Thinking { Teamwork and Collaboration { Research, Problem Analysis and Solving Projects SpecJava. This prototype was developed during my Master’s Thesis and extends the type-based verification of Java towards more informative logical reasoning, integrating specifications (contracts) in the programming language. This specification language is inspired on JML and Spec#, but simpler and lightweight because it is based on propositional logic. Website: http://tiago.santos.com.pt/specjava Main technologies used: Java, CVC3, Polyglot, Ace FunSpec. In this prototype we develop a new assertion language, used to specify imperative programs, that is closer to a programming language, which is easier to use for programmers and tailored to automatic verification. It checks “logical” relations between assertions, that is, if an assertion is equivalent to or implies other assertion, which is a fundamental property on the definition of a decision procedure for automatic program verification. Website: http://tiago.santos.com.pt/funspec3 Main technologies used: Scala, Z3, PHP, JavaScript, jQuery, Ace ImProVe. This prototype checks that imperative programs with data structures and aliasing comply to their specifications (contracts), that are expressed using the FunSpec assertion programming language. Website: http://tiago.santos.com.pt/improve Main technologies used: Scala, Z3, PHP, JavaScript, jQuery, Ace Publications Ligthweight Type-Like Hoare-Separation Specs for Java, In Proceddings of InForum, Universidade do Minho, 2010. Linguagem de Especificação Leve Hoare-Separação para Java, Master Thesis, Faculdade de Ciências e Tecnologia, Universidade Nova de Lisboa, 2010. Languages Portuguese Fluent English Advanced Native Language. Speaking, Reading and Writing. Extra-Curricular Acitvities 2010 Volunteer, ExpoFCT 2010 @ DI, UNL – FCT. This event is an open day where several high schools visit FCT/UNL campus to participate in activities and experience the university research, innovation and technological environment. I helped in the organization of an activity that consisted on teaching basic concepts of programming (e.g. Scratch – A visual programming language).