CS310 - Computing Languages
Spring 2004
Instructor - Richard Powell
E-Mail - powerb@if.uidaho.edu
Course Description
This course will introduce you to the fundamental concepts of programming languages. In particular, we will discuss and compare features of several popular programming paradigms such as imperative, object-oriented, functional and logic programming.
Goals
The objective of this class is to challenge the notions you have of what a programming language is. These notions have been formed by the programming languages you have used in the past. Almost without exception, these languages represent a very small class of languages and concepts.
In addition, you will:
- learn principle attributes of imperative (procedural), object-oriented, logical, and functional programming languages through practical exercises with several languages, e.g., Java, Prolog, LISP, etc.;
- learn how to use BNF to describe data structures and how BNF drives the structure of programs
- learn how programs can be described using abstract syntax and how that abstract syntax is manipulated
- learn the vocabulary of programming language design, syntax and semantics
- develop an understanding of how programming languages differ
Textbook
Programming Languages, Paradigm and Practice, Second Edition, Doris Appleby and Julius J. VandeKopple, McGraw-Hill, 1997, ISBN 0-07-005315-4
Grading
| Homework: |
20% |
| Programming Assignments: |
30% |
| Midterm Test: |
20% |
| Final Exam: |
30% |
| 90-100 | A |
| 80-89 | B |
| 70-79 | C |
| 60-69 | D |
| Below 60 | F |
Assignments
The assignments are designed to help you master the material, so please try to complete the assignments if you want to understand CS310. This course material will be good background for several higher division classes.
I try to give partial credit if a reasonable attempt and understanding is evident. However, non-executing programs will receive zero credit.