ContentsWeb SitesTextbook & ReadingsHomeworkExamsGrading

Course Plan for Ensino Remoto Emergencial

Course Description

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.

Lectures

19:00-20:40 Mon, Wed. CAD 3, Auditorium B-106.

Instructor

Haniel Barbosa, Office 4323, DCC
hbarbosa@dcc.ufmg.br

Teaching Assistant

Cleiton Silva
cleiton.silva@dcc.ufmg.br

Web Sites

Most of the information about the class, including handouts and assignments, will be available from the class web site:

Course website

We will use Moodle for grade posting and turning in assignments.

Moodle class

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:

Microsoft Team for online classes

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.

Textbook and Readings

The required textbook is
    Modern Programming Languages: A Practical Introduction, by Adam Webber.

Additional reading materials will be made available on the course web site as needed.

Homework Assignments

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.

Exams

There will be two exams, both during class time. Questions will cover both theory and implementation aspects of programming languages.

Grading

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.