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 3 course (academic year long) sequence. It is generally assumed
that the student plans to take all three courses in the sequence in one
year.
Prerequisites:
Permission of instructor.
Course Description
Software requirements elicitation, analysis and documentation. Team
process infrastructure and resource estimation to support appropriate
levels of quality. Software 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 CSC 402, the focus is placed on process - not tools.
The tools we may use are:
Group Project
All of the work in CSC402 is connected to a three term (one year)
project. You will work in a group to carry out each phase of the
project.
The project itself will have to meet standards of the Instructor, the Customer and the 405 Instructor. General project standards (to be updated) are here: Overall Project Standards
2 Minute TalksNote 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
TBD, though my plan is for a midterm and final. However, you will be asked to write a self-evaluation twice during the quarter.
Grading
All grading in CSC 402 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 mature in
software engineering (requirements 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 to actually produce a quality requirements document
(defined throughout the course).
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 client, each member of the group intending to continue in the 405 / 406 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".
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. Most deadlines are rarely absolute; if you are
having
a problem, discuss it; this advice applies to the workplace as well as
any
college class.
For CSC 402, 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 Falcon 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 402 student calling!"
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.