CS / CE 4337 Course Syllabus Course Information Course Number: CS / CE 4337 Course Title: Organization of Programming Languages Section Numbers:.001 and.002 Credit Hours 3 Term: Spring 2013 Contact Information Instructor: Brian W. DeVries Office: ECSS 3.201 Email: brian.devries@utdallas.edu Website: http://www.utdallas.edu/~brian.devries Phone: (972) 883-4835 Office Hours: TBD (or Appt) Section 001 Section 002 TA: TBD TBD TA Office: TA Email: TA Office Hours: Course Pre-requisites, Co-requisites, and/or Other Restrictions CE / CS / TE 2336 or CS 3333 o Running a compiler from the command-line (i.e., outside an IDE) o Using a non-ide text editor (Notepad++, Vim, Emacs, etc.) CE / CS / TE 2305 o Set theory o Recursion, including writing simple recursive subroutines o Propositional and predicate logic o Proof techniques, especially proof by induction and proof by contradiction CS /SE /TE 3340 or CE/EE 4304 Unit Testing Navigating large source files (in excess of 1,000 lines) Basic familiarity with Linux and the command-line on the CS1 / CS2 servers (optional) CS / CE 4337 Course Syllabus Page 1
Course Description From Coursebook: Principles of design and implementation of contemporary programming languages. Formal description including specification of syntax and semantics of programming languages. Language definition structures including binding, scoping, data types, control structures, parameter passing, abstraction mechanism, and run-time considerations. Design issues of imperative languages, object-oriented languages, functional languages and logic languages. Design, implement, and debug programs in various programming language paradigms. More specifically: The principal concerns and considerations of programming language design The defining features and principles of the imperative programming language paradigm o Program state, destructive assignment o Object orientation, especially forms of inheritance o Examples: Algol-60, Pascal, Modula-2, Oberon, others The defining features and principles of the functional programming language paradigm o Lambda calculus, Currying o Functions as first-class constructs o Lists, trees and other recursive data types o Type systems, type checking, type inference o Examples: Haskell, Lisp / Scheme (briefly) The defining features and principles of the logic programming language paradigm o Predicates, clauses, relations, proofs o Unification, negation-as-failure, backtracking o Example: Prolog Formal descriptions of syntax o Context-free grammars, EBNF Formal descriptions of semantics (briefly) o Dijkstra s predicate transformer semantics, others as time permits Implementation concerns o Type systems strict vs. loose, static vs. dynamic o Parameter passing call by value, call by value-result, call by reference, call by name, call by need o Scoping o The call stack and its contents o The heap o Exceptions and control flow Implementation techniques (briefly) o Compilers vs. Interpreters o Rise of the Virtual Machines (time permitting) o Simple examples in Lisp, Haskell, Prolog Bootstrapping o T-Diagrams o Example: Implementing a self-hosting compiler for a new language CS / CE 4337 Course Syllabus Page 2
Student Learning Objectives/Outcomes A student who successfully completes this course should be able to: Identify the primary features and characteristics of programming language paradigms, including the ability to recognize them in modern languages (i.e., in the wild ) Understand and briefly describe the processes of bootstrapping, interpretation, and compilation (including phases / stages of compilation and translation) Understand the different forms of binding, scoping, parameter passing, and data typing, along with the benefits and costs of each Write algorithms and data type definitions purely (or almost purely) using recursion Understand the concepts of first-class values especially functions as first-class values Design and implement simple programs using a functional programming language, with direct experience using Haskell Understand the concepts of the predicate calculus and the techniques of unification and resolution theorem proving Design and implement simple programs using a logic programming language, with direct experience using Prolog In addition, such a student should have the necessary preparation to further explore the following topics: Design and implementation of compilers, interpreters, and virtual machines From-scratch design and specification of new programming languages including weighing the different design considerations Design and implementation of domain-specific languages Automated theorem proving New research in programming language design, such as language-based security CS / CE 4337 Course Syllabus Page 3
Required and Suggested Textbooks and Materials This course will not be taught from / following any particular textbook. As a result, there are no required textbooks for this course. Some relevant papers will be assigned reading; these will be posted online and / or distributed in class. Any slides used during the lecture will be posted online; however, most of the material will be covered using the whiteboard. For those who are interested in exploring the topics in this course further, the following texts are recommended: Michael S. Scott: Programming Language Pragmatics, Third Edition o http://www.amazon.com/programming-language-pragmatics-third- Edition/dp/0123745144 Daniel E. Cooke: A Concise Introduction to Computer Languages: Design, Implementations, and Paradigms (note: out of print, but used copies available online) o http://www.amazon.com/concise-introduction-computer-language- Implementations/dp/0534376959/ Robert W. Sebesta: Concepts of Programming Languages, Tenth Edition o http://www.amazon.com/concepts-programming-languages-10th- Edition/dp/0131395319/ Links to additional materials related to the programming languages used in this course will be posted on the instructor s website. CS / CE 4337 Course Syllabus Page 4
Assignments & Academic Calendar There will be a number of graded homework assignments to provide the student with experience using functional and logic programming languages. A specification and a set of unit tests will be provided for each problem. The student is expected to read the specification and tests carefully to ensure that his submission satisfies all requirements (e.g., uses the proper data types, implements the required functionality, etc.). The student should also ensure that all unit tests pass before submitting. However, as such tests cannot be completely exhaustive, the student should also inspect their own code to ensure that it is free from errors. The student may lose points for errors in their implementation, even if all unit tests pass. The student should write these programs on his own; in particular, duplicating another student s code or duplicating code off the Internet is prohibited. If the student chooses to discuss the assignment with others or to make use of Internet resources (e.g., tutorials, forums), he is strongly encouraged to focus on the problem itself instead of the actual code, so as to flee the appearance of impropriety. In particular, the student should never show or transfer his code to another student. The due dates for these assignments will be announced during the course. The due dates will be set to give the student more than adequate time to complete the assignment, including managing difficulties in using the associated tools (compilers, interpreters, etc.). Time will be set aside at the start of each class period before the due date to answer questions and address issues that arise. The student is therefore encouraged to begin working as soon as the assignment is posted and bring his questions with them to class. In particular, students who begin working on the due date or the day before have a very low likelihood of completing the assignment. Assignments will require the use of compilers, interpreters, and other programs that may not already be installed on the student s personal computer(s). Links to required software will be provided on the instructor s website. In some cases, the required software is already installed on the CS department work servers (CS1 and CS2). In such cases, the student can complete his work on these machines. PuTTY 1 and XShell 2 can be used to remotely log into the machines over SSH, and WinSCP 3 can be used to copy files between the server and a local machine. These machines run Linux; therefore, students who choose to do their work on these machines are responsible for acquiring sufficient familiarity with Linux and the command-line. Submissions must, at a minimum, compile and execute without error. Submissions (or portions of a submission, depending on the assignment) that do not compile and execute without error will receive no credit. If the student cannot complete the entire assignment, then the student should comment out the incomplete portions or provide stub subroutines to ensure that the file as a whole compiles and executes without error. The student will submit his work to the elearning section set up for this course. Assignments that are submitted 1 minute to 24 hours late (i.e., after the due date and time) will receive a single letter grade penalty. Work that is more than 24 hours late will receive no credit. 1 http://www.chiark.greenend.org.uk/~sgtatham/putty/ 2 http://www.netsarang.com/download/down_xsh.html, students should qualify for the Free for Home / School license 3 http://winscp.net/eng/index.php CS / CE 4337 Course Syllabus Page 5
Grading Policy The grading scale for this course is A+, A, B, C, D, and F. A student s grade in the course will be determined from the midterm exam score and the final exam score. F is the failing grade. Exams Exams will be open-book. The student may bring any printed material, such as books, slide printouts, handouts, and handwritten notes (in the student s own handwriting), for use during the exam. The use of all electronic equipment, including cell phones, is prohibited during the exam. Quizzes There will be a number of unannounced (i.e., pop ) quizzes given throughout the semester that will check the student s understanding of recent material. Each quiz will ask a simple question and will be graded as either correct or incorrect (i.e., no partial credit will be given). These quizzes will be given at the beginning of class. These quizzes will not be directly used in computing the final grade; instead, each correctly answered quiz will add one point (occasionally more) to the following exam grade (either the midterm or the final). Note that the timing and content of the quizzes will be independently chosen for each section. Occasionally, quizzes will take the form of very small take-home assignments. Homework Assignments Homework submissions will be graded based on how well they satisfy the requirements given in the assignment specification. The student will also receive feedback on his performance on each assignment, to better prepare them for exams and future assignments. Submissions will be graded on the same letter grade scale as the overall course. The student will receive a 10-point boost to their final score if all of the following conditions are met: The student s pre-boost final grade is not an F The student received a D or better on all assignments The student received a B or better on 75% of their submissions As noted above, submissions must, at a minimum, compile and execute without error. Submissions (or portions of a submission, depending on the assignment) that do not compile and execute without error will receive no credit. The student will submit his work to the elearning section set up for this course. Assignments that are submitted 1 minute to 24 hours late (i.e., after the due date and time) will receive a single letter grade penalty. Work that is more than 24 hours late will receive no credit. CS / CE 4337 Course Syllabus Page 6
Course & Instructor Policies Classroom Environment The use of electronic devices during the lecture is prohibited unless the student receives specific, prior permission from the instructor or the instructor announces a general exception during class. In particular, taking pictures of the whiteboard is prohibited. The student should instead bring a pencil (or pen) and paper to take notes during the course. There is no explicit attendance policy for this course. However, as noted above, pop quizzes will be given that can positively affect a student s exam grade. Additionally, most of the potential exam topics will be explicitly noted during the lecture. A student who attends the lecture should be prepared to engage with the instructor and other students. The course is intended to be a dialog among the instructor and the students, rather than just a presentation of material. Thus, the student is encouraged to voice questions or (relevant) opinions at any time (albeit in an orderly manner). The instructor may also call on students at random to encourage class participation. The student is also strongly encouraged to speak to the instructor or TA directly, either during office hours or by appointment. Questions, concerns, and complaints about the course material or organization are especially welcomed. Make-up Exams and Late Homeworks Make-up / alternative exams will be given at the discretion of the instructor and generally only for serious reasons that are beyond the student s control. In particular, the student is encouraged to remain aware of the exam schedule when making travel arrangements to avoid rebooking fees. It is the student s responsibility to notify the instructor before the exam if they will / may miss the exam for any reason, so the instructor can inform the student whether they will be given a make-up exam. Depending upon the circumstance, documentation of the reason (e.g., a doctor s note) will be requested. Such documentation should be brought to the make-up exam. The instructor reserves the right to give an oral make-up exam (i.e., discussion using a whiteboard) instead of a written one. The choice will be made depending on circumstances, but oral exams will be the default. The instructor reserves the right to waive or modify the late assignment penalty in similar circumstances. Again, it is the student s responsibility to notify the instructor before the due date if they will / may turn in a homework assignment late. Policy Changes The instructor reserves the right to change the above rules and policies at any time, but only in favor of the students. CS / CE 4337 Course Syllabus Page 7
Field Trip Policies Off-campus Instruction and Course Activities Off-campus, out-of-state, and foreign instruction and activities are subject to state law and University policies and procedures regarding travel and risk-related activities. Information regarding these rules and regulations may be found at the website address http://www.utdallas.edu/businessaffairs/travel_risk_activities.htm. Additional information is available from the office of the school dean. Below is a description of any travel and/or riskrelated activity associated with this course. No field trips are planned. Student Conduct & Discipline The University of Texas System and The University of Texas at Dallas have rules and regulations for the orderly and efficient conduct of their business. It is the responsibility of each student and each student organization to be knowledgeable about the rules and regulations which govern student conduct and activities. General information on student conduct and discipline is contained in the UTD publication, A to Z Guide, which is provided to all registered students each academic year. The University of Texas at Dallas administers student discipline within the procedures of recognized and established due process. Procedures are defined and described in the Rules and Regulations, Board of Regents, The University of Texas System, Part 1, Chapter VI, Section 3, and in Title V, Rules on Student Services and Activities of the university s Handbook of Operating Procedures. Copies of these rules and regulations are available to students in the Office of the Dean of Students, where staff members are available to assist students in interpreting the rules and regulations (SU 1.602, 972/883-6391). A student at the university neither loses the rights nor escapes the responsibilities of citizenship. He or she is expected to obey federal, state, and local laws as well as the Regents Rules, university regulations, and administrative rules. Students are subject to discipline for violating the standards of conduct whether such conduct takes place on or off campus, or whether civil or criminal penalties are also imposed for such conduct. Academic Integrity The faculty expects from its students a high level of responsibility and academic honesty. Because the value of an academic degree depends upon the absolute integrity of the work done by the student for that degree, it is imperative that a student demonstrate a high standard of individual honor in his or her scholastic work. Scholastic dishonesty includes, but is not limited to, statements, acts or omissions related to applications for enrollment or the award of a degree, and/or the submission as one s own work or material that is not one s own. As a general rule, scholastic dishonesty involves one of the following acts: cheating, plagiarism, collusion and/or falsifying academic records. Students suspected of academic dishonesty are subject to disciplinary proceedings. Plagiarism, especially from the web, from portions of papers for other classes, and from any other source is unacceptable and will be dealt with under the university s policy on plagiarism (see general catalog for details). This course will use the resources of turnitin.com, which searches the web for possible plagiarism and is over 90% effective. CS / CE 4337 Course Syllabus Page 8
Email Use The University of Texas at Dallas recognizes the value and efficiency of communication between faculty/staff and students through electronic mail. At the same time, email raises some issues concerning security and the identity of each individual in an email exchange. The university encourages all official student email correspondence be sent only to a student s U.T. Dallas email address and that faculty and staff consider email from students official only if it originates from a UTD student account. This allows the university to maintain a high degree of confidence in the identity of all individual corresponding and the security of the transmitted information. UTD furnishes each student with a free email account that is to be used in all communication with university personnel. The Department of Information Resources at U.T. Dallas provides a method for students to have their U.T. Dallas mail forwarded to other accounts. Withdrawal from Class The administration of this institution has set deadlines for withdrawal of any college-level courses. These dates and times are published in that semester's course catalog. Administration procedures must be followed. It is the student's responsibility to handle withdrawal requirements from any class. In other words, I cannot drop or withdraw any student. You must do the proper paperwork to ensure that you will not receive a final grade of "F" in a course if you choose not to attend the class once you are enrolled. Student Grievance Procedures Procedures for student grievances are found in Title V, Rules on Student Services and Activities, of the university s Handbook of Operating Procedures. In attempting to resolve any student grievance regarding grades, evaluations, or other fulfillments of academic responsibility, it is the obligation of the student first to make a serious effort to resolve the matter with the instructor, supervisor, administrator, or committee with whom the grievance originates (hereafter called the respondent ). Individual faculty members retain primary responsibility for assigning grades and evaluations. If the matter cannot be resolved at that level, the grievance must be submitted in writing to the respondent with a copy of the respondent s School Dean. If the matter is not resolved by the written response provided by the respondent, the student may submit a written appeal to the School Dean. If the grievance is not resolved by the School Dean s decision, the student may make a written appeal to the Dean of Graduate or Undergraduate Education, and the deal will appoint and convene an Academic Appeals Panel. The decision of the Academic Appeals Panel is final. The results of the academic appeals process will be distributed to all involved parties. Copies of these rules and regulations are available to students in the Office of the Dean of Students, where staff members are available to assist students in interpreting the rules and regulations. Incomplete Grade Policy As per university policy, incomplete grades will be granted only for work unavoidably missed at the semester s end and only if 70% of the course work has been completed. An incomplete grade must be resolved within eight (8) weeks from the first day of the subsequent long semester. If the required work to complete the course and to remove the incomplete grade is not submitted by the specified deadline, the incomplete grade is changed automatically to a grade of F. Disability Services CS / CE 4337 Course Syllabus Page 9
The goal of Disability Services is to provide students with disabilities educational opportunities equal to those of their non-disabled peers. Disability Services is located in room 1.610 in the Student Union. Office hours are Monday and Thursday, 8:30 a.m. to 6:30 p.m.; Tuesday and Wednesday, 8:30 a.m. to 7:30 p.m.; and Friday, 8:30 a.m. to 5:30 p.m. The contact information for the Office of Disability Services is: The University of Texas at Dallas, SU 22 PO Box 830688 Richardson, Texas 75083-0688 (972) 883-2098 (voice or TTY) Essentially, the law requires that colleges and universities make those reasonable adjustments necessary to eliminate discrimination on the basis of disability. For example, it may be necessary to remove classroom prohibitions against tape recorders or animals (in the case of dog guides) for students who are blind. Occasionally an assignment requirement may be substituted (for example, a research paper versus an oral presentation for a student who is hearing impaired). Classes enrolled students with mobility impairments may have to be rescheduled in accessible facilities. The college or university may need to provide special services such as registration, note-taking, or mobility assistance. It is the student s responsibility to notify his or her professors of the need for such an accommodation. Disability Services provides students with letters to present to faculty members to verify that the student has a disability and needs accommodations. Individuals requiring special accommodation should contact the professor after class or during office hours. Religious Holy Days The University of Texas at Dallas will excuse a student from class or other required activities for the travel to and observance of a religious holy day for a religion whose places of worship are exempt from property tax under Section 11.20, Tax Code, Texas Code Annotated. The student is encouraged to notify the instructor or activity sponsor as soon as possible regarding the absence, preferably in advance of the assignment. The student, so excused, will be allowed to take the exam or complete the assignment within a reasonable time after the absence: a period equal to the length of the absence, up to a maximum of one week. A student who notifies the instructor and completes any missed exam or assignment may not be penalized for the absence. A student who fails to complete the exam or assignment within the prescribed period may receive a failing grade for that exam or assignment. If a student or an instructor disagrees about the nature of the absence [i.e., for the purpose of observing a religious holy day] or if there is similar disagreement about whether the student has been given a reasonable time to complete any missed assignments or examinations, either the student or the instructor may request a ruling from the chief executive officer of the institution, or his or her designee. The chief executive officer or designee must take into account the legislative intent of TEC 51.911(b), and the student and instructor will abide by the decision of the chief executive officer or designee. These descriptions and timelines are subject to change at the discretion of the Professor. CS / CE 4337 Course Syllabus Page 10