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, 3 rd 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).
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…