CSE 3341

Principles of Programming Languages

Diego S. Zaccai

Course Description

This course discusses various programming language concepts, as well as design and implementation topics for several language families. Topics include formal languages and grammars; recursive descent parsing; data types, expressions, control structures, and parameter passing; compilers and interpreters; memory management; functional programming principles.

Course Information

Instructor: Diego Zaccai.
Office Hours: available here.

Text(required): "Programming Language Pragmatics," 4th edition, by Michael L. Scott.
Additional references/readings may be posted on Carmen under Content during the semester.

Syllabus: Can be downloaded here.

Prerequisite: CSE 2231, CSE 2331 (680), CSE 2421, and CSE 3901 (560), CSE 3902, or CSE 3903. Not open to students with credit for CSE 5341 (655).

More information about the course will be posted on Carmen.

Grading Scheme

Programming Assignments 30%
Midterm 115%
Midterm 215%


Exams are closed notes, closed book. The date/time of the final exam is determined by the OSU Registrar. Final exams may not be taken early. The exam questions will typically require creative application of the general approaches discussed in class. Memorizing things will not be enough; you need to have conceptual understanding of the techniques we have covered, and how these techniques could be applied to small problems. Exam questions will be very similar to the questions from the homework; thus, you should make sure that you have very solid understanding of all details in the homework solutions.
Midterm 1: Friday, February 7
Midterm 2: Friday, March 20
Final: Tuesday, April 28, 4:00 - 5:45 p.m.


Unless stated otherwise, homework assignments are due at the start of class. After class starts the assignment is considered late. The homework assignment can then be handed in any time until the start of the next class for a 50% penalty of the point value of the assignment. No assignments will be accepted after that time. Note: Late homework assignments will be returned with the following homework assignment. Assignments are required to be done individually. Make the assignments readable and understandable. They should be handed in on regular paper, legibly written or typed. If you have more than one sheet, staple the sheets together. If the grader has trouble reading or understanding what you have done, points will be deducted even if it can finally be determined that you have the correct answer. Your solutions have to be precise and detailed: you have to work out all details that are necessary to solve the problem using the approaches discussed in class. You also have to write your solutions in a way that convinces the grader that you understand all these details. Be careful, precise, and thorough.

Programming Assignments

There will be two programming projects, which have to be submitted electronically on Carmen by midnight on the due date. The projects must compile and run on stdlinux. The project should be done independently from other students in the class. General discussion of the project with others in the class is allowed, but you have to do all the design, programming, testing, and debugging independently. The projects are due by 11:59 pm on the due day. Absolutely no exceptions will be made to this deadline: if you submit at 12:00 am, your submission will be considered to be late. The time stamp on the electronic submission will be used to determine the submission time. A reduction of 10\% per day will be applied to late submissions. Submissions more than three days late will not be accepted.

General Information

Information regarding the course will be posted on Carmen. CSE 3341 is not an online course. You are expected to attend class regularly. I will try my best to make class worth your time and I expect you to help me by participating. Even so, no one is perfect and I might fall short of this goal some times, I expect you to let me know when I fail to make class worth your time.
In the event that you must miss a class, you are responsible for finding out what assignments were made, what due dates were announced, and what material was covered. Students are also expected to sign the attendance sheet, failure to do so will result on the student being recorded as absent in the class.
Piazza, will be used to post announcements and as a student discussion platform for the course. Some examples of acceptable topics to discuss include: general information, concepts as related to assignments, interpretation of assignments, problems with coding such as syntax and execution errors, etc. Please do not post answers or partial answers to homework problems. Do not post any code from programming assignments. Piazza will be monitored by the course grader and the instructor. Students are responsible for any announcements/info provided on Piazza.

Academic Misconduct

Students are required to follow the Ohio State Code of Student Conduct which can be found at studentaffairs.osu.edu/pdfs/csc_12-31-07.pdf. Among the other restrictions, pay specific attention to the section on Academic Misconduct. Among the restrictions, students are prohibited from:

Note: Faculty is required by the University to report any suspected violation of these conditions to the Council on Academic Misconduct. Misconduct cases are resolved via the CoAMs hearing processes. More about this process can be found at: http://oaa.osu.edu/coam.html.


You have one week (7 calendar days) to ask about any grade concerns you have on an assignment or exam, from the day the papers were handed back in class whether or not you were there to get your copy. If you are not in class on the day that an assignment or exam is handed back, it is your responsibility to contact me and get your graded work. If the graded work is on Carmen, then you have one week (7 calendar days) from the time grades are released on Carmen.

If you have any concerns or questions related to a grade, you must contact the grader or instructor within that one week time frame. The one week clock starts ticking at the end of the class period during which the papers are handed back whether you are present to receive your individual copy or not. In order to document that you have contacted the teaching staff within the time allowed, you should email the grader for homework or lab assignments, or the instructor for exams, and keep a copy of the message. After that week deadline, although you may still ask questions (at any time), a grade change will not be made even if one would normally be available. The idea is to be concerned about your grade, and to communicate any concerns you have to the grader and/or lecturer, in a timely manner.