CSC301 Homepage
Fundamentals of Programming Languages
Fall 2018
Instructor:
Dr. Lutz Hamel
Tyler Hall 251
Office hours: Monday/Wednesday 11-noon Tyler 251
Email: lutzhamel@uri.edu
TA:
Christian Kostka
Office hours: Monday/Friday 3:30-4:30
Tyler Rm 134
Email: ckostka@uri.edu
Tel: 401-603-8392
Description:
Language enables thought. In this course we study a class of
formal languages known as programming languages. Similar to
natural languages, these formal languages enable us to to reason about
algorithms and procedures to solve computational problems on computers.
However, their formal nature restricts the kind of meanings
particular language constructs can assume and therefore makes them
amenable for the execution on a computer.
Over the years many different programming language dialects have
evolved to address particular technical issues, e.g. object-oriented
languages, real-time languages, database query languages, logic
languages, etc. Here we
study the major structures of modern programming languages.
Understanding not only the syntax of a language but also the semantics
and implementation techniques of this language will allow you to design
better programs. Having deeper insights into the design of a
programming language will also enable you to learn new programming
languages much faster. Having a thorough understanding of today's
languages allows you to design the programming languages of tomorrow.
Objective
Upon completion of this course
- You will be able to discern and contrast the major programming language paradigms in use today.
- You will be able to pick an appropriate language for the job at hand.
- You will have deeper insights into the evolution of programming languages.
Documents of Interest:
Exercises:
NOTE: ignore Sakai deadlines on the exercise sheets!