LP - Programming Languages

Similar documents
CAP - Advanced Programming Concepts

CASO - Advanced Concepts on Operating Systems

PRO1-I2O23 - Programming I

PI - Internet Protocols

XC2 - Computer Networks II

SI - Computer Security

ABD - Database Administration

CAP - Advanced Programming Concepts

TCGI - Internet Transport, Control and Management

GDSA - Audiovisual Signal Management and Distribution

BD - Databases

Development of Applications Based in Microcontrollers

Digital Electronics

SOA - Advanced Operating Systems

G - Graphics

DSX - Digital Systems Using Embedded Linux

INTE-C5O44 - Internet

Real-Time Programming and Database Systems

TPA - Audiovisual Technology and Production

AD - Distributed Applications

ASO - Operating Systems Administration

Network Architecture I

ADS - Advanced Digital Systems

GCS - Cybersecurity Management

12048 Compilers II. Computer Science Engineering, 8º semester Mandatory, 2º Cycle. Theoretical credits: 3.0 Lab credits: 1.5. Theory: José Neira

CPD - Data Processing Centers

Computer Science (Informática)

OVNET - Overlay Networks

Philadelphia University Faculty of Information Technology Department of Computer Science --- Semester, 2007/2008. Course Syllabus

GI - Internet Management

Automatic Control

TXC - Computer Network Technology

FXT - Foundations of Telematic Networks

Computer Networks (Redes de Computadores)

School of Computing and Information Sciences

C - Cryptography

EMC - Emc in Electronic Design

IXT - Introduction to Networks

Gis Databases

Translator Design CRN Course Administration CMSC 4173 Spring 2018

The University of Aizu School of Computer Science and Engineering Introduction to Programming. Course Syllabus (Special Track for Foreign Students)

Compiler Construction

FT - Fundamentals of Telematics

Translator Design CRN Course Administration CMSC 4173 Spring 2017

QSN - Quality of Service in Networks

C - Cryptography

understanding recursive data types, recursive functions to compute over them, and structural induction to prove things about them

Seminar in Programming Languages

OPNET - Optical Networks

RIVC - Industrial Robotics and Computer Vision

240AR059 - Geometric Fundamentals for Robot Design

Electronic Circuits

Compiler Construction Lecture 1: Introduction Summer Semester 2017 Thomas Noll Software Modeling and Verification Group RWTH Aachen University

COMP 3002: Compiler Construction. Pat Morin School of Computer Science

AMC - Advanced Mobile Communications

CS/SE 153 Concepts of Compiler Design

Module Documentation

SYLLABUS. 1. Information regarding the programme 1.1 Higher education Babeş-Bolyai University of Cluj-Napoca

CSCI 565 Compiler Design and Implementation Spring 2014

XC - Computer Networks

Compiler Construction Lecture 1: Introduction Winter Semester 2018/19 Thomas Noll Software Modeling and Verification Group RWTH Aachen University

POO - Object Oriented Programming

Evaluation Scheme L T P Total Credit Theory Mid Sem Exam

Compiler Construction

CS Compiler Construction West Virginia fall semester 2014 August 18, 2014 syllabus 1.0

Course Weekly Outline

VD - Design Validation

B. Subject-specific skills B1. Problem solving skills: Supply the student with the ability to solve different problems related to the topics

ITT Technical Institute. ET2560T Introduction to C Programming Onsite and Online Course SYLLABUS

ECE573 Introduction to Compilers & Translators

SEAX-C9X44 - Network Security and Administration

CMPE 152 Compiler Design

CS Systems Qualifying Exam 2014

INTRODUCTION PRINCIPLES OF PROGRAMMING LANGUAGES. Norbert Zeh Winter Dalhousie University 1/10

CS Systems Qualifying Exam 2016

COURSE DESCRIPTION. 3. Total estimated hours (hours per semester and didactic activities)

A3D - 3D Animation

GD - Geometry for Design

CA Compiler Construction

Part A: Course Outline

HOLY ANGEL UNIVERSITY COLLEGE OF INFORMATION AND COMMUNICATIONS TECHNOLOGY COMPILER THEORY COURSE SYLLABUS

GUJARAT TECHNOLOGICAL UNIVERSITY

CMPE 152 Compiler Design

CS Systems Qualifying Exam 2015

TGA - Graphic Cards and Accelerators

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

KALASALINGAM UNIVERSITY ANAND NAGAR, KRISHNAN KOIL DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING ODD SEMESTER COURSE PLAN

MASTER OF SCIENCE IN COMPUTER AND INFORMATION SCIENCE

CSE 504: Compiler Design

IPNP - IP Networks and Protocols

CMPE 152 Compiler Design

Computer Networks IT321

IA010: Principles of Programming Languages

SYLLABUS Type of evaluation

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine.

Formal Languages and Compilers Lecture I: Introduction to Compilers

Bachelor of Science (B.Sc.) in Computer Science

New Undergraduate Course Proposal Form

CS 242. Fundamentals. Reading: See last slide

COMPUTER SCIENCE, BACHELOR OF SCIENCE (B.S.)

Transcription:

Coordinating unit: 270 - FIB - Barcelona School of Informatics Teaching unit: 723 - CS - Department of Computer Science Academic year: Degree: 2017 BACHELOR'S DEGREE IN INFORMATICS ENGINEERING (Syllabus 2010). (Teaching unit Optional) ECTS credits: 6 Teaching languages: Catalan Teaching staff Coordinator: Others: - Albert Rubio Gimeno (albert@cs.upc.edu) - Elvira Pino Blanco (pino@cs.upc.edu) - Gerard Escudero Bakx (gerard.escudero@upc.edu) - Jordi Petit Silvestre (jpetit@cs.upc.edu) - Jose Carmona Vargas (jcarmona@cs.upc.edu) - Jose Miguel Rivero Almeida (rivero@cs.upc.edu) Prior skills Prior skills on logic acquired in the course on Foundations of Mathematics (FM): - Knowledge of basic concepts of logic propositions and predicates - Knowledge of logical inference. Prior programming skills acquired in the courses on Data structures and algorithms (EDA) and Programming Projects (PROP): - Knowledge of programming. - Knowledge of object oriented programming languages Requirements - Corequisite PROP Degree competences to which the subject contributes Specific: CCO1.2. To demonstrate knowledge about the theoretical fundamentals of programming languages and the associated lexical, syntactical and semantic processing techniques and be able to apply them to create, design and process languages. Generical: G4. EFFECTIVE ORAL AND WRITTEN communication: To communicate with other people knowledge, procedures, results and ideas orally and in a written way. To participate in discussions about topics related to the activity of a technical informatics engineer. G6. SOLVENT USE OF THE INFORMATION RESOURCES: To manage the acquisition, structuring, analysis and visualization of data and information of the field of the informatics engineering, and value in a critical way the results of this management. 1 / 8

Teaching methodology Classes are divided into theory and lab sessions. In the theory sessions the concepts of the subject will be developed. The presentation of new theoretical material is combined with the resolution of examples and the interaction with the students to promote the discussion of introduced concepts. In the laboratory classes the introduced concepts will be put into practice and applied to specific problems and programming languages. There will be three small practices associated with the different evaluation tests. Learning objectives of the subject 1.Knowing the different compilation steps, including lexical, syntactic and semantic. 2.Conocer herramientas para la creación de analizadores léxicos y sintácticos. 3.Knowing the differences between a compiler and an interpreter. 4.Distinguish the main features of a given programming language. Identify its strengths and weaknesses and be able to justify a choice. 5.Understand the main features of functional programming languages. 6.Learn advanced programming language concepts 7.Being able to model and specify hardware or software problems using functional languages. 8.Learn the main features of scripting languages. 9.Ability to learn new programming languages independently. Study load Total learning time: 150h Theory classes: 30h 20.00% Practical classes: 0h 0.00% Laboratory classes: 30h 20.00% Guided activities: 6h 4.00% Self study: 84h 56.00% 2 / 8

Content Introduction to programming languages. Turing completeness. Programming paradigms. Main features. Introduction to compilers. Compilers vs interpreters. The lexical analysis. Parsing. Grammars. Table of symbols. Abstract syntax tree. Semantic analysis. Code generation. Functional languages. Foundations. Pattern Matching. Eager/Lazy evaluation. Introduction to Haskell. Type systems. Types in programming languages. Types and reliability. Type systems in functional languages and object-oriented languages. Higher-order programming Higher-order functions. Applications. Programming higher-order functions in functional and object-oriented languages. Modeling and Specification using functional languages Modeling and specification using declarative languages. Prototyping. Executable specifications. Program transformation. 3 / 8

Scripting languages Features. Using scripting languages. Combining paradigms. Types. Higher-order features. Short introduction to Python. 4 / 8

Planning of activities Introduction to programming languages Hours: 6h Laboratory classes: 0h Self study: 4h 4, 5, 9 Introduction to compilers Hours: 22h Theory classes: 6h Laboratory classes: 8h Self study: 8h 1, 2, 3 CL Hours: 10h Guided activities: 2h Self study: 8h 1, 2, 3 Functional languages Hours: 18h Theory classes: 4h Laboratory classes: 6h Self study: 8h 4, 5, 9 Type systems Hours: 10h Theory classes: 4h Laboratory classes: 0h 5 / 8

4, 5, 6, 9 Higher-order programming Hours: 10h Laboratory classes: 2h 4, 5, 6, 9 Modeling and specification using functional languages Hours: 12h Theory classes: 4h Laboratory classes: 2h 5, 7 EP Hours: 12h Guided activities: 2h Self study: 10h 5, 6 Scripting languages Hours: 14h Laboratory classes: 6h 3, 4, 8, 9 6 / 8

Learning a new programming language Hours: 10h Laboratory classes: 2h Guided activities: 2h Self study: 4h CT Hours: 7h Guided activities: 1h 4, 9 Reviewing activities Hours: 4h Laboratory classes: 2h Self study: 0h EF Hours: 15h Guided activities: 3h Self study: 12h 4, 5, 6, 7, 8 7 / 8

Qualification system There will be three evaluation tests plus a supervised work (TD) which apart from its value in the final rank of the subject, is also used to rank the generic competences G4.3 and G6.3. The evaluation tests CL, EP and EF have a little practical work associated to each one and called respectively PCL, PEP and PEF which must be submitted in advance. The rank of the supervised work will be obtained from the evaluation activity CT, and will be split into three parts: -TC1 which ranks the knowledge about the assigned programming language. -TC2 which ranks the general competence G4.3 on the bases of a brief presentation and discussion with the teacher and other students, in addition to the submitted documentation. -TC3 which ranks the general competence 6.3 on the bases of the given description of the consulted sources and the way they are referenced and the results obtained in TC1. The final rank is obtained from the following four ranks NOTA1 = 30%PCL +70%CL NOTA2 = 30%PEP +70%EP NOTA3 = 10%PEF +90% EF NOTA4 = TC1 using the following weighting: FINAL NOTE NOTA1 = 20%NOTA1 + 30%NOTA2 + 40%NOTA3 + 10% NOTA4 Bibliography Basic: Wilhelm, R.; Maurer, D. Compiler design. Addison-Wesley, 1995. ISBN 978-0201422900. Aho, A.V.; Sethi, R.; Ullman, J.D. Compilers: principles, techniques, and tools. 2nd ed. Addison-Wesley, 2007. ISBN 9780321491695. Mitchell, J.C. Concepts in programming languages. Cambridge University Press, 2003. ISBN 978-0521780988. Scott, M.L. Programming language pragmatics [on line]. 3rd ed. Morgan Kaufmann, 2009Available on: <http://site.ebrary.com/lib/upcatalunya/docdetail.action?docid=10427449>. ISBN 978-0123745149. Thompson, S. Haskell: the craft of functional programming. 3rd ed. Addison-Wesley, 2011. ISBN 978-0201882957. Ruiz Jiménez, B.C. Razonando con Haskell: un curso sobre programación funcional. Thomson-Paraninfo, 2004. ISBN 9788497322775. 8 / 8