CS4472A/9550A Course Outline Fall 2013
- Course Information:
- Academic Calendar:
- Computer Science 4472A/B - Specification, Testing and Quality Assurance
- Concepts and state of the art techniques in software specification and quality assessment for software engineering; quality attributes; formal specification and analysis; verification and validation.
- Antirequisite(s): Software Engineering 4452A/B, Software Engineering 4453A/B.
- Prerequisite(s): Computer Science 3307A/B/Y.
- Extra Information: 3 lecture hours, 0.5 course.
- Senate regulation: Unless you have either the requisites for this course or written special
permission from your Dean to enroll in it, you may be removed from this course
and it will be deleted from your record. This decision may not be appealed.
You will receive no adjustment to your fees in the event that you are dropped
from a course for failing to have the necessary prerequisites
- note: As a computer scientist, you should recognize the above
as a case of patching flawed software (in this case the registrar's online
enrollment software) with `blame the user' policies. Hopefully you will never
do anything like that in your future undertakings.
- Western Timetable (3 Sept 2013):
- 001 LEC 6040
2:30 PM 3:30 PM P&AB-34 Webber Not Full
- 001 LEC 6040
1:30 PM 3:30 PM P&AB-34 Webber Not Full
- Instructor information: Robert E. Webber, MC384, email@example.com (include course number in subject line), office hours on course announcements page.
- Course Syllabus
- The goal of the course is to give students experience with modern specification and testing procedures and accompanying techniques for reasoning about
what a program does, as well as whether or not the program
meets its specification.
- To accomplish this:
- We will start by looking at the testing framework around Agile
Development and the programming systems Ruby and Ruby on Rails in particular.
Much current work around testing is being developed by people promoting Agile
Development both due to their Test Driven Design focus and their tools focus
of automating processes where possible. This shows up in the systems Cucumber
and RSpec as well in other programming tools for Ruby. Note that most of these
tools exist to support other languages such as C and Java, but in Ruby they
are more flexible due to the dynamic nature of the language. Familiarity
with C and Java is assumed, but tutorial material on Ruby and Ruby on Rails
is in the Course Material.
- We will also look at how Formal Methods fit
into the Agile Development process and more generally about at how Formal
Methods work and what tools are available to aid the programmer using them.
In particular work done on ESC/Java and currently by the researchers at
Microsoft who maintain Verification Corner will be of interest.
- The rest of the topics in the course can be seen as supporting the
above two issues, how they relate, and what their weaknesses are.
- The grading scheme presented in the Methods of Evaluation section
was created to encourage students to flexably investigate the issues
of this course.
- The course itself is organized around a collection of videos (starting
with those from a U of Cal Berkeley course discussing Agile Development in
the context of Ruby on Rails) and supporting written
material from the web including wikipedia entries, tutorials, published
- Class is seen as primarily a place to meet and see how people are coming
with the course material (posted in the Schedule entry on the course web page),
decide if class wide quizzes or projects are appropriate at this time,
and allow study groups to keep in touch. Material that would normally be
provided in a lecture is generally covered by the assigned videos.
- Course Materials
- The course will make use of plain text files,
pdf files, html files, and youtube video files that are freely available on the web or, at least,
available to UWO students through the online subscriptions maintained by the
University library system (and accessible from off campus via the Library proxy
server as well as from on campus using machines with UWO IP addresses). For
help with the Library proxy server, see help desk at any campus Library.
- It is worth noting that the first part of the course relies on a set of
youtube lectures on Software as a Service by David Patterson at the University
of Berkeley. Although I believe there is sufficient online material to
clarify what he is talking about, he did write a textbook that accompanies
his course Engineering Software as a Service: An Agile Approach Using Cloud Computing by Armando Fox and David Patterson (Apr 12, 2013) - Kindle eBook
that some people may be interested in [3 Sept 2013: Amazon lists the Kindle version at US$9.48 and the paperback version at US$25.79].
I have never seen it myself and won't be expecting people to have it in the
- Additionally the course will make use of various software systems (such as
Ruby on Rails) which are freely downloadable as well as hosted locally on
the department machines. Having one's own computer is usually a help although
not strictly required. My own familarity with the software involved will come
from a SunOS/ Linux orientation and people who want to work with Windows will
generally have to figure things out for themselves.
- Course web page: The course web page can be found at:
http://www.csd.uwo.ca/Courses/CS4472a/. On it are links to this course
outline, the schedule of material to be covered in the course, and a page
of any announcements. Marking is done on the assumption that people check
the announcements page of the course web page regularly enough to know when
a new assignment becomes available, what changes, if any have been made to
how things are processed, what course material may have been clarified, etc.
- Methods of Evaluation
- Marks: Marking is a complicated business. Below I will be
discussing your `computed mark'. This establishes a linear ranking among
the students in the class with 100 being the maximum/ best allowed. Once
the computed mark has been derived, various adjustements occur, such as an
88.7 being rounded to a 89, an 89 turning into a 90 because who would give
someone an 89, and sometimes even an 88.3 turning into a 90 because the 88.7
did and there was only .4 between them. Also, academic penalties get applied
after the computed mark has been generated, i.e., academic penalties over-ride guarentees of minimal computed mark values.
- Academic penalties: Cheating on the final exam is processed
through the Dean's office. The assignments in the non-final exam portion
of your mark are all worth 5%, so the maximum academic penalty associated
with them would be subtracting 10 from the computed mark for large scale
plagarism. Failure to provide proper citations to outside sources for
minor portions of a piece of work might incure a penalty as low as subtracting
1 from the computed mark. Other penalties would lie along this spectrum of
- Required Final Exam: There will be a 3-hour final exam whose time will
be announced later by the registrar's office. It will be a closed book,
closed note, no electronics comprehensive exam on the material listed in
the course schedule covering the material mentioned in the Course Syllabus.
The computed mark for the course will lie between the final exam mark and
the final exam mark plus 20. That is, if you get a 60 on the final exam,
then you won't get less than a 60 for the course for your `computed mark',
but you also won't get
more than an 80 as your `computed mark'. And, of course, you can't pass
the course without taking the final exam.
- Doing Better than the Final Exam Mark: The way you do better
than your final exam mark is to do more stuff than the final exam. No matter
how much stuff besides the final exam you do, the final exam will always count
at least 35% of your computed mark. If less than 65% worth of work has been
done, then the final exam mark expands to fill the void.
- Employability: The idea here is that you treat the class as if
it were a job and the class was an organization trying to prepare everyone
to do well on the final exam. This would be worth a maximum of 10%.
As an employee, it would be expected that you:
Note that study groups are encouraged and we may be experimenting with
pair programming this semester as well. An attempt will be made to leave
some `class time' for students to meet with each other to form and maintain
such arrangements across the semester.
- Come to work on time.
- Be prepared (see Class Schedule as to what material you are supposed to
have studied by when).
- Have pencil, paper, and ID with you.
- Pay attention -- multitasking doesn't work (indeed, is currently a
leading cause of car accidents).
- Constructively participate.
- Not create obstacles for your fellow students (such as giving them the
flu, etc.). See Academic Offenses discussion in Additional Statements
- Class Work: In general, there is no class work scheduled for
the semester (see Halfway Estimate below). However, students may wish to
do projects and take quizzes to both test their current understanding and
create the possibility of doing better for the course than their final exam
mark. Class work, both quizzes and projects, will be negotiated at class
meetings. In order for class work to be assigned, two thirds of the students
attending must vote in favour of it and the prof must agree to it
(note: the prof usually won't agree to new class work if he hasn't caught
up on his marking of what has already been agreed to).
So that students who were not in attendance have a chance to prepare,
a quiz or a project will be set for at least a week after the class when
it was voted on. Each unit of class work is worth 5%.
- Quizzes: A quiz will be a half hour in-class task. It will be
following the rules for the final exam unless different arrangements were
agreed to in the vote that created the quiz task. It will be administered
at the start of class so that there will be time to talk about it in class
- Projects: A project will be a one week task (with the expectation
that it is doable in 5 hours by a student who understands the material
covered in the Course Schedule at the point when the task was assigned).
Details of the assignment will accompany its announcement, but it will be
expected to be handed in at the beginning of class on the day due (on paper).
There will be no late hand ins (see Medical Illness and `participation
component' statements in Additional Statements section). Once the
projects have been handed in, the class will discuss difficulties with
the project as appropriate.
- Independent Work: Independent Work, like Projects, is expected
to be doable in 5 hours by a student who understands the material
covered in the Course Schedule at the point when the task was undertaken.
Unlike Projects, independent work requires a proposal and will only proceed if
the professor finds the proposal acceptable. Once a proposal is accepted,
a student can not propose further Independent Work until that task has been
`completed' and the results marked and returned. An Independent Work task
can not be handed in for marking sooner than 6 days after the proposal
was accepted. Marking is done in the order that things arrive, so expect
a task that is handed in just after a class quiz to take longer to get marked
than one handed in just before a class quiz. Independent work should be
handed in in class or at office hours, NOT ONLINE. Any Independent Work task
not completed by the Last Day (see below) expires with no penalty. Thus,
getting it done before the `Last Day' is the only real deadlline for
Independent Work (and then, only if you want the extra 5% of marked tasks).
Since Independent Work is exploratory, it is possible to get full credit for
work that doesn't complete everything originally proposed (consult with
professor on how to best handle such a situation). This course is focussed
on testing and verification. Thus, it is possible to base Independent Work
on studying testing and verification issues that arise in the context of
a project being done in another class or for another supervisor -- this is
ok as long as it is mentioned in the proposal that this is what is going on
and that permission from the other teacher/ supervisor is provided along with
the proposal. More details on proposals and what to hand in when the work
is finished will be posted to the course announcements page. Each piece of
Independent Work is worth 5%, just like Class Work.
- Combining the Pieces:
- Of the 3 pieces, Employability, Class Work, and Independent Work,
we look at the following ways of combining them:
Each of these combinations has two aspects: the mark it was worth and the
maximum value of the task. For each combination, there are two situations:
- Class Work
- Employability + Class Work
- Independent Work
- Employability + Independent Work
- Independent Work + Class Work
- Employabiilty + Independent Work + Class Work
- If the maximum value the tasks were worth is more than 65%, then they are
scaled down to 65% and ccombined with the Final Exam mark of 35% to create
the `possible computed mark'.
- If the maximum value the tasks were worth sums to less than 65%, then
the value of the Final Exam is expanded to fill the slack.
- The various possible marks are computed by weighting the score on
different assignment types by their maximum value and then rescaling or
extending the Final Mark to create a mark out of 100.
Your computed mark is then the maximum of the different possible computed
marks with the limitation of not being more than 20 plus the Final Exam mark.
- Example: Assume you get 75% on your Final Exam, 90% on your 6 Class Work
80% on your 4 Independent Work assignments, and 60% on your Employability. Then your
possibly marks would be
and your computed mark would be: 80.5. (which is less than 95).
This example was done by hand, but obviously I am going to write a program
to do it for the class marks.
- 0: .75 * 100 = 75
- Employability: .6 * 10 + .75 * 90 = 73.5
- Class Work: .9 * 30 + .75 * 70 = 79.50
- Employability + Class Work: .6 * 10 + .9 * 30 + .75 * 60 = 78
- Independent Work: .8 * 20 + .75 * 80 = 76
- Employability + Independent Work: .6 * 10 + .8 * 20 + .75 * 70 = 74.5
- Independent Work + Class Work: .8 * 20 + .9 * 30 + .75 * 50 = 80.5
- Employabiilty + Independent Work + Class Work: .6 * 10 + .8 * 20 + .9 * 30 + .75 * 40 = 79
- Graduate Student Marking: As with many 4xxx courses, this course
is cross-listed so graduate students can take it. In particular, this course,
CS4472A is cross listed as CS9550A. While Independent Work is optional
for undergraduate students, it is required for graduate students. In
particular, graduate students are required to undertake and complete 4
one-week Independent Work tasks, normally worth 20%. This 20% would then
be combined with the 35% associated with the Final Exam to create a marking
component worth 55%. This combined component sets lower and upper bounds for
their course mark (just as the Final Exam does for undergraduates) and scales
in the event they don't do `extra' work in the same way that the Final Exam
scales for undergraduates who don't do `extra' work. Since graduate student
marks are not due at the same time as undergraduate marks, graduate students
have til the end of the Finals period to complete their Independent Work.
The Independent Work provided by graduate students will be marked in the
context of it being done by graduate students, just as the work done by
undergraduates is marked in the context of it having been done by
- Starting the marking: Since new students may be showing up until
the last day to add a class, Employability marking will not start until the
class meeting after the weekend that follows the last day to add a class.
Similarly there will be no quizzes due til then. The first class project will
not be due before two weekends have passed since the last day to add a class.
Independent Work need not be delayed by waiting for late course adders.
The last day to add a class for the Fall 2013
semester is September 17th.
- Halfway estimate: In order to provide an estimate of how well you
are doing in class by the halfway point, if no class half-hour quizzes have been scheduled
before Tuesday October 16th, then one will be scheduled for that day.
Additionally, if only one half-hour quiz has been scheduled before Thursday October 18th, then one will be scheduled for that day. As is custom, quizzes
will occur at the beginning of the class scheduled and will be discussed
after everyone has handed thier's in (so that one should have a good sense of
how one did even before the marked version is handed back).
- Last day: The last day to hand in any individual project or for any
class project or quiz to be due is the last day that class meets if the final
exam is scheduled for more than seven days after the that day and otherwise
the last class meeting that is at least seven days before the scheduled final
- Additional Statements
- Statement on Use of Electronic Devices: The final exam will be closed book, closed notes, with no electronic devices allowed, with particular reference to any electronic devices that are capable
of communication and/or storing information.
- Statement on Use of Personal Response Systems: Clickers will not be
used in this class as it is nearly impossible to use them and protect student
privacy, as any Computer Scientist should know.
- Statement on Academic Offenses: Scholastic offenses are taken seriously and students are directed to read the appropriate policy, specifically, the
definition of what constitutes a Scholastic Offence, at the following Web site:
- Statement on Academic Offenses (graduate version): Scholastic offenses are taken seriously and students are directed to read the appropriate policy, specifically, the
definition of what constitutes a Scholastic Offence, at the following Web site:
- Regarding Plagiarism-Checking Software: Such software will not be
used in this class as it is nearly impossible to use them and protect student
privacy, as any Computer Scientist should know. In the case of both material
handed in and tests and/or exams, any plagiarism checking will be done the old
fashioned way, by a person looking at the material in question.
- Senate regulation: Students who are in emotional/ mental distress should refer to Mental Health @ Western
- Senate regulation: For UWO Policy on Accommodation for Medical Illness and a downloadable SMC see:
[downloadable Student Medical Certificate (SMC):
under the Medical Documentation Heading] Students seeking academic accommodation on medical groups for any missed tests, exams, participation components and/or
assignments worth 10% or more of their final grade must apply to the Academic
Counselling office of their home Faculty and provide documentation. Academic
accommodation cannot be granted by the instructor or department.
- Note: the participation component for this course (called Employability
in the marking scheme) is worth 10% of mark and so any work missed for medical
reasons would be expected to go through the appropriate Dean's office.
There are no late assignments or makeup quizzes in this course, so if suitable
documentation is providable, the typical compensation would be to use an
`individual project' and/or the final exam mark to cover the missed scheduled
work. Note that the Employability mark encompasses not
only showing up on time, prepared, and constructively participating, but also
not infecting your colleagues with the flu. In the case of non-infectious
medical excuses, extra participation in subsequent classes may be expected
to compensate for the missed participation on the day in question, course
- Department specific information>
- Specification for this document