180 likes | 303 Views
This syllabus outlines the objectives, prerequisites, grading, and course materials for Programming Languages (COP4020/CGS5426) taught by Xin Yuan. Students will learn to understand programming language concepts, implement language features, and develop both interpreters and compilers. Assignments include programming projects, quizzes, and presentations. Students are expected to adhere to academic integrity and participate actively. For additional support, office hours are available with the instructor and teaching assistants.
E N D
Instructor Xin Yuan (xyuan@cs.fsu.edu) Office: 168 LOV Office hours: T, H 10:00am – 11:30am Class website: Blackboard and http://www.cs.fsu.edu/~xyuan/cop4020
Teaching Assistants Jiefei Cai, • Office: Lov 020 • Email: cai@cs.fsu.edu • Office hours: TBD Carlos Sanchez • Lov 171 (mobile lab) • Email: crs09e@my.fsu.edu • Office hours: TBD
Course Objectives • Understand concepts in programming languages • Be able to explain common language constructs and features • Be able to explain the subtlety in language features such as scoping, binding, and parameter passing. • Be able to simulate useful features in languages that lack them • Understand the general approach to implement a language. • Be able to write a programming language translator (compiler/interpreter). • Be able to program in procedural, object-oriented, functional, and logical programming languages • Functional programming, logical programming • Ultimate goal: be able, in principle, to design a new programming language
Prerequisites • COP 4530 Data structures • Working knowledge of the UNIX environment • Proficiency in C or C++
Course Material • Lecture notes (posted at the class website) • Textbooks: • Michael Scott, Programming Language Pragmatics, 3rd Edition
Class Grading • Midterm (20%) • Final (30%) • Covers the whole course • Programming projects (25%) • Oral presentation and paper (10%) • Quizzes and homework assignments (15%)
Presentation • Oral • Written (paper) • Must pass (70% or above) the oral and written presentation in order to pass the course • This is a cornerstone requirement from the upper level.
Programming projects • Programming projects (25%) • Language implementation (partial compiler) • Alternative programming • Complete project within due date • 10% penalty each day for up to two days for late submission
Letter grades • A : 94-100% C+: 77-79% D-: 60-62% • A-: 90-93% C: 73-76% F: 0-59% • B+: 87-89% C-: 70-72% • B: 83-86% D+: 67-69% • B-: 80-82% D: 63-66% To get C- or above, you must have a C- for the project and the combined grade.
Computer Accounts • Computer science account • Various tools • SSH, E-mail, text editor, g++, make • All programming assignments should be done on the CS servers (linprog). • FSU account • Receiving class emails • Please communicate with the instructor and the TA using a fsu account (cs or FSU). Emails from outside fsu (yahoo, hotmail, gmail, etc) may be ignored (or filtered).
Tentative schedule • Week 1: Introduction (Chapter 1) • Week 2: Syntax (Chapter 2) • Week 3: Syntax (Chapter 2) • Week 4: Names Scopes, and Bindings (Chapter 3) • Week 5: Semantics (Chapter 4) • Week 6: Semantics (Chapter 4) • Week 7: Axiomatic Semantics • Week 8: Control Flow (Chapter 6) • Week 9: Midterm • Week 10: Spring Break • Week 11: Subroutines and Parameter Passing (Chapter 8) • Week 12: Exception Handling (Chapter 8) • Week 13: Functional Programming (Chapter 10) • Week 14: Functional Programming (Chapter 10) • Week 15: Logic Programming (Chapter 11) • Week 16: Logic Programming (Chapter 11)
Academic honor policy • Read the student handbook • All violations will be processed by the university • Step 1 penalty: 0 grade for the particular homework/project/exam AND 1 letter grade downgrade for the final course letter grade (e.g. B->C).
Your Responsibilities • Understand lecture and reading materials • Attend office hours for extra help, as needed • Uphold academic honesty • Turn in your assignments on time • Check class Web page and your email account and regularly
Dos and Don’ts • Do share debugging experiences • Do share knowledge of tools • Do acknowledge help from others • Do acknowledge sources of information from books and web pages
Dos and Don’ts • Don’t cheat • Don’t copy code from others • Don’t paraphrase code from others either • E.g., changing variable names & indentations • Don’t leak your code to any place • There is no difference in terms of penalty between copying and being copied. • All honor code violation will be resolved through the Office of the Dean and the Faculties. • Zero for the particular assignment/exam AND one letter grade deduction for the level 1 agreement (first violation).
Course Policies • Attendance mandatory • There are no make-up exams for missed exams unless one (1) has a good excuse AND (2) notices the instructor before the exam. • Students with disabilities • Report to Student Disability Resource Center • Bring me a letter within the first week of class
To see or not to see me & TA • We are not psychics • Please let us know if… • Class is too hard • You don’t have the background • Class can be improved in certain ways • When in doubt, email us…