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.










Course Objectives

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