CSC 519: Programming Languages
last update: 11/30/11
CSC 519: Programming Languages
last update: 11/30/11
Final Exam:
Section N: Thursday, December 8, 8am-10.30am in our classroom
Course material:
Slides:
Introduction, chap. 1: pl-ch1.pdf (updated on 9/6/11)
Evolution of languages, chap 2: pl-ch2.pdf
Syntax & Semantics, chap 3: pl-ch3.pdf
Names, Bindings, Type checking, and Scopes, chap 5: pl-ch5.pdf
Data Types, chap 6: pl-ch6.pdf
Expressions & Assignment Statements, chap. 7: pl-ch7.pdf
Concurrency, chap. 13: pl-ch13.pdf
Functional Programming Languages, chap. 15: pl-ch15.pdf
Logical Programming Languages, chap. 16: pl-ch16.pdf
Assignments:
Assignment 1: CSC519-Assignment-1.pdf
Assignment 2: CSC519-Assignment-2.pdf
Assignment 3: CSC519-Assignment-3.pdf
Assignment 4: CSC519-Assignment-4.pdf
Assignment 5: CSC519-Assignment-5.pdf
Assignment 6: CSC519-Assignment-6.pdf
Assignment 7: CSC519-Assignment-7.pdf (updated on 11/28)
Assignment 8: CSC519-Assignment-8.pdf
Initial handout:
as PDF-version: CSC519-PL-Initial-Handout.pdf
Introduction
Concepts of Programming Languages introduces students to the main constructs of contemporary programming languages and provides the tools necessary to critically evaluate existing and future programming languages. By presenting design issues for various language constructs, examining the design choices for these constructs in some of the most common languages, and critically comparing the design alternatives, this course gives students a solid foundation for understanding the fundamental concepts of programming languages.
Course objective
1.To learn the key concepts of the design of contemporary programming languages.
2.To learn to intelligently evaluate the features of contemporary programming languages, as well as to evaluate complete languages.
3.To learn a significant part of one particular language.
Instructor
Dr. Ubbo Visser. Contact details are on the WWW at http://www.cs.miami/edu/~visser. The WWW page gives also digital copies of assignments and slides (if not already on the WWW as HTML version). Particular office hours are not given, students who want to talk to me are encouraged to make an appointment with me in class or via email. Students are encouraged to ask questions by email at all times.
Teaching Assistant
Piyali Nath
Email: p.nath@umiami.edu
Lab hours: FR 2-4pm & Either Sat or Sun (please look at UB 426 door).
Contact Hours
Each week there are two 75 minutes sessions (Tuesday, Thursday 8am - 9.15am)
Classroom: MM 119
Recommended Text Book
Concepts of Programming Languages, 8/E, Robert W. Sebesta, University of Colorado, Colorado Springs, ISBN-10: 0321493621, ISBN-13: 9780321493620, Publisher: Addison-Wesley
Course Content
Chapters 1 to 3, 5 to 12, plus parts of 13, 14, 15, and 16 as time permits. If time is short, some of the concepts in chapters 13-14 will be omitted. Also, you will learn part of some language that is new to most of the students in the class. Course material will be uploaded before the lecture as .pdf files. The content may be subject to small changes during the semester.
Grading (will be based on a total of 100 points)
Homework (n-1): 70 points
Final: 30 points
Scoring of Homework Assignments
The score of each homework will be mentioned in it. The total score of all homework assignments will be scaled down to 70 points at the end of the semester for the purpose of final grading. For example, if all homework assignments collectively carry 100 points and a student gets 90 out of 100, he/she gets 90*70/100 or 63 out of 70 in Homework Assignment component for final grading.
Class attendance and participation
Class attendance is not mandatory, although my exams will depend heavily of my lectures. Not all of the material will come from the text. Class participation is also important. Active interest in lectures is the easiest way to learn.
Plagiarism
The penalty for copied homework of any kind can be immediate failure in the course. My policy on programs is as follows: There is no reason for two (or more) people handing in identical or nearly identical programs. I will regard such programs as either group-written or simply copied. If I have no hard evidence of copying, such programs will receive NO credit. More serious actions will be taken in cases where there is evidence of cheating.
Late programs
Unless otherwise stated, programs will lose 20% of their value for each weekday (Monday through Friday) that they are late, down to a minimum value of 20%. The due date of a program is the latest date on which it can be run to get full credit.
Dropping the course
Unless there are extreme extenuating circumstances, I will not allow anyone to drop a course after the drop date. Poor academic performance will never be an acceptable reason for a late drop. The drop date for this course is October 28th.
Incompletes
Unless there has been a documentable illness that caused you to miss substantial amounts of class and computer time, I will not give an incomplete grade in this course. Therefore, please do NOT waste my time asking about an incomplete grade unless you have a remarkably good reason.
Make-up exams
I do not give make-up exams. You simply must show up and take them at the specified times.