Syllabus for CSE 3341

by Mike Bond


This course is for undergradute students (as 3341, a 3-hour course) and graduate students (as 5341, a 2-hour course).


Formal languages and grammars; recursive descent parsing; data types, expressions, control structures, parameter passing; compilers and interpreters; memory management; functional programming principles; concurrency and parallelism

General Policies

We should all be respectful of everyone else's questions, comments, and opinions.

To avoid distracting yourself, your fellow students, and me, please do the following:

You are welcome to bring beverages such as water, coffee, and sodas to class. Food is okay if it's not messy or distracting. However, please do not consume any peanut products in class (at least one student has a severe peanut allergy).

Getting Help and Asking Questions

The best ways to ask questions and get help are to (1) post to the Piazza discussion board or (2) visit office hours.

Whenever possible, please post a public question rather than posting a private question or sending e-mail, since many people may be interested in the same question or issue. Also, a public post may get answered quickly by other students—who may provide better and different ways of explaining concepts. If you post a private question that I think could be public, I'll usually ask you to post it publicly. Note that Piazza allows you to ask questions that are anonymous to other students.

When attending office hours, please make sure I know you're there by knocking or saying hi, even if I'm meeting with someone else.

If you'd like to meet but can't attend office hours, please make a private post Piazza post, and include your availability (days and times) for at least three upcoming weekdays. Please avoid visiting outside of office hours without an appointment, since I'm likely to be unavailable (e.g., in a meeting or working on something where it would be hard to switch focus to give you my full attention).


There will be approximately four homeworks and two programming projects. Homeworks are due in class, or under my office door (e.g., for late assignments or if you need to miss class). Programming projects are due via the submit program on stdlinux.

To help preserve the grader's eyes and sanity, :) please make homeworks readable and understandable, and staple multiple sheets together. Typing your solutions is greatly appreciated. If the grader has trouble reading your work or understanding what you've done, your answers will get partial or no credit, even if it can finally be determined that they're correct. Your homework solutions must be precise and detailed, in order to convince the grader that you've understood all the details.

You may discuss homeworks and projects at a high level, but you must do the actual work alone. Assignments that show excessive similarities will be forwarded to the Committee on Academic Misconduct. See Academic Integrity below for more information.


There will be two or three non-comprehensive exams. The last exam will probably be during the final exam slot assigned by OSU, and the other exam(s) will be in class. The exams will be in class.

You're allowed to bring a one-page cheat sheet (8.5x11", double-sided) to each exam.


Grading will be on a curve, with the average grade earning a B. Since the course is curved, the grader and I will deduct points liberally. Our primary goal is to be fair and consistent when assigning scores.

Grade disputes are handled by whoever did the grading. (The grader grades the homeworks and projects, and I grade the exams.) We're happy to explain how we graded and to correct any mistakes we've made. However, to be fair to everyone, we generally won't adjust partial credit unless we made a mistake or misunderstood a solution. Please keep that in mind before arguing about partial credit with us.

You may request a regrade for up to one week after an assignment or exam is handed back. For fairness, regrade requests for exams should be in writing, so the instructor can consider the request in private with as much impartially as possible.

Late and Missed Assignments and Exams

A late homework loses 33% of max points for each day late (or fraction thereof) for up to two days late. A late project loses 1% of max points for each hour late (or fraction thereof) for up to 99 hours late.

For fairness, late homeworks and missed exams will not be excused, except in the most extreme circumstances. Let me know as early as possible.

Disabilities and Religious Obligations

Please contact me as early as possible so I can help make reasonable accommodations.

Academic Integrity

Representing someone else's work as your own is a seriously violation of academic integrity.

You may discuss homeworks and projects with other people at a very high level, but you must actually do each assignment by yourself.

Although you should avoid receiving significant, specific help from any source, if you do receive such help, you must explicitly acknowledge the source and nature of the help (i.e., add a written note on the assignment). If the help seems unreasonable, you might lose some or all points, but there won't be any academic integrity consequences, since you acknowledged the help you received.

I am obligated by University Rules to report any suspected violation to the Committee on Academic Misconduct (COAM). COAM decides whether a violation has occurred and, if so, what the penalty will be, which can include a failing grade and suspension or dismissal from the University.

Suggestions and Rules for maintaining academic integrity