Introduction
Year: 1º
Semester: 1º
Credits: 3
ECTS: 7,5
Hours/Week: 3h
Lectures:
João Correia Lopes (JCL)
Aims
Give the students a global view of the different paradigms with the emphasis on concepts, implementation and suitability to solve the different classes of problems, leading to the understanding of the trade-offs in language design and the advantages and disadvantages of the main languages.
Contents
- Introduction and the role of programming languages.
- Functions, recursion, lists and Lisp.
- Compilers and syntax,lambda-calculus and denotational semantics.
- The Algol family and ML.
- Type systems and type inference.
- Scope, functions and memory management.
- Data abstraction and modularity.
- Concepts in Object-oriented languages, Simula and Smalltalk.
- Objects and runtime execution in C++.
- Portability and security in Java.
- Logic programing and Prolog.
- Concurrency and distributed programming.
Main Bibliography
- John C. Mitchell, Concepts in Programming Languages, Cambridge University Press, 2003, ISBN=0-521-78098-5
Other Bibliography
- Ravi Sethi, Programming Languages: Concepts and Constructs, 2nd Edition, International Edition, Addison-Wesley, 1996, ISBN=0-321-21074-3
- George Springer, Daniel P. Friedman, Scheme and the Art of Programming, MIT Press, 1989, ISBN: 0-262-19288-8
- K. Arnold, J. Gosling, The Java Programming Language, Adisson-Wesley, 3rd Edition, 2000, ISBN=0-201-70433-1
- Leon Sterling, Ehud Shapiro, The Art of Prolog - 2nd Edition: Advanced Programming Techniques, MIT Press, 1994, ISBN=0-262-69163-9
- Simon Thompson, Haskell: The Craft of Functional Programming, 2nd Edition, Addison-Wesley, 1999, ISBN=0-201-34275-8
Teaching Procedures
Lectures include theoretical presentation of the course subjects, discussions and examples of computer programs. Outside classes practical work will take place.
Software
- Java SE 6 — Java for Unix, Macintosh or Windows
- DrScheme — Scheme for for Unix, Macintosh or Windows
- Yap Prolog — Prolog Linux, Solaris or Windows
- Interpreter Hugs — Haskell for Unix, Macintosh or Windows
Evaluation Type
Continuous Evaluation with Final Exam.
Evaluation Components
The course as three Practical Assignments and a Final Exam.
Description | Type | Time (hours) | Conclusion date |
---|---|---|---|
Teaching classes (estimated) | Classes | 36 | — |
Definition (R1) | Work | 27 | 13/03/2008 |
User Interface (R2) | Work | 36 | 17/04/2008 |
Multi-paradigm Application (R3) | Work | 54 | 5/06/2008 |
Product (P) | Work | 0 | 5/06/2008 |
Demonstration (A&D) | Work | 0 | 5/06/2008 |
Study | 7 | — | |
Total | 160 | — |
Frequency Attainment
Minimum required to pass this course: 50% Practical Assignments, 40% Exam.
Final Classification
Classification = 50% Practical Assignments + 50% Final Exam. Where, Practical Assignments = 10% R1 + 10% R2 + 20% R3 + 50% P + 10% A&D.
Special Works and Tests
There are no special works. The practical work is required for all enrolled students and must be submitted before the deadlines advertised.
Special Evaluation (Working Students, etc)
Students taking exams under special regimes are expected to previously submit the practical work required for this course as ordinary students.
Classification Improvement
Students may improve the mark obtained in the practical component in the subject's next edition. Exam marks may be improved in the resit exam period.