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

: prsardar@vt.edu

Website

: http://people.cs.vt.edu/prsardar/classes/cs3304-Spr19/

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.


Communication

Course communication will be via Canvas. We will post often to Canvas and course web site, so you should plan to check them often (every day).

If you want to send email to GTAs or me, make sure to include the course number (CS 3304) in the title and use an appropriate title for your email.


Textbooks

The primary required textbook is:

·         Concepts of Programming Languages, 11th edition, Robert W. Sebesta, Pearson.

Recommended reference: You may find the optional textbook helpful, though it is not required:

·        ·         Programming Language Pragmatics, 4th Edition, Michael L. Scott.

 

It is critically important that you study the relevant course readings so that we can make the most of our limited class time together. 


Homework and Programming Assignments

Homework assignments must be submitted via Canvas. Acceptable homework submissions format are PDF (preferred), .doc, .docx or any readable format in Microsoft Word. All homework assignments are to be typed. Note that presentation (i.e., readability, clarity, and grammar) will count in grading.

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.

Some assignments require pairs, some are individual, and some may are optional pairs. When students turn in a joint assignment, all students in the group will normally receive the same grade. You may not switch partners in the middle of an assignment. In other words, you may not discuss solutions for any one assignment unless you are working on a group assignment. Then you are NOT allowed to discuss the assignment with members of other groups.

When students work in groups, it is important that all the students involved completely understand the answers that they submit. The instructor reserves the right to require any student to present the answers to their homework assignment verbally to insure that each student does in fact meet the minimum requirement of understanding the solutions they submitted, and may reduce credit given for the assignment if the verbal answer is not compatible with understanding of the written answer. All joint submissions MUST contain a statement that clearly indicates, for EACH problem, the contribution of EACH student to the problem. Some possible contributions for a problem might include one or more of the following: Cracked the problem, wrote up the solution, found flaws/improved earlier versions of the solution.

Only one partner need make the submission to Canvas. The Submission should contain the name of both/all partners.

All homework assignments must be submitted by 11:59pm Eastern time on the due date. Assignments received late will not be graded unless the instructor has given a prearranged individual extension.

Regrade Policy: You have one school week to appeal your scores after each assignment was graded.


Grading:

Attendance, in-class activities, quizzes

10%

Midterm

20%

Homework assignments

25%

Programming Project assignments (4)

25%

Final

20%

The course final grading scale is:       

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


Attendance Policy:

Attendance and class participation are mandatory.

Cell phones must be on silence and not answered until the end of the class. You are expected not to play, text, etc. with your cell phone during the class.


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


Academic Integrity Statements - Honor Code:

The Virginia Tech Honor Code applies to this course and will be strictly enforced. For more information, refer to http://www.honorsystem.vt.edu/ .

All homework submissions that involve working problems MUST contain the following Pledge Statement:

“I have not received unauthorized aid on this assignment. I understand the answers that I have submitted. The answers submitted have not been directly copied from another source, but instead are written in my own words.”


Americans with Disabilities Act (ADA) Policy Statement

The Americans with Disabilities Act (ADA) is a federal anti-discrimination statute that provides comprehensive civil rights protection for persons with disabilities.

If you need adaptations or accommodations because of a disability (learning disability, attention deficit disorder, psychological, physical, etc.), if you have emergency medical information to share with me, or if you need special arrangements in case the building must be evacuated, please make an appointment with me as soon as possible.