Programming Language Design and Implementation
Venue : AC03 LR 004 (Online for the first half of the semester)
Time : Tuesday, Thursday, 11:50 am - 1:20 pm
Instructor : Manu Awasthi, (email@example.com)
Deepraj Pandey, firstname.lastname@example.org
Shivam Agarwal, email@example.com
Office Hours :
Instructor : 30 mins after class
Deepraj, Shivam: Notified over Google Classroom
Contacting Course staff
The recommended method for contacting course staff is use the email list firstname.lastname@example.org. We will be filtering emails regarding the course based on this email alias. Individual emails to course staff will not be answered.
Concepts of Programming Languages, Robert W. Sebesta, 10th Edition. (Sebesta)
Programming Languages : Concepts and Constructs, Ravi Sethi, 2nd Edition. (Sethi)
Compilers : Principles, Techniques and Tool, Aho, Lam, Sethi, Ullman, 2nd Edition. (Dragon)
More readings to be added as semester progresses. These will be reflected on the course's Google Classroom page.
Online Learning Management System
We will be using Google Classroom as the Learning Management system for this course. You will automatically be added to the Google Classroom for this course via Ashoka LMS. All the course material, including lecture video recordings will be made available through the Google Classroom. In addition, we will be accepting student submissions only through Google Classroom links. No email based submissions will be considered.
We will be using Google Meet for online lectures.
The following is a tentative guideline for the grading policy and may undergo a change, depending on how the semester progresses.
Midterm Exam - 20%
Final exam - 25%
Assignments : 30%
There will be approximately 6 assignments will be handed out in all over the semester. Some assignments might involve programming.
There will be continuous evaluation throughout the semester in form of weekly quizzes. Each quiz will have an instructor assigned weightage. It is not necessary that all quizzes will have the same weightage.
Homework assignments may include programming based assignments. All assignments will be individual assignments, unless noted otherwise.
Cheating and Plagiarism
Most assignments will be individual centric. This means that you are allowed to discuss the problems with your classmates. However, any work that you submit (code or written assignments) should be your own, and should be done in an individual setting. The overleaf template for the assignments has a field for collaborators. You should use that to list your classmates whom you discussed the assignment problems with. If you have any, however small, questions about what counts as plagiarism (and what doesn't) contact the course staff. "But I didn't know <insert-the-thing-you-did> was also counted as plagiarism" is not an excuse that will be tolerated. We know you're juggling multiple activities and the assignment deadline may not always be favorable. So please start working on your assignments as soon as they are handed out.
We also have zero tolerance for cheating, even in the assignments. If your class rank in the assignments is significantly different from your class rank in the exams, only your rank in the exams will count towards your grade. In addition, we will pass all code submissions through MOSS. Any evidence of academic dishonesty will result in a fail grade.
NOTE: Any evidence of academic integrity violations / plagiarism will result in an F grade for the entire course, no exceptions. In addition, you will be reported to the OAA for academic integrity violation.
You are expected to submit the assignments before the assigned deadline. We will enforce the following policies
Late submissions are possible. An assignment is counted as late, as soon as the clock for the assignment submission rolls over.
For every extra day that you take to submit, the assignment will lose 25% of its value. Once the assignment loses 100% of its value, it will not be graded.
Any emails for asking extensions will automatically result in reduction of 5% of maximum possible marks for the assignment. The request will also be denied, except for genuine, medical emergencies.
There is no mandatory attendance. However, you are expected to attend all the lectures. There will be material covered in class that is not present in textbooks. Additionally, there is a 25% weightage for quizzes, which might be based on material covered in the class. Historically, students who have done well in the class are the ones who have attended the lectures regularly, and kept themselves engaged with the content throughout the semester.
Class Based Communication
All communication for the class will be sent out through Google Classroom page. It is your responsibility to sign up for the class, and keep tabs on communications / notifications. If you want to communicate with course staff, please see the section at top.
If we happen to meet as a regular in person class in the second half of the semester, we will follow Prof. Shriram Krishnamurthi's policy. TLDR; screens are a strict no-no unless explicitly permitted. If you are caught making use of electronic devices in class, you'll be asked to leave.
All assignments will have to be submitted electronically through Google Classroom for this course. Please signup for the course only once using your Ashoka email address.
All assignments have to be properly formatted in the prescribed pdf format. We will be using the LaTeX typesetting tool to write the assignments. This exercise has two main benefits. First, you get to learn and practice LaTeX, which is a very powerful typesetting tool, and an essential skill for any CS major. Second, it makes grading much easier for the instructor and TAs. Remember, we cannot grade what we cannot read. The pdfs can be generated using the online Overleaf tool. The assignment submission template is located here.
The instructor gratefully acknowledges instruction material (slides, figures, animations etc.) that have been created by a number of instructors for similar courses around the world, including but not limited to Harry H. Porter III, Shriram Krishnamurthi, Bivas Mitra, Erin Moriarty Wolf Chambers, Kevin Angstadt, Na Meng, Sudheendra Hangal and Satish Chandra.