Double Qualification in Engineering Studies in Audio-visual Systems and Multimedia

Double Degree in Engineering Studies in Audio-visual Systems and Multimedia

La Salle Campus Barcelona offers 5 double degrees in the ICT Engineering and the Business Management field. With the double degrees, you can finish the university studies in 5 academic years with two official degree qualifications

Programming Languages

Description

Programming Languages course intention is to teach basic knowledge regarding programming languages and their foundation and design. Also, this course aims to emphasize the importance of critical thinking and for this reason the student will contact programming language research environment.

This course combines lectures and discussions/debates about different class-related topics with group projects in order to settle all theory as well as student?s autonomy and group work capabilities. Some topics (or research papers) will be proposed by the teacher so students can explore and debate these materials.

Type Subject
Optativa
Semester
Second
Credits
6.00

Titular Professors

Previous Knowledge
Objectives

Knowledge of the basic foundations for the formal definition of programming languages.
Knowledge of the techniques for the implementation of programming languages.

Contents

Module: Programming Languages
History. Statistics
Classification
Paradigms. Essence. Examples
Levels. Definition. Examples.
Compiled/Interpreted/ Definition. Examples
Features/Attributes of a Good language
PL components
Perspectives/Roles. Programmer, Designer, Implementer
Study cases

Module: Formal Languages
Languages. Grammars. Machines.
Chomsky?s classification. Regular languages, context-free, context-sensitive and unrestricted.
Grammars. Derivation. Syntactic tree. Generated language.
Regular languages. Regular expressions. Regular grammars.
Finite state machines. Deterministic and nondeterministic. Implementation. Applications.
Context-free languages. Context-free grammars.
Stack automaton. Deterministic and nondeterministic. Implementation. Applications.
Semantics. Attribute grammar. Implementation. Applications.

Module: Compilers and Interpreters
Compilers and interpreters. Compiler?s structure. Interpreter?s structure.
Compiler execution process. Interpreter execution process.
Lexicographical analysis.
Syntactic analysis.
Semantic analysis. Syntax-driven translation.
Code generation.

Methodology

Programming Languages course intention is to teach basic knowledge regarding programming languages and their foundation and design. Also, this course aims to emphasize the importance of critical thinking and for this reason the student will contact programming language research environment.

This course combines lectures and discussions/debates about different class-related topics with group projects in order to settle all theory as well as student?s autonomy and group work capabilities. Some topics (or research papers) will be proposed by the teacher so students can explore and debate these materials.

Evaluation

- The subject has a duration of one semester and consists of two differentiated parts: the knowledge part and the practical part. The evaluation of knowledge and project will be independent. To pass the subject, it will be necessary to pass both the knowledge and the project independently. The final grade of the subject is represented in the following formula:

Final_Grade = 30% · Knowledge + 70% · Project

- The knowledge grade will be assessed based on the (weighted) grades related to the proposed activities in class and their participation. All proposed activities must be submitted.

- If the knowledge grade (Knowledge) is not >=5, then the student will have the opportunity to take a Final Exam worth 30% of the grade.

- There will be the possibility of taking a final recovery exam (extraordinary call) for those students who have not passed the subject in the ordinary call (due to the knowledge and/or project grades). In any case, the project must have been submitted and passed.

The project of the subject is very important within the contents of the subject. The reasons are diverse: the practical application of the theoretical concepts explained in the lectures, the ability that the student must demonstrate in the design and implementation of programs of a certain volume in terms of lines of code and functionalities, the applied complementation of certain conceptual contents, etc. That is why the project of the subject requires a significant effort in terms of student dedication.

1. The project will be done in groups of 4 or 5 people.
2. The group must self-manage for the completion of the requested task.
3. The programming language used in the project will be the Java language.
4. Each group will have a weekly meeting (maximum 15 minutes) with the professor where they will demonstrate the progress of the project and explain the plans for the following week.
5. For the project, there will be 3 evaluation points (milestones).
6. For a project to be accepted and eligible for grading, 6 requirements must be met:
a. It must have been presented on the corresponding day of the milestone.
b. It must be properly structured and have the corresponding internal documentation.
c. It must have a correct report.
d. It must function correctly.
e. The group must present their project in front of a tribunal.
f. The group presenting the project must pass the individual interview with the professor where they must demonstrate a deep knowledge of the project in its entirety.
7. In case of plagiarism, it implies failing the project and losing the opportunity for the next final exam for both the source and the copy groups, with a grade of 0 in the subject's record.
8. If the practical part is failed in the ordinary call (or the project is not submitted), it must be submitted in the extraordinary call.

Evaluation Criteria
Basic Bibliography

[1] Tucker, A. B, Noonan, R.E., Programming Languages, Principles and Paradigms, 2nd edition, McGraw-Hill, 2007
[2] Pratt, Terrence and Zelkowitz, Marvin V. "Programming Languages: Design and Implementation (Fourth edition)". Prentice Hall, 2001
[3] Mozota, M., Teoria de la compilació: Anàlisi lèxic i sintàctic, LaSalleOnline Enginyers, 2009
[4] Mozota, M., Teoria de la compilació: Anàlisi semàntica i generació de codi, LaSalleOnline Enginyers, 2009

Additional Material