CS 3304: Comparative Languages
Spring 2019
Course Information
Time and place |
: CRN 12809_201901, M W F 10:10 am – 11:00 am, MCB 113 |
|
Instructor |
: Faryaneh Poursardar |
|
Office Hours |
: McBryde Hall 122, M, W 12 pm – 1 pm, and by appointment |
|
Contacts |
||
Website |
||
GTA |
: Prerna Juneja prerna79@vt.edu |
Xianhao Jin xianhao8@vt.edu |
UTA |
: Li Huang hli4@vt.edu |
|
GTA & UTA Office Hours |
: See the course web page |
|
Prerequisites |
: CS3114
(Data Structures and Algorithms). |
Course Description
This course provides an in-depth
study of current and historical issues in the design, implementation, and
application of programming languages. Topics will vary from basic to advance in
areas such as syntax, semantics, binding, data abstraction, exception handling,
concurrency, and functional, logic and object-oriented programming. Some
programming will be required to help you get the feel for different types of
languages. In particular, you will be expected to develop programs in two new paradigms
with which you may not be familiar.
The primary goals of this course
are (1) to give you the background to be able to evaluate the appropriateness
of a programming language to an application, (2) exposure to different types of
languages, and (3) to get you to the point where learning a new programming
language is not an effort to be feared.
· ·
Programming
Language Pragmatics, 4th Edition, Michael L. Scott.
For each programming
assignment, submission guidelines will be posted on the course web site or
Canvas describing the outline and grading of your program reports.
Attendance, in-class activities, quizzes
|
10%
|
Midterm
|
20%
|
Homework assignments
|
25%
|
Programming Project assignments (4)
|
25%
|
Final
|
20%
|
Percentage
|
93-100
|
90-92
|
85-89
|
80-84
|
75-79
|
70-74
|
65-69
|
<65
|
Grade
|
A
|
A-
|
B+
|
B
|
C+
|
C
|
D
|
F
|
Tentative Topics:
Topics |
Chapter |
Introduction and Language Evaluation
|
Chapter 1
|
History and Evolution
|
Chapter 2
|
Syntax and Semantics
|
Chapter 3, 4
|
Names and Typing
|
Chapter 5
|
Expressions and Assignment
|
Chapter 7
|
Control Structures
|
Chapter 8
|
Data Types
|
Chapter 6
|
Abstract Data Types (ADTs)
|
Chapter 11
|
Subprograms
|
Chapters 9, 10
|
Functional Programming
|
Chapter 14
|
Logic Programming
|
Chapter 15
|