Enroll in CSc 301 this Winter and take a drive down Quality Avenue.
street sign photo



”Very useful for all CS/SE majors and one of the best courses you can take.”
”I wish I had taken this course earlier in my college career because it taught me some valuable lessons.”
”Everyone needs this course.”
”This should be a required course.”
- comments from previous students

What is CSc 301 Personal Software Process (PSP)?

PSP is a framework to help software engineers improve the way they work and overcome obstacles to peak performance. PSP training shows engineers how to measure and analyze their software development efforts so they can produce high quality software in a predictable manner.

PSP distills the essential principles and techniques from the Software Engineering Institutes’s 10-day Personal Software Process (PSP) course. Derived from the Capability Maturity Model (CMM), the PSP takes acknowledged "best practices" for organizations and redesigns them for use by individual software developers.

PSP introduces a disciplined process improvement methodology to the development of software. PSP shows engineers how defining and measuring one’s personal practices provides a quantitative basis for improvement. Adopting a process framework enables engineers to understand the way they work, to measure the effectiveness of their current methods, and gives them concrete data they can use to improve. PSP enables engineers to tune and refine their work practices to produce the most personal benefit.

This course qualifies for Technical Elective 1B credit.
 

Why is PSP training needed?

Software development is a sophisticated and demanding task, yet most developers lack any kind of disciplined approach to their work; they are programmers, not engineers. Their formal training often provides them with computer science principles, but not software engineering skills. Most developers do not use practices that have been proven effective such as design methods or code reviews. Most programmers have only a vague idea of their own personal productivity rate, defect rate, and estimation accuracy.

Changing programmer behavior is very difficult, because people are justifiable skeptical of trying anything new. Before they will consistently use proven practices, engineers have to be convinced through personal experience that the new methods will work for them.

PSP succeeds because it removes engineers from their work projects and trains them on non-work assignments, thereby liberating them to experiment with a different approach. The training leads them through a structured set of activities where they develop working code. The PSP gives them measurable feedback about their performance that demonstrates concretely and often dramatically what works for them and what doesn’t. Engineers are convinced because they see measurable results in their own work.

So by providing a process framework, engineers learn to define and track their work and measure their performance. The result is a quantitative basis for evaluating the success of new methods they are invited to adopt. Using these measurable criteria they can select practices with the most likelihood of suiting their particular tasks and abilities.

By giving professionals control of how to customize improvements to their work, it is more likely they will use them consistently.
 
 

What happens in the PSP course?

The course consists of some lecture/presentation along with practice activities and hands-on programming assignments.  The course will use this textbook by Watts Humphrey.

Students are introduced to a simple, defined personal software process. They are guided through practice exercises that demonstrate how this process is followed. They then apply the process to their own work as they carry out four small programming projects. They gather simple process measures for time in each development phase, product size, and number of defects. They are taught how to analyze and interpret the measures to understand their own performance. This data may challenge their conventional habits and reveal obstacles that have kept them from achieving their best.

Every engineer is different and what works for one may not work for another. The PSP is customizable in order to accommodate for individual differences. Engineers are taught how to tailor the process to their own needs. During the course a specific software quality practice is introduced, code reviews, and students can observe and assess its effectiveness in their own work.

From completing the course exercises engineers receive immediate, explicit, quantitative feedback about their personal work habits, thus giving them tangible data about what methods are most effective for them. At the conclusion the students have a personally defined process and the skills to tailor it for their own use. They have measurable goals and a strategy for improvement to help them achieve their goals.
 
 

What is the workload in the course?

The workload is less than a typical programming course.   There are no new algorithms, data structures, or technical computer science topics to learn.  The programs will be comparable to CPE 103 assignments.  The focus is on applying the knowledge you gained in other courses to write quality programs.

What are the benefits?

Graduates of the PSP course realize significant, measurable improvement in several key areas:

Higher Quality – engineers are shown the cost benefits of removing defects early and can be expected to achieve a 50% reduction in the number of defects in their products.

Reduced Time – engineers will realize the cost savings of removing defects early in the life cycle, resulting in reduced overall development time.

Accurate Scheduling – because they now have quantitative data upon which to base size and resource estimates, engineers will produce more accurate schedules.

Improved Processes – engineers become "self-improving" as they define, manage, and improve their own processes.




For more info, email: john's email address