Syllabus and general information for MCS-287: Organization and Theory of Programming Languages (Spring 2017)

Overview

This course will help you learn how programming languages are designed, specified, and implemented. You will learn about broad areas of commonality that underlie many superficially different languages, as well as about the critical distinctions between languages that may at first glance seem similar. Although we will spend some time working with a few example languages, the goal is not to make you a master of any of these languages, but rather to give you ways to think about computer languages in general. This skill will serve you well as you encounter future languages.

Instructor

Louis Yu <lyu@gustavus.edu>

Office: Olin 303

Phone: x7473

Homepage: http://homepages.gustavus.edu/~lyu/

Office Hours: Monday, Wednesday 3:30pm - 4:20pm; Saturday 6:00pm - 7:00pm. Visitors are welcome whenever my office door is opened, even outside scheduled office hours. If you would like to meet with me, please email me to schedule an appointment.

Weekly Schedule at: https://homepages.gac.edu/~lyu/scheduleS2016.jpg

Teaching Assistants

Your teaching assitants for this course are Matthew Lutze <mlutze@gustavus.edu> and Sam Peterson <speter12@gustavus.edu>; They will have tutoring sessions specifically for MCS-287 every week. The detail is as follows:

Location: Olin 326

Hours:

World Wide Web

All course materials will be available through my World Wide Web page. The URL for this course is https://homepages.gac.edu/~lyu/teaching/mcs287-s17/. After this syllabus I will give hardcopy handouts only to those students who ask for them.

Text and Readings

The primary text for this course is Modern Programming Languages: A Practical Introduction, 2nd Edition, by Adam Brooks Webber. Numerically specified readings in the syllabus refer to its chapters and sections.

Tests

There will be two take-home tests as shown on the syllabus and a final exam as scheduled by the registrar. If you have a conflict with a testing time, please contact me as soon as possible to make an alternative arrangement.

The final exam will be closed-book and mostly closed-notes. You may, however, use a single 8 1/2 by 11 sheet of paper with hand-written notes for reference. Both sides of the sheet are OK.

Honor

You are expected to be familiar with the college academic honesty honor code policy, and to comply with that policy. If you have any questions about it, please ask.

In doing assignments and homework, you may discuss the problems and their solutions with fellow students, but you should make an effort to solve each problem on your own. Give credit to the people and/or reading sources that help you find the solutions, be they fellow students, textbooks, journals, or internet postings. Be explicit and acknowledge clearly what sort of help you received. Failure to do so will be considered cheating.As a general rule, no hard copies of writings should be taken away and nothing should be copied down after a collaboration. If you and a classmate are discussing a problem, it is okay for you to sketch out the approach to solution on a black board or on a piece of paper. However, after the discussion, the piece of paper should be destroyed, the black board should be erased, and nothing may be copied down.

One issue that came up during this course from previous semesters is that students often expect teaching assistants or the professor to directly give them the answer to a homework problem or a lab assignment. It should go without saying that directly giving you any parts of a solution is a violation of the honor code. Please do not expect that from the teaching assistants or the professor. We will only give you hints and suggestions. If you struggle and get frutrated with a project or a mastery homework problem, we will do our best to help you, but that's just a part of the learning process; it is not something we are obligated to help you avoid completely.

Labs and Lab Assignments

For this course, you will need to complete 4 lab assignments. In each case, I will indicate what I expect of you. A project report that meets those expectations is due before the start of the class on the date specified. If you submit the report late, your grade will drop 10% per day late or fraction thereof. If you are too sick to complete a report on time, you will not be penalized. However, you need to talk to me or email me as soon as possible (and in general before the report is due), and provide the necessary doctor's note. Other circumstances will be evaluated on a case-by-case basis. In general, you should talk to me or email me (asap) around the time of the incident.

Some class days, as shown in the syllabus, we will meet in the OHS 326 computer lab rather than in the usual classroom. I will also let you know ahead of time if we need to meet in the lab. You can also work on the assignments on your laptop. One or more of those lab days will be provided for you to work on each lab assignment. However, you will generally need to spend additional time on the assignment outside of class.

Mastery Homework

The syllabus shows due dates for seven homework assignments; each will typically consist of a few problems. For each homework assignment, you are to turn in at most two drafts of the solution.

First, You must turn in a first draft of the solution to each problem in an assignment by the assignment's due date, at the start of the lecture. The TA will then grade your solutions and give you as much written comments as possible to help you with the next draft. The TA will also mark each problem as mastered (M) or not yet mastered (N). You should really take these gradings as an invitation to come talk to me or the TA during office hours. If you do not turn in a first draft by an assignment's due date, your score to the corresponding homework assignment is zero, there is no late penalty for the first draft.

If 50% of the solutions in your graded first draft are marked as "M", you will get to submit a second draft. For your second draft, you will get a chance to solve the problems you had previous recieved "N" for. You only need to submit solutions for problems you had previous recieved "N" for in the first draft, on separate sheets of papers. However, I request that you include your frst draft as a part of the submission (stabled together with your second draft).

You must submit the second draft for homework 1 and 2 by Tuesday, 3/7 (the review lecture for midterm 1), by the start of class. You must submit the second draft for homework 3, 4, 5 by Friday, 4/21 (the review lecture for midterm 2), by the start of class. You must submit the second draft for homework 6, 7 by Tuesday, 5/16 (the review lecture for the final), by the start of class. These cutoff dates are intentionally synchronized with the test review days; the point of the homeworks is to prepare you for the tests. If you do not turn in a second draft by an dates specified, your score to the corresponding homework assignment is the score of your first draft, there is no late penalty for the second draft.

You must submit all your drafts via hard copy. If you typed your solution on a computer, you must print your solution off and submit the paper version. If your draft consist of multiple pages, you must stable them together and put your name on the first page.

The homework portion of your course grade will simply be determined by the fraction of the homework problems you eventually mastered (recieved "M" for).

Attendance and Participation

Attendance, both physical and mental, is required. I reserve the right to further lower your grade if I feel you are missing or showing up late too often.

Should you miss a class for any reason, you are still responsible for the material covered in there. If there is a lab report due that day, you should be sure to submit it (electronically, via Moodle ) on time (thus, do not leave your work untill the last minute). If there is a draft for assignment due that day, you should be sure to make an arragement for a fellow classmate to submit it for you.

If you have influenza-like symptoms (temperature over 100 with headaches, sore throat, or cough), please call Health Service. If they say you should stay home, you should do so, and I require that you email me.

This course relies heavily on participations. Students are expected to actively participate in classroom discussions. You may use your laptop in class. However, the use of the computer is restricted to activities deemed appropriate by the instructor. Playing games, watching YouTube, reading e-mail, checking Facebook, and working on assignments for other courses are a few examples of inappropriate activities that can be distracting to the instructor and other students in the course. Any repeat instances from an individual of such will result in further grade deduction.

Finally, one thing I have found during my past 4 years of teaching at Gustavus is that a student's grade is directly related to how deligent he/she is. That is, if a student attends classes regularly, puts efforts into homework and projects, pays attention during classes (as opposed to doing other activities), participates in discussions, and goes to my office hours whenever he/she needs help, it is guranteed that he/she will recieve a good grade. It seems like an obvious concept, but I am constantly surprised by how some students do not seem to connect efforts with results, and that some still insist on taking short cuts. For a course with so many small components spreading throughout the semester, being deligent is an especially important trait for a student to have.

For this reason, I am introducing the attendance and participation grade sheet. It is available on Moodle. On the gradesheet, I have listed all the attributes I expect a student in MCS-287 to have in order to do well in this course. Some of these attributes, such as stabling all the pages of your submission together before handing it in, might seem unlreated; but every attribute listed illustrates the diligence I wish students to have.

I have organized the attendance and participation grade sheet into positive attributes and negative attributes. During the semester, for every instance of a positive attribute I or the TA observe, I will make a note of it and you will recieve a "+1"; for every instance of a negative attribute I or the TA observe, you will recieve a "-1". At the end of the semester, for every "-1" you have, I will take off 1% of your final grade. In total this is worth 6% of your final grade. Please note that the "+1s" and the "-1s" can cancel each other out. And, it is posible to recieve more "+1s" than "-1s". In that case, any surplus will be the bonus point you recieve for the semester (and will count towards your final grade). The bonus points for your final grade can not exceed 3%.

More imporantly, I've made this list just so that I can be completely clear about what I expect in my classroom, and that you have a list to remind yourself. At the end of the semester, I will have a one-on-one meeting with you to discuss if you had met all the requirements. I hope that the discussion will help you with work and study in the future.

Grading

The course components will contribute to your grade in the following proportion:

Please see me if you have any question how you stand. Class participation is not graded; however, it allows you to find and repair the gaps in your understanding before doing the assignments and thus can dramatically improve your grade. You are responsible for all course material, whether or not you are present when it was covered or distributed.

Style guidelines

All assignments should be readily readable and should not presuppose that I already know what you are trying to say. Use full English sentences where appropriate (namely almost everywhere) and clear diagrams, programs, etc. Remember that your goal is to communicate clearly and that the appearance of these technical items plays a role in this communication process. For anything you submit in hardcopy form, make sure pages are stapled together and your name is on them.

Grade changes

Please point out any arithmetic or clerical error I make in grading, and I will gladly fix it. You may also request reconsideration if I have been especially unjust.

Disability Services

Gustavus Adolphus College is committed to ensuring the full participation of all students in its programs. If you have a documented disability (or you think you may have a disability of any nature) and, as a result, need reasonable academic accommodation to participate in class, take tests or benefit from the College's services, then you should speak with the Disability Services staff, for a confidential discussion of your needs and appropriate plans. Course requirements cannot be waived, but reasonable accommodations may be provided based on disability documentation and course outcomes. Accommodations cannot be made retroactively; therefore, to maximize your academic success at Gustavus, please contact Disability Services as early as possible. Disability Services (www.gustavus.edu/advising/disability/) is located in the Academic Support Center. Disability Services Coordinator, Kelly Karstad, (kkarstad@gustavus.edu or x7138), can provide further information.

Help for Students Whose First Language is not English

Support for English learners and multilingual students is available through the Academic Support Center's Multilingual Learner Academic Specialist, Sarah Santos (ssantos@gustavus.edu or x7197). The MLAS can meet individually with students for tutoring in writing, consulting about academic tasks, and helping students connect with the College's support systems. When requested, the MLAS can consult with faculty regarding effective classroom strategies for English learners and multilingual students. The MLAS can provide students with a letter to a professor that explains and supports appropriate academic arrangements (e.g., additional time on tests, additional revisions for papers). Professors make decisions based on those recommendations at their own discretion. In addition, English learners and multilingual students can seek help from peer tutors in the Writing Center ( www.gustavus.edu/writingcenter/).

Syllabus

This is my best guess as to the rate at which we will cover material. However, don't be shocked if I have to post one or more revised syllabi. When I do so, I will make an announcement in class.

DateReadingTopicDue
2/61.1-2.5Overview and grammars
2/72.6-2.8More on grammars
2/93Syntax meets semantics
2/104Language systems

2/135A first look at MLHW 1
2/14A first look at ML, continued
2/16Lab 1Lab 1: ML Programming
2/176Types

2/207A second look at ML
2/218Polymorphism
2/23Lab 1 continues
2/249A third look at ML

2/2710Scope
2/2811A fourth look at MLHW 2
3/2Lab 1 continues
3/3Lab 1 concludes

3/612.1-12.6Activation recordsLab 1
3/7Review/catch-up (take-home midterm 1 out)
3/912.7-12.9Closuresmidterm 1
3/1013A first look at Java

3/1314.1-14.4Memory managementHW 3
3/1415A second look at Java
3/16Lab 2Interpreter lab preview
3/17Lab 2: An Interpreter

3/20Bracha 1, 2, 3Java generics
3/21Lab 2 continuesHW 4
3/23Bracha 4, 5, 6More Java generics
3/24Lab 2 continues

4/3Lab 2 concludes
4/4Lab 3Generics lab previewLab 2
4/6Lab 3: Java Generics
4/7Lab 3 continues

4/1016Barbara Liskov video
4/1116Object orientation
4/1317A third look at Java

4/18Lab 3 continuesHW 5
4/20Lab 3 concludes
4/2118Review/catch-up (take-home exam 2 out)Lab 3

4/2418Parametersmidterm 2
4/2519.1-19.7A first look at Prolog
4/2719.8-19.11More prolog
4/2820.1-20.4Prolog implementationHW 6

5/1Lab 4Lab 4: Parsing and Analysis in Prolog
5/2Lab 4 continues
5/420.5-20.7More about Prolog
5/5Lab 4 continues

5/820Catch up
5/921Cost models
5/11Lab 4 continuesHW 7
5/12Lab 4 continues

5/15Lab 4 concludes
5/16Review/catch-up/EvaluationsLab 4


Course web site: https://homepages.gac.edu/~lyu/teaching/mcs287-s17/index.html
Instructor: Louis Yu <lyu@gustavus.edu>