CS 147: Team Project Development and Professional Ethics Instructor: Prof. C. Dianne Martin Tompkins Hall, Room 105 Phone: (202) 994-8675 dmartin@gwu.edu Office Hours: M, W 3-5 PM or by appointment GTA: Ingrid Mihai, ingrid@gwu.edu Description: Developing a large software project using a team approach. User interface and interface standards. Integration and testing of modules. Social impact analysis. Professional code of ethics. Intellectual property; computer crime and hackers. Oral presentation and demonstration of the project. Prerequisite or co-requisite: CSci 143 or permission of instructor. Objectives for students: Read! Think! Speak! Write! Program! Work in a team! 1. Work on a team to design, program, test and release a webservices application for a client 2. Develop ethical analysis skills to evaluate the design / implementation of computer systems 3. Develop social analysis skills to evaluate the social impact of computer systems in context 4. Use professional codes of ethics in decision-making 5. Improve written and spoken communication skills (This is a CS WID course.) Required Textbooks: Baase, Sara. (Third Edition). A Gift of Fire: Social, Legal and Ethical Issues of Computing. Prentice Hall, 2007, ISBN: 0-13-978-0-13-601918-3. Henry, Joel. Software Project Management: A Real-World Guide to Success. Addison-Wesley, 2004, ISBN: 0-201-75865-2 Course Evaluation Criteria Ethics Scenario Evaluation Science Fiction Report Recitation Section Participation Team Programming Project Written Report / Impact Analysis of Project Midterm Exam Final Exam Extra Credit: Current Issue Critiques (up to two) 10% 10% 10% 30% 15% 10% 15% 5% each Note: All examinations, papers, assignments, and graded work products are to be completed n conformance with The George Washington University Code of Academic Integrity. For details, see: http://www.gwu.edu/~ntegrity/code.html Description of CS 147 Assignments Ethics Scenario Evaluation (10%): Evaluate an ethical scenario twice - once from the viewpoint of your personal ethical framework and once using the Code of Ethics of a professional society; then compare and contrast the two evaluations (total of 4-5 pages). Science Fiction Report (10%): Read one science fiction short story or book or watch one science fiction film that presents a point of view about the relationship between technology and humans. Prepare a 3-4 page written report describing the point of view and your reaction to that point of view and also present an oral report to your discussion group. Recitation Section Participation (10%): Attendance will be taken each week during the first 10 minutes of the Recitation Section. Each student will be graded based upon active involvement in the discussion. This means preparing the draft products due related to the SDLC and participating in peer review of them. Note: You will NOT get an A in this class if you do not attend Recitations. Team Programming Project (30%): This is a team project in which you will work in teams of four- five students with an organization to develop a web-based application to help carry out the organizational mission. The organization’s staff will work with you to define the specifications for the application, to help to test the system and to provide an evaluation of the final product. You will receive extra points if the application uses a database and / or a secure login system. Your final project will include a working project, a user’s manual and a complete SDLC document as part of the written report. Written Report / Impact Analysis of Project (15%): A significant part of this project will also include a comprehensive analysis of the social impact of the application you develop as it is used by the organization in the actual work environment. It will include an executive summary, description of the system, analysis of the use, impact, and ethical concerns of the system, a set of recommendations, references to literature related to these issues, and an appendix describing your data and data collection methods. As a team you will develop a report and present an oral report to the class about your application and its impact in the organization. Midterm/Final Exam (10% /15%): Questions are based upon readings from the text and handouts and class discussions and will include multiple choice, true-false, and essay questions. Current Issue Critique (5 points extra credit each, two at most): During the semester you will be informed about special out-of-class events or hot topics (lectures, exhibits, conferences, newspaper or magazine articles, URL's to relevant websites) dealing with current societal issues related to this course. You may report on up to two of these events. You are to turn in a 2-page report containing a summary of the issue or event and your reaction to it. The professor will provide a list of extra credit topics. Lecture assignments due: start of the Thursday lecture Team Project assignments due: rough draft in recitation; electronically by 5 PM Friday. Late assignments: turned in by Sunday 5 PM - 1/2 credit; after Sunday 5 PM, NO credit CS 147 Syllabus Lectures (T, 3:30- 6:00 pm, 1957 E ST, room 213) Recitations (T, 12:45-2:00 pm, TOMP 410; Th, 9:35-10:50 am, TOMP 410) Week 1 Jan. 15 Lectures: Course Overview, Tools as Social Artifacts Defining the Social Impact Issues Read Baase, chapt. 1; Henry, chapt. 1, 2 Recitations: Java tutorial – servlets, sockets Week 2 Jan. 22 Ethics at Work: Professional Codes of Ethics Skill: Ethics scenario analysis Read Baase, chapt. 9, Henry, chapt. 3, 4, 5 Week 3 Jan. 29 Software Project Management Skills: Leadership and teamwork Read Henry, chapt. 9 Week 4 Feb. 5 Privacy and Information Skills: Writing a business plan/requirements Read Baase, chapt. 2, Henry, chapt. 8 Ethics Scenario Analysis due Privacy discussion question Week 5 Feb. 12 Freedom of Speech and the Internet Skill: Needs assessment / data gathering Read Baase, chapt. 3, Henry, chapts. 10-12 Free speech discussion question Requirements Analysis Draft Week 6 Feb. 19 Computers, AI, and Robotics in Fiction AI discussion question Public Attitudes about Computers Design Document Draft Skills: Usability Data/ User Interface Design Read paper: The Myth of the Awesome Thinking Machine Week 7 Feb. 26 Midterm Exam Team planning / work session SW specs Draft/Testing Plan Draft Week 8 March 4 Oral Reports/ class discussion of Sci Fi Reports Read: Henry, chapt. 13 Science Fiction Report due Sci Fi discussion question Testing Plan Draft Week 9 Case Study: Electronic Voting Team Work Session Skill: Technical Writing: organization of technical reports Henry, chapt. 14-15 Implementation Plan Draft March 11 Java tutorial- JSP Form teams – team building exercises Spring Break March 15-23 Week 10 March 25 Interim Reports on Projects in class New Age of Work: Read Baase Chapt.6 Computer work discussion Training Plan Draft Week 11 April 1 Intellectual Property Defined, Redefined Read Baase, chapt. 4 Henry, chapt. 16 Intellectual property discussion Maintenance Plan Draft Week 12 April 8 Computer Security / Computer Crime Identity Theft; Read Baase, chapt. 5 Skill: Developing the security plan Computer crime discussion Social Impact Analysis first draft Week 13 April 15 Can We Trust the Computer - Reliability Issues Read Baase, chapt. 8; Henry, chapt. 17 Skill: Oral Presentations: Organize and prepare Week 14: April 22 Internet Regulation and Governance Issues Team Project work Evaluating Information, Digital Divide, Read Baase, chapt. 7 Extra Credit Social Impact Critiques due/ oral discussion Week 15: April 29 Final Oral Presentations of Project Friday, May 2: Final report due to Prof. Martin by 5 pm Final Exam Tuesday, May 6, 3-5 pm Computer reliability discussion Security Plan Draft Post Mortem Analysis 1957 E Street. Room 213 Assessment Requirements for Assignments Ethics Scenario Evaluation (10%) Purpose: An important purpose of this course is enable you to develop analysis skills to make decisions on ethical issues that may arise related to computer systems that you develop and implement in the future. An effective way to do that is to analyze hypothetical situations or scenarios that present ethical dilemma based upon several criteria. Assignment: In this assignment you will be given a scenario to evaluate in four parts: 1. First provide a brief description of the scenario in your own words. State who all the stakeholders are and list all of the alternative actions that could have been taken (1 page). 2. Analyze the scenario from your own set of personal values (1 page). What is your metaphysical, epistemological and axiological view of the world as related to the notes from the second lecture on ethical frameworks? Answer the question “how do you think” rather than “what do you think.” State your reactions to the actions/decisions of the people in the scenario based upon your worldview. (You will not be graded upon your values, but upon how well you can state them as they relate to the scenario.) 3. Analyze the scenario using the Code of Ethics of a professional society stating the specific principles from the code that apply to the scenario and what the right course of actions are based upon that code (1 page). 4. Finally, you will compare and contrast the conclusions made in part 2 and part 3 (up to 1 page). Did your worldview differ with the professional code and how? Or was it similar and how? (It will help you to complete this part if you state which worldview you think the code is based upon.) Assessment of your paper: Your paper will be graded based upon how well you can support your arguments with carefully stated reasons derived from the philosophical frameworks and the codes of ethics that were presented in class and in the Baase textbook. You are expected to use correct English grammar and spelling. You will be penalized up to 5 points for grammatical errors and spelling mistakes, depending upon the severity and frequency of the errors. Select one of the following three scenarios to analyze: (1) Software Reliability: A software development company is developing a new software package for small businesses and individuals to compute the annual income tax owed. The package will incorporate the latest changes from the income tax laws. The software development team has told the president of the company that the product still has a few bugs, needs more testing, and won't be ready until March. He also knows that the first company to get this product to market is likely to capture the largest market share. The company widely advertised the product for the past six months and stated that it would be released in January, 2008 in time for the 2008 tax preparation. He makes the decision to release version 1.0 of product in January to beat out the competition. The package is shrink-wrapped with a disclaimer of responsibility for errors that might result from use of the product. The company expects to receive a few complaints, questions and suggestions for modification. The company plans to use these to make changes and eventually issue an undated, improved and fully debugged version by June for the following tax year. The president argues that this is general industry policy and that anyone who buys the 1.0 version of a product knows this. Because of the bugs, a number of users filed incorrect tax returns and were penalized by the IRS. (From Communications of the ACM, February, 1993) (2) Privacy: A software engineer has started her own consulting business. She has been so successful that she now has 10 people working for her and a number of excellent clients. Their consulting work included advising on how to put together networks, how to design database management systems, and how to provide network security. Presently she is designing a web-based database system for the personnel office of a medium-sized company. She has involved the client in the design process, informing the CEO, the director of I'T, and the director of personnel about the progress of the system. It is now time to make decisions about the kind and extent of the security to build in to the system. She has described several options to the client. Because the system is going to cost more than they planned, the client has decided to opt for a less secure system. The software engineer believes that the data they will be storing is extremely sensitive personnel information, such as performance evaluations, salary data, medical records for insurance filings, and so on. With weak security, it may be possible for company employees to gain access to this data as well as for hackers to break into it through the web. She feels strongly that the system should be much more secure. She tries to explain the risks, but the CEO and his staff all agree that the less expensive, less secure solution will be fine. What should she do? (From Communications of the ACM, February, 1993) (3) Intellectual Property: A programmer, working on a sophisticated data mining package, is trying to write an algorithm to do intelligent searches across multiple databases. Programmers in this company are encouraged to write about their work and publish their algorithms in professional journals. After months of tedious programming, the programmer finds himself stuck on one part of the problem. His manager, not realizing the complexity of the problem, wants the job completed within the next few days. The programmer remembers that a co-worker had written an article about a similar problem and given him the source code from an earlier version of a commercial software package developed by another company. On looking at those programs, he sees two areas of code that could be incorporated into his program. He incorporates the segments of code from the co-worker's article and from the commercial package into the program, but does not tell anyone or mention it in the documentation. The program works perfectly and is delivered a day ahead of schedule. Science Fiction Report Guidelines (10 %) Purpose: You are to read a science book or short story or view a science fiction movie. The purpose of this assignment is to examine how technology is portrayed to the public through fiction. Is it presented by the author as a good, evil or neutral force in society? It is presented as being under human control or evolving on its own? The technology discussed does not have to be imaginary or futuristic - the book could have been written a century ago about technology that now exists. In that case, it would be interesting to discuss how the view of the author matches with what actually happened with the technology. Assignment: The actual report consists of two parts: a 3--minute (well-organized!) oral report to be given during the lecture session and a 3-4 page written report. The format of the written report is as follows: 1. Briefly summarize the story. Don’t give all of the plot details. 2. State the social impact issues that the story addressed in the context of this course. 3. State the view of the author regarding the particular technology used in the story good, evil, neutral, in control, etc. 4. State your reactions to that view - do you agree or disagree with the author and why? 5. You are expected to use correct English grammar and spelling. You will be penalized up to 5 points for grammatical errors and spelling mistakes, depending upon the severity and frequency of the errors. You will be graded on good writing and intellectual insight on the issue. Sample list of Science Fiction works for CS 147 (you are not limited to this list.) Classic Books: George Orwell. 1984 Mary Shelley. Frankenstein H. G. Wells. The Time Machine Jules Verne. Paris in the Twentieth Century (old manuscript discovered and published in 1998) More Recent Books: William Gibson: Neuromancer; Mona Lisa Overdrive Bruce Sterling: Islands in the Net William Gibson and Bruce Sterling: The Difference Engine (brilliant!) Neal Stephenson: The Diamond Age, Snowcrash, Cryptonomicon James Hogan: Two Faces of Tomorrow; Thrice Upon a Time Isaac Asimov: any of his robot or foundation books or short stories Robert Heinlein: The Moon is a Harsh Mistress; Friday Movies: 1926 silent film: Metropolis (a real classic!) 2001 Dr. Strangelove Blade Runner Total Recall Wargames Sneakers The Net Woody Allen’s Sleeper The Matrix A.I. Bicentennial Man Minority Report The Systems Development Lifecycle (SDLC) Process For the project you have chosen, you will be traveling through the SDLC. At each phase of the SDLC, certain documents are required for review. In a lot of projects, each document is reviewed by clients to ensure that the process is going along according to spec. Larger scale projects particularly use this method as checkpoints throughout the process and included expanded SDLC components such as internal and external design documents and extensive training plans that include budgets and travel dates. The organization you are working with may or may not request these documents, but it is an important part of systems development. YOU, as analyst, may not always be with the client and, therefore, should leave some documentation for future analysts to use as a reference, as well as your clients. The following is list of deliverables during your short-term project. The component descriptions of each document are also provided, but you are not limited to these components. The length of each document varies based on your project scope. It could be short (several pages) or long, but must adequately explain the phase of SDLC process for your site. There may be additional components that are specific to your client site that need to be included in your SDLC document, and there may be some suggested components that do not apply. Again, YOU ARE NOT LIMITED by the suggestions below, add items that you think are needed for your project DOCUMENT BY SDLC PHASE REQUIREMENTS ANALYSIS Mission of Organization Intended social impact on the organization of work your doing Description of Project Intended Target User Area Intended advantages of systems Current systems environment. Current client standards for systems development (if any) Project Timeline (rough—includes all phases of SDLC) Target technical environment (NOS, LAN topology, etc.) Interview Questionnaire (clients may give you requirements by further probing is always needed.) Requirement (user requests) Grid Level of security anticipated for system Preliminary Cost Benefit Analysis (CBA) – Though the “cost” is not in terms of labor hours, think about what impact the changes have on your client’s business, both positive and negative. Preliminary Risk Management Plan – what risks are presented and how will they be monitored and mitigated. DESIGN AND DEVELOPMENT DOCUMENT How are you going to structure any databases? What programming tool will you use? (If this has been decided already, or you are enhancing an existing system, say so, and include how decisions for enhancement were made and why.) How will screens be designed and features programmed? What will the system ‘look’ like? This document is more specifically shows the development team how user requirements will be coded/carried out in the dev. process. Document Due Date Week 5 Week 6 DOCUMENT BY SDLC PHASE SOFTWARE SPECIFICATION Describe, in detail, the development environment you are working in and what software will be used to create the final product. Include information about the network, NOS, for the development environment. Also included in this document should be a description of the USER environment. What are the differences in the two environments? Are there any anticipated problems with systems or software compatibility when migrating to the user environment from the development area? Document Due Date Week 7 TESTING PLAN How do you plan on verifying that your design and development system is ‘ok’ with the users or that the program is ‘bug free’? Did you encounter any ‘new requests’ from the users while you were testing? How did you handle that? What are the results of the testing? What errors were found and were they fixed? Did you assigned priority levels to bugs found or were all changes do-able and incorporated? What were they? (A table works well for this. You may want to present your users with a list of requested features from the Req. Analysis document and use that as a testing document. Week 8 IMPLEMENTATION PLAN This document may be short if the system is installed in one office location on a small network or desktop environment. However, the implications of even small-scale systems should be addressed explicitly in this document. Think about your client’s current systems backup scheme and how your system will be part of that. How will that be implemented? Week 9 TRAINING AND DOCUMENTATION PLAN Implementation plans also should include plans for USER TRAINING AND USER DOCUMENTATION --What are your plans to help users with training and/or user documentation? Will there be additional help available? Is the help electronic, printed, or both? How is training approached – computer-based, live, one-onone? Week 10 MAINTENANCE PLAN Including listing of database structures, location of code, listing of code, how upgrades or future requests will be handled, how is the system backed-up, how do your users contact you. This is also helpful to your client in the event that you are no longer available for consultation (e.g., you return to school, move out of the area, etc.). It is also advantageous to have printouts of the final code or at a minimum provide a final, clean copy of the code on CD for archive/backup purposes. A Data Dictionary of database elements and descriptions is also required (if applicable to your project). Week 11 DOCUMENT BY SDLC PHASE SOCIAL AND ETHICAL IMPACT ANALYSIS Comprehensive analysis of the social impact of the application Document Due Date Week 12 you develop as it will be used by the organization in the actual work environment. This will include a description of the system, analysis of the use, social impact, and ethical concerns that could be raised by use of the system, and a set of recommendations for dealing with those issues. Include references from research literature related to the particular social impact and ethical issues that might be raised by your project. SECURITY PLAN What is the current physical and systems environment security features? Are there any current client standards in place for security? (How will your work ‘fit in’ to that plan?) Are you creating a standard for them? What are your recommendations for physical and systems security for this client? Risk Monitoring, Management, and Mitigation (RMMM): Since the preliminary look at the system during requirements analysis, what has changed about the risk mitigation? What other issues have come to light? FINAL SDLC DOCUMENT All documents in one file, with a cover page and table of contents that is ready for delivery to your client. Remember to go back and edit any documents for clarity or incorporate more information as you see fit or any instructor comments you feel should be included. Most importantly, your personal reflections on this experience with the organization, the SDLC process, and the social impact statement are needed. Did you meet the requirements? Were the intended advantages to the user achieved? What were their reactions and was there any conflict that needed to be resolved (how?)? Consider what went right and what went wrong and your opinions about the system and its advantages and disadvantages in the client setting. INCLUDE YOUR WORK LOGS – each member will keep a log of their work – what they worked on, what day, how much time did they spend. You will submit individual work logs (“timesheets”) as well as an overall team log show who worked on what pieces, date, number of hours, etc. (See attached example). Week 13 Week 15 IN LECTURE with your presentation The document from each phase of the project will be part of a final, larger document and will be turned in at the end of the course as the project report. Comments will be provided throughout the semester so that you can improve on them for the final version. Please review the comments and incorporate what you think is appropriate into that document for the final product. What you should have at the end of the project is a nice set of documentation to leave with your client/users for future systems development needs. DOCUMENT FORMAT: Please double space and use 1” margins all the way around. Clearly mark each section and, for the final document, provide a table of contents and a cover page. These are formal business documents and the writing style should reflect that (including any references that are helpful) so that the language is clear and concise to your clients –and usable—long after you leave the project. However, alternate styles can be considered… and helpful! For example, at your client site, programmers and analysts would be looking at the specs, design, etc. documents while users will be reading the training and documentation (in most cases). Remember your audience! As you write, think about who will be reading, using, and trying to do their job from this comprehensive document. Recitation Notes: RECITATION ATTENDANCE IS REQUIRED. You cannot get an A in this course if you do not attend the recitations. You cannot switch between recitation sections as the team you are assigned to will attend the same recitation. TEAM ASSIGNMENTS are due on the FRIDAY of the week due by 5 PM Eastern (United States) Standard Time (EST). Assignments submitted by the following Sunday at 5 PM will receive a 50% grade penalty. Assignments received after Sunday at 5 PM (EST) will not be graded and will receive a zero. ALL TEAM ASSIGNMENTS MUST BE SUBMITTED ELECTRONICALLY TO THE RECITATION TA’S DROPBOX. TIME LOGS: Each member of your team will be required to keep a log of the time spent on your project. These individual logs should be attached to your final SDLC document. Also, your team is required to make a total team log indicating how much time was spent on each phase of the project, who did what, etc. An example log is attached. Though each member has a specific role on the team, that doesn’t mean that each person can’t assist with other roles (see example below). TIME LOG FOR: Johanna Programma_____________ TEAM ROLE: ________Technical Writer ____________ Date Work Accomplished SDLC Phase 1/2/04 1/4/04 1/5/04 Created Requirements analysis doc outline Met with team on coding procedures Coded initial screen design. Loaded to test server. Team status meeting 1/7/04 1/8/04 Total Hours R/A Design Dev. Time Start/Stop 5-8 pm 11 am – 12 pm 2-4 pm --- 1-2 pm 1 3 1 2