Course Number: CSE 340 (82243)
Instructor: Prof. Adam Doupé
Office: BYENG 472
Office Hours: Monday 3pm–4pm (except 11/9: 5pm–6pm), Wednesday 12pm–1pm, Friday 10am–11am (No office hours 9/25, 10/14, 10/16, or 11/13), and by appointment
Meeting Times: Monday and Wednesday, 1:30pm–2:45pm (PSF 166)
Course Mailing List: firstname.lastname@example.org
Course Lead TA: Mohsen Zohrevandi
Office: BYENG 435 AA
Office Hours: Tuesday 3pm–5p, Thursday 11am–1pm (except Thursday 9/24 will be 3–5pm), and by appointment
Course TA: Sai Chandramouli
Office: BYENG 423
Office Hours: Monday 12pm–1pm, Wednesday 3pm–4pm, Friday 2pm–3pm, and by appointment
The TA’s and I have arranged the office hours so that the office hours are distributed throughout the week. Each day there are two hours of office hours, so please take advantage of this opportunity. However, please make the best use of our time and your time, so we expect you to come prepared.
If you have questions about the course material, we expect that you have read the relevant sections from the book or reviewed the relevant lecture materials.
If you have questions about the homework problems, we expect that you have made a serious effort to solve the problem (and we will ask you what you have tried/attempted).
If you have questions about the programming project, we expect that you have made a serious effort to solve the problem on your own. If the answer to your question can be found by googling the error message, that is not enough effort. There is a great essay from Eric Raymond on “How to Ask Questions the Smart Way”.
All announcements and communications for the class will take place
through the class mailing list. Students are required to subscribe to
the class mailing list:
Studenty may use the class mailing list to ask questions or clarifications, and the TAs, Instructor, or other students can answer. Note that following the advice in “How to Ask Questions the Smart Way” will increase the chances of getting your questions answered. While I highly encourage students to help each other on the mailing list, please do not go overboard and send your fellow student code (this will be considered cheating). It is better to point out their mistake or direct them to a resource that can help solve their problem, rather than giving them the answer. Note that sharing solutions or answers is expressly prohibited and will result in academic sanctions.
Also, please if at all possible use the mailing list for communication to me or the TAs (unless the communication is private). This way, the entire class will benefit from your question. Note that if we deem it necessary and helpful, we will CC the class mailing list when replying to direct emails.
CSE 230 and CSE 310.
Important Dates and Tentative Lecture Topics
|Introduction + Lexical Analysis||Lexical/Syntax Analysis|
|Syntax Analysis||Syntax Analysis|
|Project 1 Due|
|Labor Day No Class||Syntax Analysis|
|Homework 1 Due|
|Project 2 Due|
|Basic Semantics||Basic Semantics|
|Basic Semantics||Basic Semantics|
|Homework 2 Due|
|Exam Review||Midterm Exam 1|
|Type Systems||Type Systems|
|Project 3 Due|
|Fall Break No Class||Type Systems|
|Expressions and Statements||Expressions and Statements|
|Homework 3 Due|
|Abstract Data Types and Modules||Abstract Data Types and Modules|
|Project 4 Due|
|Procedures and Runtime Environment||Procedures and Runtime Environment|
|Procedures and Runtime Environment||Veteran’s Day No Class|
|Exam Review||Midterm Exam 2|
|Homework 4 Due|
|Lambda Calculus||Lambda Calculus|
|Lambda Calculus||Lambda Calculus / Final Review|
|Project 5 Due|
|Homework 5 Due|
|Final Exam 12:10pm–2pm|
Exam dates are fixed and will not change. If an exam date conflicts with a religious holiday (in accordance with ACD 304-04) or other university sanctioned activities (in accordance with ACD 304-02) you should let me know at least 2 weeks before the exam date to schedule a makeup exam. Absence for an exam due to medical reasons should be properly documented by a physician.
This is a demanding class that requires consistent effort on your part.
You will write thousands of lines of code in this class, and you will have to read and understand our code. This is different from most of what you have been exposed to so far.
You will understand non-trivial abstract concepts, new programming paradigms, and complex implementation issues. This requires consistent effort on your part.
Students will be evaluated on their performance on homework, midterm exams, programming projects, and final exam.
There will be five written homework assignments, which will reinforce the concepts covered in class.
There will be two midterm exams. The exams will cover the material discussed from the lectures and the homework. No notes or outside material/devices will be allowed.
There will be 5 programming projects. These projects will involve applying and implementing the concepts discussed in class. All projects are to be done individually.
There will be one final exam. This exam will be comprehensive and cover all material in the class.
Grading weight for Programming Projects will be given as the higher of:
- Projects 1–5 equal weight (7% each)
- Projects 1 and 2 worth 8.75% total (4.375% each), and projects 3, 4, and 5 worth 26.25% (8.75% each)
The preliminary thresholds for assigning a letter grade are the following:
I reserve the right to curve the grades (by lowering the thresholds), depending on the circumstances.
Homework Due Dates
Homework must be submitted online by 11:59:59pm MST on the date that they are due. No late homework will be accepted.
Project Due Dates
For each day a project is late, a 30% deduction will be assessed. The number of days is rounded up to the nearest integer. Thus, if a project is due at 11:59:59pm, a submission at 12:00:00am is late and will receive a 30% deduction.
If you have a documented medical emergency of a duration that can affect your ability to finish a project, I will consider giving an extension. Note that there are usually several weeks for each project (other than the first two), so not feeling well for a day or two is not sufficient duration that affects your ability to finish a project.
Recorded Class Lectures
I will attempt to record the audio of the class lectures and post them online on the class website. However, this is not guaranteed, and you are responsible for all material covered in the class.1
Put your cell phone on silent/vibrate mode while in class.
Students requesting disability accommodations should register with the Disability Resource Center (DRC) and present the instructor with appropriate documentation from the DRC.
Plagiarism or any form of cheating in homework, projects, or exams is subject to serious academic penalty. To understand your responsibilities as a student read: ASU Student Code of Conduct and ASU Student Academic Integrity Policy.
There is a zero tolerance policy in this class: any violation of the academic integrity policy will result in a zero on the assignment and a lowered letter grade in the course, and the violation will be reported to the Dean’s office.
Examples of academic integrity violations include (but are not limited to):
Sharing code with a fellow student (even if it’s only a few lines).
Collaborating on code with a fellow student.
Submitting another students code as your own.
Submitting a prior student’s code as your own.
Posting your projects online is expressly forbidden, and will be considered a violation of the academic integrity policy. If you want to impress employers with your coding abilities, create an open-source project that is done outside of class.
Information in the syllabus may be subject to change with reasonable advance notice.
This syllabus content was adapted from Prof. Rida Bazzi, and is used with permission.
© Copyright 2015 Adam Doupé as to this syllabus, all lectures, and course-related written materials. During this course students are prohibited from making audio, video, digital, or other recordings during class, or selling notes to or being paid for taking notes by any person or commercial firm without the express written permission of the faculty member teaching this course.↩