CSCE 240: INTRODUCTION TO SOFTWARE ENGINEERING
Catalog Course Description:
240—Introduction
to Software Engineering. (3) (Prereq: grade of C or better in CSCE 146) Fundamentals of
software design and development; software implementation strategies; object-oriented
design techniques; ethics in software development.
Prerequisite(s) By Topic:
Introductory programming and data structures
Textbook(s) and Other
Required Material:
Program
Development in Java, Barbara Liskov with John Guttag, Addison-Wesley, 2001.
Cyberethics:
Morality and Law in Cyberspace, Richard A. Spinello, Jones and Bartlett, 2000.
Computing Platforms: Unix
Course Objectives: {Assessment Methods Shown in
Braces}
1. Use abstraction mechanisms for
building individual program modules; {programming assignments and tests}
2. Design and implement large
programs in a modular fashion; {programming assignments and tests}
3. Participate in a team software
development effort; {programming assignment)
4. Estimate and track program size
and defects and effort expended to write programs; {PSP assignments and tests}
5. Discuss societal and ethical
issues as related to computing; {essay assignments and tests}
Topics Covered:
1. Introduction and overview (1 hour)
2. Java review (2 hours)
3. Procedural abstractions (1 hour)
4. Data abstractions (3 hours)
5. Iteration abstraction (2 hours)
6. Polymorphic abstraction (2 hours)
7. Type hierarchy (2 hours)
8. Software engineering life cycle (7 hours)
9. Ethical and societal issues in computing (12 hours)
10. Personal software process (6 hours)
11. Tests and postmortems (4 hours)
Laboratory Projects:
Five programs requiring one to two weeks
during the first eight weeks; a major team project during the last six weeks.
Syllabus Flexibility: Low. The Undergraduate Committee approves the choice of textbook and
syllabus.
Relationship of Course to
Program Outcomes:
The contribution of each course objective to meeting
the program outcomes is indicated with the scale:
3 = major contributor, 2 = moderate contributor, 1 = minor contributor. Blank if not related.
|
|
Program Outcomes |
||||||||||
|
1.
Logic & Math |
2.
Computing Fundamentals |
3.
Apply Computing Principles |
4.
Work on teams |
5.
Communicate Effectively |
6.
Liberal arts & Soc. Sciences |
7.
Basic Science and Lab Procedures |
8.
Learn New Tools & Processes |
9.
Employed upon Graduation |
10.
Application Area |
11.
Electronics and Digital Sys Design |
|
|
1. Use abstraction mechanisms for building
individual program modules |
|
3 |
3 |
|
|
|
|
|
2 |
|
|
|
2. Design and implement large
programs in a modular fashion (programming |
|
3 |
3 |
|
|
|
|
2 |
3 |
|
|
|
3. Participate in a team software development
effort |
|
|
|
3 |
|
|
|
|
3 |
|
|
|
4. Estimate and track program size and defects
and effort expended to write programs |
|
3 |
3 |
|
|
|
|
3 |
2 |
|
|
|
5. Discuss societal and ethical issues as
related to computing |
|
|
3 |
|
|
2 |
|
|
2 |
|
|
Estimated CSAB Category
Content:
Algorithms: 0
Data Structures: 0
Software Design: 2
hr
Concepts of
Programming Languages 0
Organization and
Architecture 0
Oral
and Written Communication:
At least one written report on ethical issues,
typically 5 – 7 pages.
Social
and Ethical Issues:
Discussion of software piracy, computer
crime, hazards of computers in the workplace, professional ethics, intellectual
property.
Theoretical
Content: none
Analysis
and Design:
Software life-cycle, verification
Class/Laboratory
Schedule:
Lecture: 3
periods of 50 minutes or 2 periods of 75 minutes per week
Course
Coordinator: Robert Cannon
Modification
and Approval History
Initial description, April 1999
Revised, April, 2001