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