Formal Foundations of Programming - Course Outline
SWEN 224: 2013 Trimester 2This document sets out the workload and assessment requirements for SWEN 224. It also provides contact informationfor staff involved in the course. If the contents of this document are altered during the course, you will be advised of thechange by an announcement in lectures, ECS email and/or on the course web site. A printed copy of this document isheld in the School Office.ObjectivesThis course introduces a selection of topics, focusing on the use of formal notations and formal models in thespecification, design and analysis of programs, languages, and machines. Topics include program specification andverification, formal languages and automata theory, scanners and parsers.The principal objective of the course is to teach students how to use mathematical techniques to describe and reasonabout various kinds of computational structures and processes. A student completing the course should be able to:1. Use mathematical structures such as sets, functions, relations and sequences to model software systems, and to statedesired properties of such systems, including pre and postconditions, class invariants and loop invariants. (3(a),3(c))2. Use mathematical reasoning to prove properties of the various formalisms studied in the course, including correctnessproperties of programs. (3(a),3(b),3(c))3. Use tools such as Alloy and Dafny to check correctness properties of software systems. (3(a),3(b),3(d),3(f))4. Use formalisms such as regular expressions and context free grammars to describe the syntactic structure of artificiallanguages. (3(a),3(c))5. Use state machine models such as finite acceptors and push down acceptors to construct recognisers for artificiallanguages. (3(a),3(c))6. Understand the relationships between different classes of grammars and automata, and the limitations of these formalisms.(3(a),3(c))SWEN 224 is part of the Engineering program at Victoria University of Wellington. BE students are expected to exhibit anumber of graduate attributes upon graduation. These course objectives contribute to the graduate attributes as indicatedabove. A full table of these attributes is available at Graduate Attributes.TextbookThere is no text book for the course.Copies of slides used in lectures will be handed out in lectures, and made available on-line on the course website.Handouts covering the lecture material in more detail will be provided for some parts of the course.Pointers to additional material, in the VUW library and on the Web, will be provided on the course web site.Lectures, Laboratories, and Practical workSWEN 224 is a second trimester course, with three lectures per week:Tuesday 3.10-4.00pm, Maclaurin 102Wednesday 3.10-4.00pm, Cotton 122Friday 3.10-4.00pm, Maclaurin 102The trimester starts on %TRIMESTER_START%. The examination period at the end of the course is 25 October - 16November.Some lecture times will be used as tutorials.A tentative schedule of lecture topics, handouts, and assignment due dates is available online. This will be updated asthe course progresses.Students will attend one two-hour lab session per week. Students should sign-up to a lab session in the first week of thecourse, and attend that session throughout the course. The available labs times are:Monday 10-12, Co243Monday 3-5, Co243Wednesday 9-11, Co243SCHOOL OF ENGINEERING AND COMPUTER SCIENCEFriday 9-11, Co242Assignments and ProjectsThere will be between 8 and 10 assignments, with some assignments spanning one week and some spanning twoweeks.Assignments will cover a mixture of written work (addressing objectives 1 to 5) and some involving the use of softwaretools such as Alloy (addressing objective 6). Some assignments may involve a small amount of Java programming, butthis will mainly be in association with the use of tools such as ESC/Java. Programming will not form a major part of thecourse, but a reasonable level of proficiency in writing Java programs will be assumed.It is expected that students will do a substantial part of the work for their assignments during their scheduled labsessions, and tutors will be available in the labs to provide assistance. To make best use of the lab sessions, it isessential that you prepare for the lab by reading the assignment, thinking about what is required and reviewing therelevant lecture material. You will probably need to complete part of the work and write it up after the lab session.Written components of the assignments may be submitted in the SWEN 224 posting box in the Cotton Level 2 corridor.Other work should be submitted electronically via the course submission web page. Any documentation submittedelectronically should be in plain text, ps or pdf format. Please do NOT submit documents in WORD (.doc) or any otherproprietary format (any such documents will be ignored).Assignments will be accepted up to noon on the day following the deadline, with a 10% penalty, but their marking maybe delayed.Assignments will only be accepted for marking later than this in exceptional circumstances and by prior arrangement. Ifyou have difficulties in completing the assignments, it is your responsibility to contact the course organiser as early aspossible to discuss alternative arrangements.Marked assignments will normally be returned at labs. Marked assignments not collected at labs will be left in the SchoolOffice.Computing FacilitiesStudents are expected to have an account on the School's Unix system, so that they can use the workstations in labs,and to read email sent to their ECS address.Students may use computing facilities other than those provided. In particular, students with access to suitablecomputing facilities at home are welcome to use them for their assignments. Most of the software we use is freelyavailable on the web, and other materials needed will be made available on the course web site.Note, however, that any submitted programs or inputs for software tools are expected to work on the School'scomputers, and any complications in porting them to the School's system are entirely the responsibility of thestudent.WorkloadIn order to maintain satisfactory progress in SWEN 224, you should plan to spend an average of at least 10 hours perweek on this paper. A reasonable breakdown for these hours would be:Lectures: 3Readings: 3Assignments and Labs: 4School of Engineering and Computer ScienceThe School office is located on level three of the Cotton Building (Cotton 358).StaffThe course organiser and lecturer for the second half of SWEN 224 is Lindsay Groves. His contact details are:Cotton 257+64 4 463 5656Lindsay.Groves@ecs.vuw.ac.nzThe lecturer for the first half of the course is David Streader. His contact details are:Cotton 260+64 4 463 5655David.Streader@ecs.vuw.ac.nzAnnouncements and CommunicationThe main means of communication outside of lectures will be the SWEN 224 web area athttp://ecs.victoria.ac.nz/Courses/SWEN224_2013T2/. There you will find, among other things, this document,assignment handouts, and the SWEN 224 Forum. The forum is a web-based bulletin board system. Questions andcomments can be posted to the forum, and staff will read these posts and frequently respond to them.AssessmentYour grade for SWEN 224 will be determined based on the following assessment weightings:Item WeightAssignments 30%Mid-term test 10% or 0%Final Examination 60% or 70%The test will only count if it is to the student's advantage.Tests and ExamsThe test is tentatively scheduled for 3.00-4.00pm on Friday, 23th August. Please watch the course home page forconfirmation of the test date, time and venue. If you cannot attend the test, please advise the course co-ordinator well inadvance.The timetable for final examinations will be available from the University web site and will be posted on a notice boardoutside the faculty office. The final examination will be three hours long. No computers, electronic calculators or similardevice will be allowed in the final examination. Paper non-English to English dictionaries will be permitted. Theexamination period for trimester 2 is 25 October - 16 November.Mandatory RequirementsThe mandatory requirements for SWEN 224 are to achieve:at least 40% average in the assignments,at least 40% in the final exam,Passing SWEN 224To pass SWEN 224, a student must satisfy mandatory requirements and gain at least a C grade overall.WithdrawalThe last date for withdrawal from SWEN 224 with entitlement to a refund of tuition fees is Friday 26 July 2013. The lastdate for withdrawal without being regarded as having failed the course is Friday 27 September 2013 -- though laterwithdrawals may be approved by the Dean in special circumstances.PlagiarismWorking Together and PlagiarismWe encourage you to discuss the principles of the course and assignments with other students, to help and seek helpwith programming details, problems involving the lab machines. However, any work you hand in must be your own work.The School policy on Plagiarism (claiming other people's work as your own) is available from the course home page.Please read it. We will penalise anyone we find plagiarising, whether from students currently doing the course, or fromother sources. Students who knowingly allow other students to copy their work may also be penalised. If you have hadhelp from someone else (other than a tutor), it is always safe to state the help that you got. For example, if you had helpfrom someone else in writing a component of your code, it is not plagiarism as long as you state (eg, as a comment inthe code) who helped you in writing the method.Rules & PoliciesFind key dates, explanations of grades and other useful information at http://www.victoria.ac.nz/home/study.Find out about academic progress and restricted enrolment at http://www.victoria.ac.nz/home/study/academic-progress.The University's statutes and policies are available at http://www.victoria.ac.nz/home/about/policy, except qualificationstatutes, which are available via the Calendar webpage at http://www.victoria.ac.nz/home/study/calendar (See SectionC).Further information about the University's academic processes can be found on the website of the Assistant Vice-Chancellor (Academic) at http://www.victoria.ac.nz/home/about/avcacademicAll students are expected to be familiar with the following regulations and policies, which are available from the schoolweb site:Grievances Student and Staff Conduct Meeting the Needs of Students with Disabilities Student Support Academic Integrity and Plagiarism Dates and Deadlines including Withdrawal dates School Laboratory Hours and Rules Printing Allocations Expectations of Students in ECS coursesThe School of Engineering and Computer Science strives to anticipate all problems associated with its courses,laboratories and equipment. We hope you will find that your courses meet your expectations of a quality learningexperience.If you think we have overlooked something or would like to make a suggestion feel free to talk to your course organiseror lecturer.Course Outline as PDF