Contents: Web Sites ⋅ Textbook & Readings ⋅ Homework ⋅ Exams ⋅ Grading
The purpose of this course is to study fundamentals concepts in programming languages and major tools and techniques to implement them. This includes a number of programming paradigms, namely: functional, imperative, and logic, as well as general aspects such as syntax specification and informal semantic models; binding and scoping; types and type systems; control structures; data abstraction; procedural abstraction and parameter passing; higher-order functions; and memory management. The course has a strong implementation component, with three languages being covered: SML, Python, and Prolog. No prior familiarity with these languages is assumed in this course. Learning them will have the secondary effect of exposing students to the different programming paradigms.
19:00-20:40 Mon, Wed. CAD 3, Auditorium B-106.
Haniel Barbosa, Office 4323, DCC hbarbosa@dcc.ufmg.br
Cleiton Silva
cleiton.silva@dcc.ufmg.br
Most of the information about the class, including handouts and assignments, will be available from the class web site:
We will use Moodle for grade posting and turning in assignments.
Online classes will take place via Microsoft Teams, as will class discussion, which is highly encouraged between classmates as well as with the teaching staff:
Students are expected to check both the class web site and the Moodle discussion board on a regular basis (at least every other day) for announcements regarding the course.
The required textbook is
Modern Programming Languages: A Practical Introduction, by Adam Webber. |
A few exercises may be given during the course of the semester, covering the material from the textbook and the lectures. These exercises are required but will not be collected.
There will be homework assignments. Deadlines for submission will be one week after the assignment.
Points will be assigned as long as answers are sensical. No involved grading will be performed.
There will be two exams, both during class time. Questions will cover both theory and implementation aspects of programming languages.
The weighting of items in grade determination will be the following:
Item | Weight |
---|---|
Homework Assignments | 20% |
Exam 1 | 40% |
Exam 2 | 40% |
Attendance:
Students are expected to attend all classes.
Studenst are expected to follow all classes.
Their knowledge and therefore their grade depends on it.
They are responsible for all announcements and material
covered during class even if they did not attend.
At each class a list will be passed on to be signed by the student, attesting their attendance.
Make-up Exams: There will be a make-up exam at the end of the semester. It replaces one missed exam. It will cover the whole course.