CpSc 215
Software Development Foundations
Spring 2008
 
 
Course Description
This course will introduce you to some of the most important issues, techniques, and tools associated with a rigorous software development process. The goal is to help you on your way to becoming an expert developer. Perhaps to your surprise, this will mean covering concepts far beyond basic programming language and coding skills. While these will be an important focal point, we will additionally study techniques and tools that will help you to reason formally about the software you develop and maintain. By the end of the course, you will be able to develop high-quality software, and to reason precisely about its behavior.
 
Course Prerequisites
CpSc 102 or CpSc 210 with a C or better
 
Meeting Times and Location
Lecture: Monday/Wednesday @ 2:30-3:315, 415 Daniel Hall
Lab - Section 001: Tuesday @ 4:30-6:20, 110D McAdams Hall
Lab - Section 002: Tuesday @ 2:30-4:20, 110D McAdams Hall
 
Course Textbook
There is no textbook for this course.
 
Instructor Information
Jason O. Hallstrom
301 McAdams Hall
(864) 656-0187
 
Office Hours
Monday, Wednesday @ 1:00-2:30
(or by appointment)
There are two ways of constructing a software design; one way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.
  - C.A.R. (Tony) Hoare
I really hate this damned machine. I wish that they would sell it.
 - anonymous
Let us change our traditional attitude to the construction of programs. Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do.
 - Donald Knuth