Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
courses:cs331-201701:top [2018/05/03 09:14]
sellis [Table]
courses:cs331-201701:top [2018/09/10 17:41] (current)
sellis
Line 1: Line 1:
-====== CMPU 331: Compiler Design ​(Spring ​2018) =======+====== CMPU-331 Compilers ​(Fall 2018) =======
  
-This is the syllabus page for the //Compiler Design// class. It will evolve over the course of the semester, so check back regularly. **You are responsible for keeping up-to-date with any changes here.**+~~NOTOC~~ 
 +~~NOCACHE~~ 
 +===== Overview =====
  
-An online discussion group will be set up in due course.+<​html>​ 
 +<​center><​h3></​html>​ 
 +"If you don't know how a compiler works, you don't know how a computer works."​ 
 +<​html><​br></​h3><​h4></​html>​ 
 +//--- Steve Yegge// 
 +<​html></​h4>​ 
 +</​center><​br></​html>​ 
 + 
 +Compilers are used throughout the world of computers and computing. But what **is** a compiler? What functions and purposes do they serve? How do they operate? What problems do they solve? How might one be designed? 
 + 
 +This capstone ​course ​examines these questions and others to develop a deeper understanding of computers, their operation and their programming,​ using a combination of lectures, in-class discussions,​ homework exercises and an incremental semester-long project. 
 + 
 + 
 +===== Course Information =====
  
 ==== Personnel ==== ==== Personnel ====
Line 9: Line 24:
 === Faculty === === Faculty ===
  
-  * Professor Simon Ellis. [[http://​www.cs.vassar.edu/​~sellis|Website.]] +  * Professor Simon Ellis. [[http://​www.cs.vassar.edu/​~sellis|Website.]] [[sellis@vassar.edu|Email.]] 
-  * Office hours: Tuesday, ​12.30 - 2.30 p.m.; Thursday, 12.30 - 2 p.m..+  * Office hours: Tuesday, ​4.30--5.30 p.m. //or by appointment//​.
   * Location: Sanders Classroom 220.   * Location: Sanders Classroom 220.
  
 === Coach === === Coach ===
  
-  * Mr George Whiteside+  * Mr Parker Zimmerman
-  * Office ​hours: Tuesday, ​- 10 p.m.; Sunday, ​p.m.. +  * Coaching ​hours: Tuesday ​& Thursday8--10 p.m.; Sunday, ​5--7 p.m.. 
-  * Location: Asprey Lab..+  * Location: Asprey Lab. (Sanders Physics 307).
  
-==== Textbook ​====+==== Coordinates ​====
  
-AhoAlfred V., Lam, Monica S., Sethi, Ravi & Ullman, Jeffrey D., //CompilersPrinciples, Techniques, and Tools (2nd edition).// +^            ^                                        ^ 
 +|      Time: | Tuesday & Thursday3.10 -- 4.25 p.m.  | 
 +|  Location| Sanders Classroom 212                | 
 +==== Course Literature ====
  
-==== Course Requirements ====+=== Textbook ​===
  
-  - Weekly readings. ​ +<​html><​h5></​html>​ 
-  ​- Written examination. (40%) +  ​* Aho, Alfred V., Lam, Monica S., Sethi, Ravi & Ullman, Jeffrey D., //​Compilers:​ Principles, Techniques, and Tools (2nd edition).// <​html><​br/></​html>​Boston,​ MA: Addison-Wesley, 2006. 
-  ​A significant programming project(60%)+<​html></​h5></​html>​
  
-=== Examination ===+This textbook (generally referred to as 'the "​Dragon Book"'​) is widely accepted as an industry standard in the field of compilers and compiler design. **It is required for all students in this class.** It provides substantial background material which there is not time to cover during lectures, and a solid understanding of the book will be highly beneficial in the exam.
  
-The examination will be a **48-hour take-home exam** and will be available on **Tuesday, 1st May.**+=== Recommended Readings ===
  
-You must collect a copy of the exam from Mrs Colabella in the CS Department Office. The time you take the exam will be notedYou must return it by that time on Thursday3rd May. **Exams returned late will not be accepted except in the case of extenuating circumstances.**+[[https://​steve-yegge.blogspot.com/​2007/​06/​rich-programmer-food.html|Rich Programmer Food]] This is the website ​from which the quotation at the top of the page is takenIt is an excellent readand outlines succinctly and clearly why studying compiler design and compilation is so important. 
 +==== Prerequisites ====
  
 +=== Required ===
  
-=== Project ===+Before joining this course, students **must have successfully completed**:​
  
-The project consists of implementing a compiler front-end, in four partslexical analysis routines, a parser, symbol table management routines, and semantic routinesEach piece must be integrated with what has been completed previously.+  * [[https://​catalog.vassar.edu/​content.php?​catoid=25&​navoid=4917#​tt5370|CMPU-224 Computer Organisation]]. 
 +  * [[https://catalog.vassar.edu/​content.php?​catoid=25&​navoid=4917#​tt210|CMPU-240 Language Theory and Computation]].
  
-The project should be implemented in either Java or Python. +=== Recommended ===
-  * If you use Java, I recommend the IntelliJ IDE, or NetBeans as an alternative. +
-  * If you use Python, I recommend the PyCharm IDE.+
  
-All of the IDEs named above are available on the CS department Linux systems. Downloads are available [[courses:cs331-201701:​downloads|here]]. +It is strongly recommended that students have completed **at least one** of following ​courses ​before taking this course:
-==== Class Schedule ====+
  
-**This schedule is provisional and subject to changeYou are responsible for keeping yourself apprised of the current status of this schedule.**+  ​[[https://​catalog.vassar.edu/​preview_course_nopop.php?​catoid=25&​coid=156810|CMPU-235 Programming Languages]]. 
 +  ​[[https://​catalog.vassar.edu/​preview_course_nopop.php?​catoid=25&​coid=156825|CMPU-245 Declarative Programming Models]].
  
-It is expected that you will have completed the appropriate readings before the corresponding class(es). You are responsible for keeping up with the readings and for ensuring that you have adequate notes of material covered in class, ​//some of which may not be in the textbook//: this includes lectures, assignments,​ hand-outs, additional reading, and so forth.+<​html><​p><​/html> 
 +[[https://catalog.vassar.edu/preview_course_nopop.php?​catoid=25&​coid=156824|CMPU-241 Analysis of Algorithms]] is also very useful.
  
-If you miss a class, it is your responsibility to make arrangements with classmates to acquire information presented. 
  
-=== Topics and Readings ​===+===== Coursework & Grades =====
  
-^  Week              ^  Beginning ​     ^ Topic                                                                                        ^ Reading ​                        ​^ ​ Slides ​                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ^ +This course has assignments which are both assessed ​and unassessedAlthough some assignments are unassessedthey are intended to support your learning ​and understanding of the material in the course
-|  0                 ​| ​ 22nd January ​  | Introduction ​                                                                                | Ch. 1, 2.1-2.5. ​                | [[https://​www.cs.vassar.edu/​~cs331/​lectures/​01_Introduction.pdf|Full]] ​ [[https://​www.cs.vassar.edu/​~cs331/​lectures/​01_Introduction_sm.pdf|Handout]] ​                                                                                                                                                                                                                                                                                                                                                                          | +
-|  1                 ​| ​ 29th January ​  | Lexical analysis. ​                                                                           | Ch. 2.6, 3.1-3.5, 3.8.          | [[https://​www.cs.vassar.edu/​~cs331/​lectures/​02_Lexical_Analysis.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​02_Lexical_Analysis_sm.pdf|Handout]] ​                                                                                                                                                                                                                                                                                                                                                                   | +
-|  2                 ​| ​ 5th February ​  | Languages, syntax ​and parsing                                                              | Ch. 4.1-4.3. ​                   | [[https://​www.cs.vassar.edu/​~cs331/​lectures/​03_Syntactic_Analysis.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​03_Syntactic_Analysis_sm.pdf|Handout]] ​                                                                                                                                                                                                                                                                                                                                                               | +
-|  3                 ​| ​ 12th February ​ | Top-down parsing. ​                                                                           | Ch. 4.4.                        | [[https://​www.cs.vassar.edu/​~cs331/​lectures/​04_Top-Down_Parsing.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​04_Top-Down_Parsing_sm.pdf|Handout]] ​                                                                                                                                                                                                                                                                                                                                                                   | +
-|  4                 ​| ​ 19th February ​ | Bottom-up parsing.\\ More powerful bottom-up parsing. ​                                       | Ch. 4.5-4.6.\\ Ch. 4.7.         | [[https://​www.cs.vassar.edu/​~cs331/​lectures/​05_Bottom-Up_Parsing.pdf|Full]]\\ [[https://​www.cs.vassar.edu/​~cs331/​lectures/​05_Bottom-Up_Parsing_sm.pdf|Handout]] ​                                                                                                                                                                                                                                                                                                                                                               | +
-|  5                 ​| ​ 26th February ​ | Symbol tables. ​                                                                              | Ch. 2.77.1-7.3. ​              | [[https://​www.cs.vassar.edu/​~cs331/​lectures/​06_Symbol_Tables.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​06_Symbol_Tables.pdf_sm|Handout]] ​                                                                                                                                                                                                                                                                                                                                                                         | +
-|  6                 ​| ​ 5th March      |                                                                                              |                                 ​| ​                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | +
-|  **Spring Break** ​                                                                                                                                                 ||||                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | +
-|  7                 ​| ​ 26th March     | Syntax-directed translation. ​                                                                | Ch. 5.                          | [[https://​www.cs.vassar.edu/​~cs331/​lectures/​07_Syntax-Directed_Translation.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​07_Syntax-Directed_Translation_sm.pdf|Handout]] ​                                                                                                                                                                                                                                                                                                                                             | +
-|  8                 ​| ​ 2nd April      | Intermediate code generation. ​                                                               | Ch. 2.8, 6.1-6.3. ​              | [[https://​www.cs.vassar.edu/​~cs331/​lectures/​08_Intermediate_Code_Generation.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​08_Intermediate_Code_Generation_sm.pdf|Handout]] ​                                                                                                                                                                                                                                                                                                                                           | +
-|  9                 ​| ​ 9th April      | Runtime environments.\\ The Vassar Interpreter\\ Arithmetic expressions. ​                    | Ch. 6.4-6.5, 7.1-7.4. ​          | [[https://​www.cs.vassar.edu/​~cs331/​lectures/​09_Run-time_Environments.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​09_Run-time_Environments_sm.pdf|Handout]]\\ [[https://​www.cs.vassar.edu/​~cs331/​lectures/​10_The_Vassar_Interpreter.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​10_The_Vassar_Interpreter_sm.pdf|Handout]]\\ [[https://​www.cs.vassar.edu/​~cs331/​lectures/​11_Semantic_Actions_Phase_2.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​11_Semantic_Actions_Phase_2_sm.pdf|Handout]] ​ | +
-|  10                |  16th April     | Optimisation ​and code generation                                                           | Ch. 9.1-9.4, 8.4-8.5, 8.7-8.8. ​ | [[https://​www.cs.vassar.edu/​~cs331/​lectures/​13_Optimisation.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​13_Optimisation_sm.pdf|Handout]] ​                                                                                                                                                                                                                                                                                                                                                                           | +
-|  11                |  23rd April     | Relational expressions and control flow.\\ Optimisation and code generation I (conclusion). ​ | Ch. 6.6-6.7. ​                   | [[https://​www.cs.vassar.edu/​~cs331/​lectures/​12_Semantic_Actions_Phase_3.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​12_Semantic_Actions_Phase_3_sm.pdf|Handout]] ​                                                                                                                                                                                                                                                                                                                                                   | +
-|  12                |  30th April     | Procedure and function declaration and calls. ​                                               | Ch. 7.1-7.3. ​                   |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | +
-|  13                |  7th May        |                                                                                              |                                 ​| ​                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | +
-|  End of classes ​                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |||||+
  
 +  - Weekly readings.
 +  - Pair-based homework exercises.
 +  - [[courses:​cs331-201701:​examination|Written examination.]] (40%)
 +  - [[courses:​cs331-201701:​project|Compiler software development project.]] (60%)
 +    * Interim development submissions. (24%)
 +    * Final submission of complete compiler. (36%)
  
-=== Project ​===+==== Weekly Readings ====
  
-^ Component ​                 ^ Specification ​                                                                                                                                                         ^  Date released ​          ​^ ​ Date due                 ​^ ​ Weighting ​ ^ +The weekly readings are intended to both introduce new material and supplement the material presented in lecturesIt is strongly recommended that you have at least familiarised yourself with the content of the reading before the associated lecture(s). If you have any questions about the material in the bookplease do raise them in class.
-| Lexical analyser (lexer) ​  | [[http://​www.cs.vassar.edu/​~cs331/​lexical-analyzer/​lexical-analyzer.html|Lexical analyser ​(lexer)]]                                                                    |  Thursday, 1st February ​ |  Thursday, 15th February ​ |  10%        | +
-| Parser ​                    | [[http://​www.cs.vassar.edu/​~cs331/​parser/​parser.html|Parser]] ​                                                                                                         |  Tuesday20th February ​ |  Tuesday, 6th March       ​| ​ 7.5%       | +
-| Symbol table routines ​     | [[https://​www.cs.vassar.edu/​~cs331/​symbol_table/​symbol_table.html|Symbol table routines]] ​                                                                             |  Tuesday, 27th March     ​| ​ Friday, 6th April        |  2.5%       | +
-| Semantic actions (part 1)  | [[https://​www.cs.vassar.edu/​~cs331/​semantic_actions/​semantic-actions.html#​(part._.Phase_1__.Declarations)|Semantic actions 1]]                                         | :::                      | :::                       ​| ​ 5%         | +
-| Semantic actions (part 2)  | [[https://​www.cs.vassar.edu/​~cs331/​semantic_actions/​semantic-actions.html#​%28part._.Phase_2__.Simple_expressions%29|Semantic actions 2]]                               ​| ​ Thursday, 5th April     ​| ​ Friday, 20th April       ​| ​ 7.5%       | +
-| Semantic actions (part 3)  | [[https://​www.cs.vassar.edu/​~cs331/​semantic_actions/​semantic-actions.html#​%28part._.Phase_3__.Subscripts__.Relational_and_.Boolean_operations%29|Semantic actions 3]]  |  Thursday, 19th April    |  Friday, 4th May          |  12.5%      | +
-| Complete compiler ​         | [[https://​www.cs.vassar.edu/​~cs331/​semantic_actions/​semantic-actions.html#​%28part._.Phase_4__.The_.Complete_.Compiler%29|Complete compiler]] ​                          ​| ​ Thursday, 26th April    |  Tuesday, 15th May        |  15%        | +
-| Extra credit ​              | Corrections to errors ​in phases I-VI                                                                                                                                 ​| ​                         |  Tuesday, 15th May        |  10%        | +
-|                                                                                                                                                                                                                                               ​**TOTAL** ||||  **70%** ​   |+
  
-== Extra Credit == +While the readings are not graded, please bear in mind that the textbook forms the basis for the exam.
  
-If you have made revisions to code in phases ​I-VI and would like the code reviewed for extra credit, you **must** state this in the README file for the final submission, as follows: +//reserve ​the right to present unscheduled quizzes.//
-  - Include a section called 'Extra Credit'​. +
-  - For each module you have changed (e.g. Lexical Analyser, Parser), write a list outlining the major changes you have made. +
-  - Include function names or line numbers if appropriate. +
-This will help me to find the updated code quickly and run appropriate tests. +
-The extra credit will be added to your total grade for the project.+
  
-== Project Score Cap ==+==== Pair-Based Homework Exercises ====
  
-**The score for the project component ​will be capped at 60% of the total for the course.** +These exercises ​will be scheduled roughly every two weeks and will generally be relevant to the material currently being presented in the classTheir intention is to give you a chance to practise new materialto review and sharpen existing skills, and to experiment with new combinations ​of ideas, with the liberty ​of not being //​required//​ to complete ​the work.
-In other wordsthe project can count for a maximum ​of 60% of the grade for the course, with the exam. making up the remaining 40% of the total.+
  
-== Test files ==+While these homeworks will not be graded, it is nonetheless strongly recommended that you attempt them, at least in part, as much of what they will cover will appear elsewhere in the course. We will discuss some of these problems, explore issues that arise, and review selected solutions together in class.
  
-Test files are available in the directories listed [[https://​www.cs.vassar.edu/​~cs331/​testfiles|here]].+==== Written Examination ====
  
-To upload a test file, use the following command:+=== The examination counts for 40% of your grade for this course. ===
  
-??331upload [lexer|parser|code] <​filename>??​+The examination will be a take-home exam scheduled towards the end of the semester. It will cover the theoretical aspects of the course, with an emphasis on material from the textbook.
  
-== Submission policy ​==+==== Compiler Software Development Project ====
  
-**All components are due by 11.59:59 pm on the date specified.** See the [[courses:​cs331-201701:​submission|submission guidelines]] ​for further information.+=== The project counts for 60% of your grade for this course===
  
-/* The grading rubric used for project ​submissions [[courses:cs331-201701:​rubric|is available here.]] */+The project ​involves the implementation of a compiler consisting of four partslexical analysis routines, parser, symbol table management routines, and semantic routines. Due to its size and complexity, the semantic routine subsystem is broken into four sections. Each piece is integrated with what has been completed previously, so that by the end of the semester you have created a single, complex program.
  
-Late work will be subject to the late policy as described.+===== Policies & Procedures =====
  
-Please note that the due date for the complete compiler is the latest time possible under Vassar College ​legislation.+I support wholeheartedly and implement all the general policies of Vassar College, including but not limited to those relevant to students with disabilities,​ Title IX, plagiarism, and classroom etiquette.
  
 +==== Late Policy ====
 +
 +=== Project ===
 +
 +[[courses:​cs331-201701:​project#​late submissions|The Late Policy for project submissions is available here]].
  
 === Examination === === Examination ===
-/* 48-hour take-home exam. Monday, 4th December to Wednesday, 6th December; pick-up and drop-off between 10 a.m. and 4 p.m.. */ 
-This will likely be a 48-hour take-home exam scheduled towards the end of the semester, **not** in the final exam block. 
  
-==== Policies & Procedures ====+Absent any extenuating circumstances or accommodations,​ examinations returned late will receive a grade of zero.
  
-I support wholeheartedly and implement all the general policies of Vassar College, including but not limited to those relevant to students with disabilities,​ plagiarism, and respectful classroom etiquette.+==== Academic Accommodations ====
  
-Academic accommodations are available for students registered with the Office for Accessibility and Educational Opportunity (AEO). Students in need of disability (ADA/504) accommodations should schedule an appointment with me early in the semester to discuss any accommodations for this course that have been approved by the Office for Accessibility and Educational Opportunity,​ as indicated in your AEO accommodation letter.+Academic accommodations are available for students registered with the Office for Accessibility and Educational Opportunity (AEO). ​ Students in need of disability (ADA/504) accommodations should schedule an appointment with me early in the semester to discuss any accommodations for this course that have been approved by the Office for Accessibility and Educational Opportunity,​ as indicated in your AEO accommodation letter.
  
-=== Classroom Policy ​===+==== Attendance ====
  
-== Attendance ==+<​html><​center><​h5></​html>​ 
 +We are each of us angels with only one wing, and we can only fly by embracing one another. 
 +<​html><​br></​html>//​--- Luciano de Crescenzo//​ 
 +<​html></​h5></​center></​html>​
  
-Attendance is not requiredbut it is **strongly recommended**:​ in-class discussions ​and explanations will likely not be posted online.+We are a community of learners, and we must be present to help one another in order to learn at our best.
  
-== Participation ==+Your contributions and insights are unique and valuable in every class. The questions you ask will help everyone to understand the course material. The ideas you express may start discussions which lead to ideas for new and exciting projects.
  
-While most of this class takes the form of lecturesI welcome and encourage discussion and questions on the subject under discussion. If you are unsure about somethingif you are just curiousif you want to play "​Devil'​s advocate"​ (within reason) --- please ask questions.+Missing ​class deprives all of us of your insightsunderstandingknowledgeexperience and enthusiasm.
  
-== "​Failure-Okay Zone" ​==+I understand that sometimes events occur which will preclude attendance. Please let me know in advance if you will have to miss a class. Do be aware that this is a difficult course, and missing too many lectures may hurt your overall performance in the class. 
 +==== When Life Just Gets in the Way... ​====
  
-I endeavour to foster an atmosphere in which it feels safe to fail. My classroom is a failure-okay zone: in fact, I welcome failure, since we frequently learn more by failure than by success.+Sometimes, Life happens: ​it's the nature of the beast.
  
-== Mobile phones ==+If something unexpected occurs which will prevent you from being able to submit project phases on time, preclude attendance at class, or otherwise interferes or conflicts with, or has a deleterious effect upon, your ability to work, it is important to let me know as soon as possible so we can devise a work-around.
  
-Please set your mobile telephone to silent and put it away.+=== Extenuating Circumstances ===
  
-== Laptops ==+The term "​extenuating circumstances"​ includes, for example, unexpected personal illness, a family emergency, or any other significant event which is likely to have a significant negative impact.
  
-prefer ​students ​not to use laptops in class, ​if possible. Please bring [(paper)+] and [(pen)+|(pencil)+|(stylus)+] to make notes.+am happy to work with students to reschedule work or provide extensions as necessary. Please let me know **as soon as possible** that there is an issue, either privately after class, ​in office hours (or by appointmentor by email.
  
-=== Late Policy ===+I appreciate that it is not always possible to make contact in a timely manner. In this case, please just be in touch when you can.
  
-Work submitted late will be subject to an incremental 10% penalty per day or part day late. Work received more than 96 hours (four days) late will automatically receive a grade of 0.+=== Sports & Athletic Fixtures ===
  
-Exceptions to this policy may be made in the case of extenuating circumstances.+You're on a team? Great! Fantastic! The very best of luck to you!
  
-=== Extenuating Circumstances ​===+If you are on a team, please let me know well in advance (e.g. as soon as you get your schedule) when your sports fixtures might clash with the class. 
 + 
 +If there is a last-minute cancellation and rescheduling of a match, perhaps due to bad weather or illness, and you find out one morning that you're shipping out that evening... this is not a problem. Again, please reach out to me as soon as possible and we'll make it work. 
 + 
 +=== Evidence === 
 + 
 +Any request for academic easement must be supported by evidentiary material. For example: 
 + 
 +  * In the case of extenuating circumstances,​ the Dean of Studies'​ Office will send me an email. 
 +  * For sports fixtures known well in advance, an email from the team coach outlining which students will be away, and when. 
 +  * For last minute changes to sporting fixtures, please forward to me the email from the coach with the changed schedule. 
 + 
 +=== Finally... === 
 + 
 +All arrangements for academic easements are made on a case-by-case basis and without prejudice as necessary throughout the semester. 
 + 
 +==== Academic Integrity ==== 
 + 
 +<​html><​h4><​center></​html>​Please don't cheat.<​html></​center></​h4></​html>​ 
 + 
 +Read [[http://​deanofthecollege.vassar.edu/​documents/​sources/​index.html|Going to the Source]]. 
 + 
 +Any course fundamentally based on composition,​ development,​ imagination and creativity -- which this course is, to a large degree -- is subject to the same kind of guidelines that apply to writing, creativity, research and development in general. Writing code is no different from writing anything else, whether it's [[http://​www.orionpressfanzines.com/​articles/​trouble_with_flat_tribbles.htm|a plot for a story]] or [[https://​mattrefghi.com/​blog/​2010/​07/​a-true-case-of-accidental-plagiarism/​|a scholarly work]]. 
 + 
 +<​html><​h4><​center></​html>​**Copying someone else's work without attribution amounts to plagiarism.**<​html></​center></​h4></​html>​ 
 + 
 +If someone helps you out by providing you a substantial chunk of code (e.g. a section of function or more), or your work is improved by discussion with someone (since talking about your work with someone else is always a great idea), **give proper attribution for the help you receive.** 
 + 
 +<​html><​h4><​center></​html>​**“In suspected cases of plagiarism, the instructor prepares a written statement of complaint to the Academic Panel.”**<​html><​p></​html>​---//​Going to the Source//, Chapter X (p. 13).<​html></​center></​h4></​html>​ 
 + 
 +This means that all cases where plagiarism is suspected --- even ones where we are, in fact, incorrect, and students are completely innocent --- **__//must be reported to the Dean of Studies//​__**. The department is not able or permitted, __legally__,​ to intervene or intercede __in any way__.  
 + 
 +Please don't put yourself or your professor in that position. 
 + 
 +(This section was based on text by Professor Marc Smith.) 
 + 
 + 
 +==== Title IX ====
  
-I accept and recognise that there may be occasions where significant problems occur. I am more than willing ​to work with students ​who are having genuine difficulties with their work because ​of life events beyond their control (e.gillness ​or bereavement). HoweverI ask that you make me aware of such situations //as soon as possible//, and I require documentary evidence of some form in order to be able to make any accommodation.+Vassar College is committed ​to providing a safe learning environment for all students ​that is free of all forms of discrimination and sexual harassment, including sexual assault, relationship abuse, and stalking If you (or someone you knowhas experienced or experiences any of these incidentsknow that you are not alone. ​ Vassar College has staff members trained to support you in navigating campus lifeaccessing health ​and counseling services, providing academic and housing accommodations,​ helping with legal protective orders, and more.
  
-=== Backup Policy (a.k.a. "The Internet Ate My Homework"​) ===+Please be aware all Vassar faculty members are “responsible employees,​” which means that if you tell me about situation involving sexual harassment, sexual assault, relationship abuse, or stalking, **I //must// share that information with the Title IX Coordinator** ​Although I have to make that notification,​ the Title IX office will only provide outreach by email You will control how your case will be handled — you don’t have to read or respond to the email, and it is completely up to you whether to pursue ​formal complaint. Our goal is to make sure you are aware of the range of options available to you and have access to the resources you need.
  
-The compiler is a significant programming project and should be treated like any other major piece of work. It is expected that you will make regular backups of your work and develop your code incrementally:​ togetherthese steps will increase the likelihood of you being able to recover from a significant loss of work.+If you wish to speak to someone privately, you can contact any of the following on-campus resources:
  
-As it is expected that you will make backupsthe excuse"I couldn'​t submit my work because ​[computer-related reason]," is no longer generally acceptable.+  * [[https://​counselingservice.vassar.edu|Counselling Service]] (telephone 845-437-5700). 
 +  * [[https://​healthservice.vassar.edu|Health Service]] (telephone 845-437-5800). 
 +  * [[https://​savp.vassar.edu|Nicole WongSAVP (Sexual Assault and Violence Prevention) director]] (telephone 845-437-7863). 
 +  * SART (Sexual Assault Response Team) advocateavailable 24/7 by calling the CRC at 845-437-7333 and asking for SART. 
 +<​html><​br/></​html>​ 
 +[[https://​savp.vassar.edu|The SAVP website]] and [[https://​eoaa.vassar.edu/​title-ix/|the Title IX section of the EOAA website]] have more informationas well as links to both on- and off-campus resources.