CPE/CSC/EE/SE Programs Course Syllabus by icf1n7h


									                             CPE/CSC/EE/SE Programs Course Syllabus
                  CSC/CPE 307: Introduction to Software Engineering ( 4 credits )
Prepared by:      Gene Fisher, 12/14/07

Course Description:                 Requirements, specification, design, implementation, testing and
(2007-2009 Catalog)                 verification of large software systems. Study and use of the software
                                    process and software engineering methodologies; working in project
                                    teams. 3 lectures, 1 laboratory. Not open to students with credit in
                                    CSC/CPE 308.
Required/Elective:                                         CPE            CS             EE            SE
                                     Required                              X
                                     Elective               X
                                    NOTE: CS majors may take CSC 307 in place of CSC 308 and 309.
Prerequisite Courses:               Prerequisite: CSC/CPE 103 with a grade of C- or better, and CSC/CPE
Prerequisites by Topic:             Knowledge of computer science fundamentals, through data structures
                                    and medium-scale program development.
Textbook:                           - Guide to the Software Engineering Body of Knowledge,
(and/or other required material)      www.swebok.org
                                    - Other online course materials
References:                         - The Trac project, trac.edgewall.org
                                    - SVN Resources, subversion.tigris.org, svnbook.red-bean.com
                                    - Argo UML, argouml.tigris.org
                                    - design pattern tutorials, www.patterndepot.com/put/8/JavaPatterns.htm
Course Coordinator:                 Gene Fisher
URL (if any)                        www.csc.calpoly.edu/~djanzen/courses/307/

Course Goals/Learning Outcomes/Performance Criteria
- to learn skills required to produce and maintain a high-quality software product on time and within
- to know and execute principles and concepts of software requirements engineering, architecture, design,
  construction, testing, and maintenance
- to work effectively as a member of a team to meet project milestones
- to understand the software development lifecycle and apply a software process
- to understand and apply software metrics
- to gain experience with software configuration management
- to gain experience documenting a software-intensive system
- to effectively write and speak about software engineering

Course Assessment Methods
- midterm and final examinations
- class participation/discussion and quizzes
- assignments,/presentations/weekly timesheets
- project artifacts, activities, and presentation

Relationship of Course to EAC Program Outcomes
(H=high, M=medium, L=low, N=none; n/a=not applicable)

        3a      3b      3c     3d      3e       3f    3g     3h      3i     3j     3k      8l    8m         8n
CPE     L    H     H      M     H     M        H     M     M      L    H      N     L     N
EE     n/a   n/a   n/a    n/a   n/a   n/a      n/a   n/a   n/a   n/a   n/a   n/a   n/a   n/a
SE     n/a   n/a   n/a    n/a   n/a   n/a      n/a   n/a   n/a   n/a   n/a

Major Topics Covered: (number of hours each)
- definition of software engineering (1)
- requirements engineering (3)
- software architecture (3)
- software configuration management (1)
- software process (1)
- software design and design patterns (6)
- software construction (3)
- software testing (6)
- software quality (3)
- software maintenance (3)

Laboratory Projects and Schedule (specify number of weeks on each)
- team meetings (4)
- tool-use tutorials and exercises (2)
- project reviews (3)
- project presentations (1)

Contribution of Course to meeting EAC Category 5 Requirements
College-level mathematics and basic sciences: 0 credits
Engineering Topics (Science and/or Design):   4 credits
General education component:                  0 credits
Curriculum Category Content (specify hours per quarter)
   Area                       Core             Advanced    Area                       Core       Advanced
   Algorithms                  0                  0        Data Structures             0            0
   Software Design             9                  0        Prog. Languages             0            0
   Comp. Arch.                 0                  0

Oral and Written Communications
Communication is a significant component of the course. The specific aspects of communication are:
 - technical team meetings
 - project reviews
 - final project oral presentation
 - written requirements and software architecture documents

Social and Ethical Issues
There is some discussion of these issues, but this area is not a major focus of the course.

Theoretical Content
There is no significant theoretical content.

Problem Analysis
Problem analysis is a major objective of the course. Students analyze the requirements of a customer to
produce a requirements document. Students then analyze the produced requirements to determine
strategies for concrete program design, construction, and testing.

Solution Design
Solution design is a major objective of the course. Students produce a software design, construct a
program implementation from the design, and test the program solution thoroughly.

To top