COMP 370—Software Quality and Testing: Syllabus

Fall, 2016

Prerequisite

Instructor, time, & place

Conrad Weisert

Office hours: 75 minutes before class or by appointment

Class: Mondays 7:00 - 9:30 P.M.—Lewis 415

Teaching Assistant
We won't have an assigned TA. However, tutors will be available in the laboratories starting the middle of the second week.

General Description

We shall examine aspects of software quality with emphasis on:

We shall discuss pros and cons of recent methodologies, such as test-driven development and continuous deployment, and modern technologies, such as cloud-based platforms.

Students who have already gained experience in non-trivial software development are urged to share their experiences with the group, especially anything that may add to or help to clarify our course content.

Assignments and project

There will be 7 assignments. Your worst assignment grade won't be counted (see Grading below).

Because of the wide range of detailed topics, we won't do a large class project. However, if you have an opportunity in your job or in another course to make use of the concepts and techniques of this course, you can talk to me about substituting a special project for some of the homework assignments.

Since our class meets only once a week, you'll always get at least two weeks to complete an assignment. If you have questions or difficulty with an assignment, therefore, you'll get a chance to see me before it's due. Assignments turned in up to one-week late (i.e.before we've discussed solutions in class) will receive half credit.

Tools

Programming language

We shall use, examine, and be well acquainted with the C family of object-oriented programming languages, C++, Java, and C#. When we write original programs, C# ("C sharp") will be our preferred language for this course. Since these three programming languages are so similar, you should be able to understand examples in any of them.

We shall use the Xamarin Studio development kit, which consists of a compiler for the full C# language, an editor for composing and modifying C# programs, and various utility programs. Xamarin is available for Windows, Apple OSX, and Linux computers. You can use it in Loyola's computer labs, or install it on your own computer. It's essential to get comfortable with it before our second class session.

We shall occasionally discuss the differences among these similar languages, emphasizing their strengths and weaknesses for testing.

Workbench and other tools

Loyola's laboratories are equipped with BlueJ and Eclipse, which you should be acquainted with and be prepared to exploit as approrpriate, but are free to use or not use in the course work.

Note:   The instructor and the teaching assistant may not be able to help you if you encounter trouble using a platform or tool not supported at Loyola.

Textbook and other reading

Required

Specific reading assignments are given in our week-by-week schedule. In order to conserve class time, you should study each session's assigned reading before that session and come to class prepared to ask questions about anything that you either don't fully understand or disagree with.

Recommended supplementary reading

To do the assignments you may need access to a comprehensive book on programming, such as this on-line one used in COMP 170. I shall recommend and let you examine some other interesting specific texts from time to time.

I may occasionally recommend an interesting article or book chapter related to the topics we're studying. However, to avoid overloading your reading time, we shall keep those recommendations to a minimum.

Attendance and keeping up

Although the concepts and techniques covered in COMP 370 are accessible to a competent experienced programmer, they're far from trivial and they demand serious study. If you find yourself falling behind or if you don't understand something well enough to explain it to someone else, either ask questions in class or see me during office hours.

Since most of the material will be presented and discussed in our class sessions, you'll be at a serious disadvantage if you miss a session. Unless you're already a very senior programmer, no amount of independent reading can substitute for participation in the class sessions.

A copy of each session's presentation slides will be posted (link from the schedule topic) in a condensed form (4 per page) a few days before class, so that you'll rarely have to copy something you see on the screen. But the presentation slides are only an outline of what we shall actually discuss and examine during our class sessions, so studying them won't compensate for missing a session.

If you have to miss one or more sessions, please confer with the instructor as early as possible to determine how best to master the material you miss.

Examinations

The final examination will cover the full course content.

A mid-term examination (just before the drop deadline) will confirm your mastery of the mainstream concepts discussed up that point.

I may give an occasional brief quiz at the beginning of class to verify your understanding of some important point raised in the previous session or in the assigned reading.

Grading

The usual grading criteria apply to this course.

We expect assignments and other work to exhibit a level of quality consistent with both the advanced level of the course and with the quality principles we shall examine.

These are the weights for the various course components:

Final Examination 23 points
Mid-Term Examination 17 points
Homework assignments (6) 9 points each
Class participation and mini-quizzes 6 points

The following table is used both for converting your total score to a course grade and for converting letter grades on assignments to numeric scores.

Numeric score >92 90-92 87-89 83-86 80-82 77-79 73-76 69-72 66-68 60-65 <60
Letter grade A A- B+ B B- C+ C C- D+ D F


Last modified June 22, 2016