R N C

advertisement
Request for New Course
EASTERN MICHIGAN UNIVERSITY
DIVISION OF ACADEMIC AFFAIRS
REQUEST FOR NEW COURSE
DEPARTMENT/SCHOOL: ____COMPUTER SCIENCE__ __
COLLEGE:
ARTS AND SCIENCES
CONTACT PERSON: __________BILL MCMILLAN________________________________________________
CONTACT PHONE:
7-0110
CONTACT EMAIL:
WMCMILLAN@EMICH.EDU
REQUESTED START DATE: TERM____FALL___YEAR___2013__
A. Rationale/Justification for the Course
Many professionals from a wide variety of disciplines who have little or no education in software engineering are
engineering software or are supervising the engineering of software. They might be self-taught programmers or be
using programming skills gained in low-level computing classes. They might be using a high-level tool that generates
code from actions taken in a graphical user interface. They might manage the creation of a web site, app, or other
software product that is implemented by a technical specialist. In all these cases, the person is making decisions about
software engineering that will affect the experiences of clients or customers, impact long-term operation of
organizations, incur costs over the life of the software, and even put people’s safety and financial resources at risk.
This is similar to a non-specialist making key engineering decisions about, e.g., the design of a bridge to carry auto
traffic over a river. The purpose of this course is to acquaint non-computer scientists with fundamentals of software
engineering so that they will make decisions about software that lead to higher quality, safer, and more maintainable
systems.
Our upper-level course in software engineering, COSC 481, is for computer science majors and requires extensive
background in programming, algorithms, formal models of computation, design notations, data representation, database
design, and other advanced topics. COSC 107 is to COSC 481 what a 100-level course in, say, chemistry is to an
advanced course in chemistry. It will present essential ideas in a less technical way and impart fundamental, useful
skills. Simply making students aware of critical issues in software engineering will make them far more effective in
making decisions about software acquisition or design than will their seat-of-the-pants intuition.
B. Course Information
1. Subject Code and Course Number:
COSC 107
2. Course Title:
Introduction to Software Engineering
3. Credit Hours:
3
4. Repeatable for Credit? Yes_______
No__X__
If “Yes”, how many total credits may be earned?_______
5. Catalog Description (Limit to approximately 50 words.):
For students in any discipline who will make decisions about the acquisition or design of software, this course imparts
basic knowledge of and skills in software engineering, including software life cycles, requirements engineering, risk
assessment, interaction methods, software structures, delivery methods, system integration, verification, and validation.
No programming is required.
Miller, New Course
Sept. 09
New Course Form
6. Method of Delivery (Check all that apply.)
a. Standard (lecture/lab) X
On Campus
X
Off Campus
b. Fully Online
c. Hybrid/ Web Enhanced
7. Grading Mode:
Normal (A-E)
X
Credit/No Credit
8. Prerequisites: Courses that MUST be completed before a student can take this course. (List by Subject Code, Number and Title.)
None
9. Concurrent Prerequisites:
Code, Number and Title.)
Courses listed in #5 that MAY also be taken at the same time as a student is taking this course. (List by Subject
None
10. Corequisites: Courses that MUST be taken at the same time as a student in taking this course.
(List by Subject Code, Number and
Title.)
None
11. Equivalent Courses. A student may not earn credit for both a course and its equivalent. A course will count as a repeat if an equivalent
course has already been taken. (List by Subject Code, Number and Title)
None
12. Course Restrictions:
a. Restriction by College. Is admission to a specific College Required?
College of Business
Yes
No
X
College of Education
Yes
No
X
b. Restriction by Major/Program. Will only students in certain majors/programs be allowed to take this course?
Yes
No
X
If “Yes”, list the majors/programs
c. Restriction by Class Level Check all those who will be allowed to take the course:
Undergraduate
Miller, New Course
Sept. ‘09
Graduate
All undergraduates__X___
All graduate students____
Freshperson
Certificate
Sophomore
Masters
Page 2 of 5
New Course Form
Junior
Specialist
Senior
Doctoral
Second Bachelor____X____
UG Degree Pending_____
Post-Bac. Tchr. Cert._____
Low GPA Admit_______
Note: If this is a 400-level course to be offered for graduate credit, attach Approval Form for 400-level Course for Graduate
Credit. Only “Approved for Graduate Credit” undergraduate courses may be included on graduate programs of study.
Note: Only 500-level graduate courses can be taken by undergraduate students. Undergraduate students may not register for
600-level courses
d. Restriction by Permission. Will Departmental Permission be required?
Yes
No
(Note: Department permission requires the department to enter authorization for every student registering.)
13. Will the course be offered as part of the General Education Program?
Yes
No
X
X
If “Yes”, attach Request for Inclusion of a Course in the General Education Program: Education for Participation in the Global Community
form. Note: All new courses proposed for inclusion in this program will be reviewed by the General Education Advisory Committee. If this
course is NOT approved for inclusion in the General Education program, will it still be offered? Yes
No
C. Relationship to Existing Courses
Within the Department:
14. Will this course will be a requirement or restricted elective in any existing program(s)? Yes
No
X
If “Yes”, list the programs and attach a copy of the programs that clearly shows the place the new course will have in the curriculum.
Program
Required
Restricted Elective
Program
Required
Restricted Elective
15. Will this course replace an existing course? Yes
No
X
16. (Complete only if the answer to #15 is “Yes.”)
a. Subject Code, Number and Title of course to be replaced:
b. Will the course to be replaced be deleted?
Yes
No
17. (Complete only if the answer #16b is “Yes.”) If the replaced course is to be deleted, it is not necessary to submit a Request for
Graduate and Undergraduate Course Deletion.
a. When is the last time it will be offered?
Term
Year
b. Is the course to be deleted required by programs in other departments?
Contact the Course and Program Development Office if necessary.
Yes
No
c. If “Yes”, do the affected departments support this change?
Yes
No
If “Yes”, attach letters of support. If “No”, attach letters from the affected department explaining the lack of support, if available .
Outside the Department: The following information must be provided. Contact the Course and Program Development office for
assistance if necessary.
Miller, New Course
Sept. ‘09
Page 3 of 5
New Course Form
18. Are there similar courses offered in other University Departments? Yes
If “Yes”, list courses by Subject Code, Number and Title
No
X
19. If similar courses exist, do the departments in which they are offered support the proposed course?
Yes
No
If “Yes”, attach letters of support from the affected departments. If “No”, attach letters from the affected department explaining the lack of
support, if available.
D. Course Requirements
20. Attach a detailed Sample Course Syllabus including:
a.
b.
c.
d.
e.
f.
g.
h.
Course goals, objectives and/or student learning outcomes
Outline of the content to be covered
Student assignments including presentations, research papers, exams, etc.
Method of evaluation
Grading scale (if a graduate course, include graduate grading scale)
Special requirements
Bibliography, supplemental reading list
Other pertinent information.
NOTE: COURSES BEING PROPOSED FOR INCLUSION IN THE EDUCATION FOR PARTICIPATION IN THE GLOBAL
COMMUNITY PROGRAM MUST USE THE SYLLABUS TEMPLATE PROVIDED BY THE GENERAL EDUCATION
ADVISORY COMMITTEE. THE TEMPLATE IS ATTACHED TO THE REQUEST FOR INCLUSION OF A COURSE IN THE
GENERAL EDUCATION PROGRAM: EDUCATION FOR PARTICIPATION IN THE GLOBAL COMMUNITY FORM.
E. Cost Analysis (Complete only if the course will require additional University resources.
Fill in Estimated Resources for the
sponsoring department(s). Attach separate estimates for other affected departments.)
Estimated Resources:
Year One
Year Two
Year Three
Faculty / Staff
$_________
$_________
$_________
SS&M
$_________
$_________
$_________
Equipment
$_________
$_________
$_________
Total
$____0_____
$____0_____
$____0_____
F. Action of the Department/School and College
1. Department/School
Vote of faculty: For ____10____
[Signed] Augustine Ikeji
Against ____0_____
Abstentions ____1_____
(Enter the number of votes cast in each category.)
1/7/2013
Department Head/School Director Signature
Miller, New Course
Sept. ‘09
Date
Page 4 of 5
New Course Form
2. College/Graduate School
A. College
College Dean Signature
Date
B. Graduate School (if Graduate Course)
Graduate Dean Signature
Date
G. Approval
Associate Vice-President for Academic Programming Signature
Miller, New Course
Sept. ‘09
Date
Page 5 of 5
COSC 107 Introduction to Software Engineering
Master Syllabus
Department of Computer Science
December 2012
Catalog description
For students in any discipline who will make decisions about the acquisition or design of
software, this course imparts basic knowledge of and skills in software engineering,
including software life cycles, requirements engineering, risk assessment, interaction
methods, software structures, delivery methods, system integration, verification, and
validation. No programming is required.
a. Course goals, objectives and/or student learning outcomes
Students will be able to:
1. Explain the differences between computer programming and software engineering.
2. Explain the necessity for good software engineering and make a coherent, forceful
argument for its use within the context of their own discipline or professional setting.
3. Describe the features of, differences between, and advantages of various software lifecycle models, such as waterfall, incremental, agile, and others.
4. Gather high-level functional and non-functional requirements from users.
5. Enumerate major risks inherent in the engineering and use of a particular software system
and suggest relevant mitigation techniques.
6. Suggest multiple ways to decompose a particular complex system into functionally
cohesive components.
7. Design a simple database to support an application.
8. On the basis of requirements, choose from alternate styles of user interaction, such as
menu-driven, command driven, form-filling, etc.
9. Create simple versions of the following kinds of UML diagrams for a particular system:
Use-case, state, association, class.
10. For a given application, justify a choice from among several deployment models, such as
local installation on a computer, mobile device app, self-contained web site, serviceoriented architecture, cloud-based system, or a combination.
11. State challenges of integrating a new software component into an existing software
infrastructure and outline a plan to accomplish the integration of a particular system.
12. Create a verification and validation plan for a new software system or component.
13. Devise a plan for the long-term maintenance of a particular software system.
14. Using succinct, clear prose, document all aspects of planning and design addressed in this
course.
b. Outline of the content to be covered
Week
1
2
3
4
Topic
About software engineering
Life-cycle models
Requirements gathering and documentation
Handling risks in system design, implementation, and use
1
5
6-7
8
9
10-11
12
13-14
User interface design
UML diagrams, Architecture
Database design
System integration and deployment
Verification and validation
Maintenance of a software system
Presentation and discussion of projects
c. Student assignments including presentations, research papers, exams, etc.
Students will carry out the following kinds of exercises and projects:

Short homework and in-class exercises that reinforce lecture and reading material.
E.g.:
o Explain the differences in the way you would work when implementing A) a
personal web site to display information and photos related to a personal
hobby, and B) a web site for your local chapter of the Red Cross that would
inform members and the public about events, training, and service
opportunities. Explain why you would work differently for the two.
o Create a UML Use Case diagram for a tablet-based app that teaches young
kids a foreign language. Include as users the kids, their parents, and one other
user class. Assume that the app will keep records related to configuration and
kids’ progress through the lessons.
o Propose a tabular database design for records of car trips an employee takes.
o Think of a kind of software development project for which a waterfall model
would be superior to an agile or incremental model.
o Select a web site or an application. Choose a task you can carry out with it
using a sequence of menu choices. Propose how this same sequence of steps
could be carried out instead by filling out an on-screen form.
o Suppose you work in an organization that uses a set of spreadsheets to manage
important information. For one complicated operation, you would like to use
a powerful and specialized product such as Quick Books or some other
advanced accounting tool. List and explain four challenges you would expect
to face in integrating your new tool with the existing spreadsheets.
o Interview another student in this class to gather high-level user requirements
for a software system. (The system will be assigned by the professor to the
student you interview.) Your summary should be about one to two singlespaced pages. Include user categories, major functions, and several nonfunctional requirements.
o Suppose you’re in charge of the design of a sonar-based fish-finder device to
be installed on fishing boats. Propose three major software classes that likely
would be useful for the device’s embedded software.
o A local volunteer council has created a web site and backend software to
make known the volunteer opportunities in the area, collect information
through form filling about potential volunteers, and refer volunteers to
organizations via electronic mail. Given a list of explicit requirements,
outline a verification and validation plan for this system. Assume you have
about 40 person hours to expend in V & V.
2
o For a given software product, list the advantages and disadvantages of
deploying it as A) an app, and B) a cloud-based system.

Medium-sized, realistic problems in software engineering that require thought,
analysis, synthesis of course topics, clear writing, and some creativity. E.g.:
o With a partner, interview an EMU employee about the requirements for a
hypothetical software system. Produce a four-page requirements document
and draw a UML Use Case diagram.
o Given a proposed class diagram for a software system, make suggestions for
its improvement. For example, consider whether a class should be a subclass
of another, if a function appears where an object class would be better,
whether there is a subclass that is really a part of its parent rather than a true
subset, whether there is an obvious redundancy, or other problem.
o Write an integration plan for including a new, custom-developed application
into a business that uses many spreadsheets to track its operations.
o Design a transcript database (a single table) for courses a student has taken at
EMU.
o For the web site of EMU’s Department of Computer Science, suggest a
maintenance plan. Feel free to ask department staff for information about the
site that will inform your maintenance plan.

An integrative project in which students exercise their software engineering
knowledge in order to plan a system relevant to their backgrounds and interest.
o Select a software product that would be of interest to you in your major or
personal life. During the last part of the term, produce the following for this
system, including justifications of your decisions:
1) Requirements document, including user categories, major functions,
non-functional requirements, a use-case diagram, simple state diagram,
suggested user interface style, and a discussion of potential risks.
2) Suggested development model.
3) Suggested deployment model.
4) High-level class diagram and/or database design.
5) Verification and validation plan.
6) Maintenance plan.

Poster or oral presentations of projects.
d. Method of evaluation
Exercises and projects will be evaluated on the basis of technical accuracy, completeness,
complexity, clarity, quality of presentation, and suitability to the problem. Typically a
midterm and final exam will be administered as well.
e. Grading scale
92%
90%
88%
82%
A
AB+
B
3
80%
78%
72%
70%
68%
62%
60%
BC+
C
CD+
D
D-
f. Special requirements
None.
g. Bibliography, supplemental reading list
A course pack of readings and introductory notes (the latter already written) will be
assembled and links to web-based resources provided.

Examples of web-based resources understandable by non-specialists
Introduction
http://www.authorstream.com/Presentation/nitin-39627-software-engineeringcis068-06-2-science-technology-ppt-powerpoint/
Introduction, L. N. Long
www.psu.edu/dept/csci/seminars/fallnotes/SWEintro.pdf
Introduction, L. Williams
http://agile.csc.ncsu.edu/SEMaterials/Introduction.pdf
History, M. Mahoney:
http://www.princeton.edu/~hos/mike/articles/sweroots.pdf
Requirements
http://searchsoftwarequality.techtarget.com/definition/requirements-analysis
http://www.essentialstrategies.com/services/analysis.htm
Requirements, R. Japenga
http://www.microtoolsinc.com/Howsrs.php
Risk, L Williams
http://agile.csc.ncsu.edu/SEMaterials/RiskManagement.pdf
UML
http://www.agilemodeling.com/essays/umlDiagrams.htm
http://creately.com/examples/UML-Diagrams
http://yuml.me/
User Interface Design, S. Ambler
http://www.ambysoft.com/essays/userInterfaceDesign.html
User Interface Design , A. Dillon
http://www.ischool.utexas.edu/~adillon/BookChapters/User%20Interface%20Des
ign_files/User%20Interface%20Design.htm
Relational Databases (part 1 of 6), B. Will
http://www.youtube.com/watch?v=QKgNjIEp_lI
Database Fundamentals, B. Brown
http://www.youtube.com/watch?v=xNJZYX6tpWU
Access 2010: Introduction to Databases,
http://www.youtube.com/watch?v=eXiCza050ug
4
Introduction to database design
http://www.datanamic.com/support/lt-dez005-introduction-db-modeling.html
Verification and Validation
http://www.critech.com/vv.htm
Verification and Validation, N. Parekh
http://www.buzzle.com/editorials/4-5-2005-68117.asp
Integration, M. Fowler,
http://www.martinfowler.com/articles/continuousIntegration.html
Integration
http://searchsoftwarequality.techtarget.com/definition/integration-testing
Maintenance, V. Hung
http://cnx.org/content/m14719/latest/

Journals with articles readable by non-specialists:
Communications of the ACM
Computer (from IEEE)
IEEE Software

References (textbooks for higher-level classes, with sections readable by nonspecialists):
Sommerville, I. (2011). Software Engineering, 9th Ed.. Addison-Wesley.
Pressman, R. (2009). Software Engineering: A Practitioner's Approach, 7th Ed.
McGaw-Hill.
5
Download