Catalog description:
"Principles for engineering requirements analysis and design of large complex software systems. Software process models. Methods of project planning, tracking, documentation, communication, and quality assurance. Analysis of engineering tradeoffs. Group laboratory project. Technical oral and written presentations. 3 lectures, 1 laboratory. Prerequisite: CSC/CPE 103 with a grade of C- or better, and CSC/CPE 357 or CSC/CPE 353."
Course Objective:
To learn skills required to produce and maintain a high-quality
software product on time and within budget. This is the first in
a 2 course sequence in Software Engineering. It is generally assumed
that the student plans to take CPE 309 in the next term.
Prerequisites:
CPE 103 and [CSC 357 or CSC 353].
Course Description
Principles of Software Engineering at the basic level. This is
taught through software requirements elicitation, analysis and
documentation. Team
process infrastructure is emphasized. The course touches on
resource estimation to support appropriate
levels of quality. The main deliverables include a Software
Requirements Specification (SRS) and a corresponding architectural
design.
Course Tools
The software engineering profession is rife with tools; there are
literally thousands of tools available to [supposedly] help software
development. In CPE 308, the focus is placed on process - not tools.
You are welcome to utilize tools in addition to the ones we cover in class. The basic tools we may use are:
Team Project
All of the work in CSC 308 is connected to a
project. You will work in a team to carry out each phase of the
project.
The project itself will have to meet standards of the Instructor, the Customer and the needs of CSC 308. Project standards will be discussed in Lab and Lecture.
As a member of a team, you will be required to perform an evaluation of your team members' performance and your own performance. This will be required twice during the term.2 Minute Talks
Note that you can avoid the written answers to reading questions if you are willing to give additional extemporaneous two minute talks on the course readings. In this case, you will be asked to answer, without prior notice, questions about the course readings for the week.
Project Journal
Each individual is required to keep a journal and bring it to every
class meeting. Every entry in the notebook must be
dated and clearly labeled. The major objectives of the notebook are
writing practice and engineering experience; write every entry in your
own words. The notebook must contain, at a minimum:
Examinations
There will be one written midterm and a final examination.
Grading
All grading in CSC 308 is done in a "wholistic" manner. You do
not pass or fail on simple "numbers" and "numbers" mean no more than
any other abstraction (a 50% is not necessarily an "F", neither is a
90% necessarily an "A"). The goal is for students to learn a mature approach to
software engineering. Look at
definitions of this term. It involves your ability to perform
well in individual assignments, perform well as part of a team, to
execute a rationally derived process to achieve a quality requirements
document and software architecture.
The project is the cornerstone of this course and is the primary basis of your course grade. The project grade is assigned on an individual basis; each student will earn a project grade of A, B ... or F assigned subjectively. A prerequisite to earn an A is to accept and complete action items on your group deliverables. Coat-tail hanging or non-performance by an individual will result in a course grade of F. You are required to participate fully in your group project. You must perform as part of a team, this is paramount.
I expect each member of a well-run group to receive an A. You cannot receive a passing course grade until your portion of the project is completed satisfactorily. In addition, any deliverable document is not final (not graded) until it is signed by the customer, each member of the group intending to continue in the 308/309 sequence, and the instructor.
The project evaluation is done as if you were a corporate employee. Each project deliverable must be completed in a professional way; when finished the deliverable will be assigned a grade. Work may be returned until it reaches a professional standard. If substandard work is turned in toward the end of the quarter, all group members will earn a course grade of F.
Your course grade will also be affected by homework, the contents of your journal, exams, weekly status reports, your 2 minute talks as follows:
Use of notes or slides without prior permission.
Use of the words "basically" or "like" (or other words of equivocation).
Insufficient content or substance (teach the class something useful or interesting!)
You will be assigned a required laboratory meeting each week; each missed laboratory, without prior notification, will lower your course grade 3 grades. (e.g. A to B)
Late Work Policies
A software engineer has a responsibility to manage time effectively and
turn in work on time. Deadlines are rarely absolute; if you are
having
a problem, discuss it well in advance; this advice applies to the workplace as well as
any
college class.
For CSC 308, the following nominal late policies apply:
Plagiarism
All work submitted is to be your own.
Cooperative study and mutual aid are healthy learning methods and are
strongly encouraged. You are especially encouraged to work with other
groups. Just cite sources of anything you have copied, summarized
or discussed directly with another. It is cheating to copy
someone's work or allow someone to copy
your work. It is cheating to copy material from a publication without
giving credit. Plagiarism will result in a course grade of F.
When you find good ideas by other people, the best policy is to
summarize other work in your own words and cite their work as the
source for the principle you state. Citing resources is not a
sign of weakness of your own ideas, it is a sign that you can do
research and build on others' work.
Communication
The best place to discuss the course is during lecture and laboratory
times. Email is a poor substitute for direct communication and may not
always be reliable.
I do expect every student to obtain a Cal Poly email account; all email will
be addressed to that account. Note also that email is not very reliable
for contacting the instructor. If you use an address not in the
calpoly.edu domain, my spam filter may eliminate your message.
Please use very clear subject lines like "CSC 308."
All homework and project assignments will be placed on the Web and announced in lecture. Most class materials are available on the Web; be sure to check them regularly.