Course Materials
Click any assignment to hide/show the details (or download the pdf version below)
Assignments
This assignment involves choosing a particular computer-related thesis from the book you've chosen to read for CSC 300 and performing a critical analysis of that thesis. There is really no "right" or "wrong" to your conclusion, it must just be supported by rational reasoning and logic and backed up by referenced (cited) facts and principles. Do not utilize conclusory phrases such as "obviously" or "clearly" when concluding unless you have already utilized referenced facts and logic to make your conclusion crystal clear.
Your writing must be clear, concise and readable. Paragraphs should be well constructed and transitions meaningful and clear.
Citations must be in a standard format (MLA, APA, IEEE, ACM, etc.) for this assignment. The rest of the paper must also have consistent formatting in whatever style you choose.
Note that if your analysis is shorter than 1500 words it will receive a failing grade. Note also that "filler" materials such as long quotes or irrelevant discussion will be subtracted from your word count. The total word count includes meaningful analysis only.
List of Eligible Books to Read (All exceptions must be approved well in advance):
Yourdon, "Death March" Prentice-Hall
Simon, "The Sciences of the Artificial" MIT Press
Jackson, "Software Requirements and Specifications" Addison-Wesley
Petroski, "To Engineer is Human" Vintage
Landaur, "The Trouble with Computers" MIT Press
DeMarch, Lister, "Peopleware" Dorset House
Weinberg, "The Psychology of Computer Programming" Dorset House
Brooks, "The Mythical Man-Month"
Lessig, "Free Culture: The Nature and Future of Creativity"
Rawlins, "Slaves of the Machine" MIT Press
Feynman, "What do You Care What Other People Think?" Norton
Carnes, Delmonico, Griffin, "In the Shadows of the Net" Hazleden
FINAL VERSION. See here for a past example (got a very good grade but it's not perfect!)
Your proposal must include the following sections:
1. Cover page including title, name, date, "CSC 300." with An abstract on it: one or two paragraphs to describe in very general terms the motivating facts, the question asked, one or two arguments and your ultimate answer and the basic principles upon which it rests. This would be the 30 second summary you might give your mother or friend.
2. Known facts that are not disputed that lead to your question. Do not judge these facts or make anything like an argument for an answer in here. Just note the facts that give us the general background and end them with the facts leading to the controversy you are interested in. The reader should naturally be asking the question you'll be asking by that point in your paper. In general, attach your facts to a specific case, the more specific and detailed the facts, the better for your analysis. Cite all facts to their sources.
3. Your research question - this is the ethical question you are interested in answering. It should be one simple sentence and lead to a yes/no answer. It needs to be very narrowly focused, specific, and not abstract at all. It's best to question a detailed case in the general area of your interest. Open ended questions are very hard to answer.
4. Extant arguments - this is where you gather the arguments made by others interested in the same question. No judgments, just repeat their arguments for the answer in the best possible light from the arguer's perspective. Cover both sides of your question (the "yes" side and the "no" side) to get a complete picture of how others are thinking about it. Do not include any general ethical principles in here unless they are explicitly written up in the arguments. Cite all arguments to their sources.
6. Applicable analytic principles - give a list of the basic ethical (and other) principles you'll rely on to come up with your analysis, include several explicit principles from the SE Code of Ethics, deontological principles, utilitarianism (rule-utilarianism) as well as others that will aid you. Indicate generally how they apply to your specific case. Cite any additional facts or principles you'll need. Cite to sources for the principles you list.
7. Abstract your expected analysis - Give a short abstract of the basics you expect to analyze and present in your paper. Divide it into sections that make sense for your work.
One way would be to:
a) start with deontological perspectives as a section where you analyze those arguments based on the inherent ethics of the act itself rather than the results or tradeoffs; then,
b) use a utilitarian perspective and list the appropriate analyses of the tradeoffs and stakeholders to define the most desired results and how to get them. Be explicit about the tradeoffs (what value is balanced against what other value, which stakeholders win, which stakeholders lose...) What is the "utility" in "utilitarian" in your case - what value do you want to advance the most (derived from the general utilitarian "happiness")? How do you maximize (or optimize) it?
Note that the SE Code should be the center of your ethical analysis (and remember that it includes both deontological and utilitarian [and more] principles you can utilize).
Estimate where you'll end up for your answer (you can change your mind in the final paper!). Keep referencing sources for any additional facts, quotes, or other information you might use here.
8. Annotated bibliography - show the sources you've relied upon, give a full reference and give at least a sentence or two summary about why the source is (or is not) relevant or helpful to your analysis. You must have at least 5 primary sources referenced here and wikipedia is not acceptable. General web sources are OK, but are secondary. Primary sources are newspapers, journals, edited and reviewed print journals - peer reviewed sources are best.
Pseudo-final Version (Use this, obviously, but let us know of issues so we can revise it and the final draft spec).
Your draft MUST include the full set of headings, as described in the Final Term paper specifications.
The headings will include:
- Abstract
- Introduction
- Facts (without any bias, naturally raises your question towards the end)
- Question (simple, one line, yes/no type question that naturally comes from your recitation of the unbiased facts)
- Extant Arguments (normally subdivided into the "Affirmative" and "Negative" subsections where outside authors and thinkers detail their answers and the reasoning behind their answers to your question. Again, without bias or analysis of any kind on your part, just give the arguments and reasoning as though you believe them all, faithful to the authors' intentions.)
- Analysis (where you utilize the Software Engineering Code of Ethics and other ethical principles to make your own arguments about what the real answer should be. )
- Bibliography with annotations for at least 10 of your most referenced primary sources.
Note that you will be held to a strict policy of referencing every external source of fact or principle you utilize to make your paper. I cannot overemphasize this. All you work depends on the previous work of others (in support and in opposition to your own answer) and you must:
1. recognize where you utilize others' work; and.
2. properly reference their work.
The draft must be 3000 words long and each section must be about half complete.
Half the word count (1500 words) must be dedicated to your draft analysis section, with the other half distributed among the previous sections in some rational way.
Example Papers:
Content
Dr. Turner's Presentation Tips
Student Notes on In-Class Presentation Tips
Presentation Evaluation Sheet (this is what you will be judged on!)
Example Presentation:
Nick's Presentation (use for reference, specs may have changed since this was made).
Grading Criteria for Final Version of Term Paper
Facts: (20%) Concise, simple, clear, NARRATIVE that describes the state of the world related to your issue. Tell the reader a story about the situation that makes her curious about your issue before you tell her about it. Cite respectable sources for every fact or claim about the situation. Just a page or two.
Statement: (5%) Very concise and simple, one line is best, narrowly defined [single] question that you will resolve in your analysis. Avoid side issues!
Arguments: (25%) Cover other thinkers thoughts about your issue in a neutral manner. Take no sides, just illustrate the different views and the logical reasoning of others as though they're correct. (Do NOT inject any of your analysis till the next section!) Cite sources for the arguments. Don't make them up. Cover the field. Use descriptive subheadings to distinguish the different arguments. The Code does not belong in this section, use it in your analysis later.
Analysis: (50%) Answer your question (your issue). Make informed and logically reasoned judgments about the validity of others' arguments, make new arguments of your own and justify them with logic and ethical principles. Begin by justification of the applicability of the SE Code to your issue. You must convince me, even if I actually disagree with you, that your analysis and conclusion have a respectable amount of logical weight utilizing the IEEE/ACM Software Engineering Code and other general ethical principles. Continue to cite sources for all facts and arguments used in your analysis. Make sure your analysis is only about your narrowly defined issue! Use subheadings to distinguish your various arguments.
Example Papers:
Labs
Lab 1 is a simple personal statement of goals and interests with a projection into the next 10 years. As explained in class, imagine you’ve graduated from Cal Poly with the degree you are interested in, you find the job or the direction you truly want, and you build the sort of life you truly want.
Attach a basic photo of yourself to the top of the lab document so that I may begin to associate your names with your faces. A cover sheet is not necessary for this first lab, but your name and section of CSC 300 and the date should be used in the header of the document (near the photo).
The document should be 1 – 2 pages in length and should be typewritten in a professional manner, so that it is easily read.
As we mentioned in class, you may also approach this Lab as an “obituary” that you’d like to see written for you when you pass, after your life has gone the way you would like it to.
Note: This assignment does not require the standard lab formatting and sections.
Note that this lab is due to a student project developed by Mike
Winterberg, Johannes Kienzle and Dan Snyder. Updated by Nicolas Artman 10/2/09.
Purpose:
Our society places the responsibility of caring for the less fortunate, at least in
part, on its own shoulders. We have governmental programs designed to help
those will all forms of disability, be it financial, physical, mental, or otherwise.
We have laws that regulate what businesses can and must do in order to allow
access to what they offer for all people, and this includes our industry. What
special needs arise in accessing software or web-pages? What responsibilities
do we as designers have to make our work accessible?
Procedure:
Part 1: The World Wide Web Consortium - Answer as a group
1. What is the W3C? When was it founded, and for what purpose?
2. What is the Web Accessibility Initiative (WAI)? What are the key issues of
completing this task?
Part 2: Accessibility and the Code of Ethics - Answer individually
Imagine the following scenario:
You are working on a software project for a big company. The project is nearing completion and you realize that the software is extremely difficult to use by visually impaired people. You know your project manager will say that the budget does not allow working on accessibility features.
According to the Software Engineering Code of Ethics, explain briefly what
you could and should do.
Part 3: Accessibility in the Real World - Answer as a group
1. Visit at least 2 different commercial web sites rate them using the
“Accessibility Template for Web sites” (available on the web site).
2. Choose two software applications (either from the list in Appendix B or
another accessibility-related application) and rate using the
“Accessibility Template for Software”.
Part 4: Applied Accessibility - Do as a group
Note: Be certain to leave an appropriate amount of group time for this part!
1. Choose a software application that reads web-pages (such as the free
built in screen reader in Mac OS X or a trial of IBM’s page reader). Choose a member of your group to be your “accessibility tester” and have him or her blindfolded.
2. Decide a simple task for your tester to complete (i.e. look-up movie
times for San Luis Obispo, find a certain book and add it to your
shopping cart on Amazon, etc.)
3. Have the tester use the chosen application to attempt the task.
4. Repeat for every member of the group. You can use the same
application and task for each student, or have a unique set for everyone.
Write a brief paragraph or two answering the following questions:
How easy was the program to use as a disabled person?
What did the program lack?
Part 5: Conclusion - Answer as a group (about a paragraph)
- Assess the current state of accessibility. Are the current guidelines enough? Should more be done to help those with disabilities?
- What does this issue of accessibility mean to you as a developer and
as a member of society?
2. Prepare a 3 to 5 minute presentation for the class. This presentation
should focus on your experiences with using the software as a tester, in
addition to any unique experiences group members might have had with this
issue. Your presentation should conclude with your group’s answer to this
question: “Why does accessibility matter to software engineers?”
Appendix A:
Online Resources Concerning Accessibility:
• Web Content Accessibility Guidelines 2.0 Working Draft
<http://www.w3.org/TR/WCAG20/>
• IBM Developer Guidelines to Software Accessibility
<http://www-3.ibm.com/able/guidelines/software/accesssoftware.html>
• Software Engineering Code of Ethics (especially 1.07)
• Rehabilitation Act (Section 508)
<http://www.section508.gov/index.cfm?FuseAction=Content&ID=11>
• American Disabilities Act – Applying the ADA to the Internet
<http://www.icdri.org/CynthiaW/applying_the_ada_to_the_internet.htm>
• Macromedia Flash and Accessibility
< http://www.macromedia.com/resources/accessibility/flash8/>
Appendix B:
Examples of Accessibility Tools:
• Windows XP Accessibility Tools
- Magnifier
- Narrator
- MouseKeys
• Microsoft Accessibility Tools
<http://www.microsoft.com/enable/guides/default.aspx>
• IBM Home Page Reader
<http://www-306.ibm.com/able/solution_offerings/hpr.html>
• Elinks (Linux only!)
<http://elinks.or.cz/>
• Lynx
<http://lynx.isc.org/release/>
• Xpress It!
<http://www.conchbbs.com/xpress-it.shtml>
• Window-Eyes
<http://www.gwmicro.com>
• Orca (Linux) <http://live.gnome.org/Orca>
The Cal Poly 2009 Fall Job Fair is Wednesday, 9:30 AM to 1:30 PM.
A schedule of some of the info sessions and talks may be found at acm.calpoly.edu. SWE/WISH may also be hosting info sessions so check their web sites for more events.
Part A:
Attend the job fair with your updated resume!
Next, attend a company talk during job fair week. Write down the company and presenter name as part of your submission. There’s nothing else to do or write for this part, just go learn about a company.
Part B:
Pick a company you currently work for or would like to work for and research their ethics policies. For example: Do they have a code of ethics? Do they adhere to the SE Code of Ethics? What are their policies on discrepancies in their code of conduct? Do they offer an anonymous way to report ethics violations?
Write up a one (or more) page double-spaced summary of your findings.
If any part of this lab is unclear, please email or IM the current TA immediately. Do not simply say later “well I didn’t know _____”.
Wikipedia Lab [DRAFT]
Wikipedia is a controversial source. Though it contains a complex system of reference and review, wikipedia is still a secondary source since the wiki format does not ensure expert authors and peer review like a published journal may. Your task is to discuss some of the ethical implications of using wikipedia as a source and the wikipedia project in general.
Answer the following questions in about a paragraph each:
Are there any ethical problems that arise due to wikipedia’s widespread use? For example, could wikipedia be in violation of the SE Code if someone edited an article to contain incorrect information and another person, referencing the article, died because of it? Be sure to provide specific examples of SE Code sections that apply.
Should wikipedia be usable as a primary source in college papers that aren’t written to be published? What about papers that may be published in the future? Perhaps consider the possibility for the referenced page to change before the paper is even turned in.
Do you think wikipedia should seek professional editors for some or all of the articles that are willing to put their name and reputation on them? Should wikipedia allow anyone to edit any article like they did in the past, or should they increase the restrictions on who can edit articles even more in the future?
The purpose of this lab is twofold:
Many students complain about the irrelevance of certain coursework. It is in the students’ and teachers’ best interest to provide useful coursework, so that this doesn’t happen and students learn, not whine.
This lab is intended to create a variety of labs that you, the student, feel would help you and your classmates learn the material better. If you’ve had a lab in mind that you wanted to do this quarter, now is the time to make it!
Your Task:
Write a lab with a set of ethical questions about an issue and some activity related to learning about that issue. It should take an average person about 2-3 (or ~10 for a team lab) hours to finish the assignment (1 hour for the questions, 1-2 for the activity).
Deliverable:
A professionally formatted lab document containing an introduction (with citations), a questions section (with a key provided), and an activity that has been done by at least one member of your group. It can be a lab for individuals or groups, and should say so in the document (and make sure to clearly delineate group deliverables vs individual ones).
The Reward:
If you design a lab and it’s used this quarter, you will (in addition to getting full credit on this lab) get full credit on that lab and won’t have to do it.
Please send comments and questions about this lab to Nick.
There are three options for this lab, which are linked below. Pick your favorite and do it. If there is a group portion you may do it with zero or more partners from any group, but make sure to write their names down on each person's individual submission.
These are all individual assignments unless otherwise explicitely noted.
Option 1: Improve the SE Code
Option 2: IEEE Certification
Option 3: EULA
Portfolio
Introduction
If you want to convince an employer you are a professional qualified for a job, a portfolio can present strong physical evidence of your claims to be a qualified professional. A portfolio helps give an employer a good impression of you and can demonstrate you have the knowledge and skills required for the job. Even after you have been hired, a portfolio can give employers a clearer picture of your work during performance assessments. A portfolio can also help you gain a better understanding of who you want to be as a professional. Essentially, your portfolio becomes a picture of you that others can use to better understand your level of knowledge, skill, and abilities as a professional.
The portfolio series of assignments is a work in progress. Feel free to suggest alterations, additions, or removals to Nick.
Task A: Goals
Write down a list of 4-7 professional goals you want to achieve in your lifetime. These goals should be long term, not simply “Get a job.” For example, one of your goals might be “To help promote web accessibility standards and improve software support for people with disabilities.” These goals do not all need to relate to software, though at least some of them should. Releasing an album of your music is an example of a goal outside of software development.
Task B: Past works
Collect a few pieces of past work for each goal that show you are working toward your objectives. For example, a web site you designed that follows web accessibility standards, or the sheet music for a song you wrote. UML diagrams, code snippets, UI diagrams (or screen shots), are examples other good documents to include.
Organize these in a nice folder or binder with a section divider for each goal. All style choices are up to you but an employer should be able to look at this and quickly ascertain what your aspirations are and you are working hard to achieve them.
Task C: Resume
If you don’t have a resume already, there’s no better time to make one (apart from two years ago...). Create a professional resume and put a copy in the front of your portfolio (resume paper optional).
References Used:
Campbell, Cignetti, Melenyzer, Nettles, and Wyman. How to Develop a Professional Portfolio, A Manual for Teachers Second Edition. Allyn and Bacon, Boston, 2001
Cover Letter and Letter of Recommendation
Part A: Cover Letter
Write a concise cover letter to a recipient of your choice at a company or organization you’d like to work for/volunteer for/lead. The letter should focus on your strengths but be clear about your weaknesses (if you choose to mention any). If you have previously written a cover letter, feel free to include it as this part of the lab (you may cover up sensitive information).
Part B: Letter of Recommendation
Write a short (1 page double spaced) letter of recommendation from someone on your behalf. You are the one writing the letter, but it should be written as if it was composed by someone who knows you (and you will not be able to see it before it’s sent to your potential employer).
Part C: Make sure portfolio Part 1 is done well
Revise your portfolio from part 1 to incorporate any feedback you got. If you got less than a check last time, make sure you do what’s necessary to get your portfolio up to par for this time!
If you have suggestions, questions, or find any of this lab unclear, please let Nick know.
Other Documents and PDF Versions
- Administration
- Assignment Docs (Also with assignment descriptions above)
- Presentation
- Presentation Tips
- Presentation Evaluation Sheet (this is what you will be judged on!)
- Term Paper Proposal
- Example proposal docs from past students:
- Term Paper
- Self-Evaluation Checklist (must be attached to final version!)
- Presentation
- Labs
- Portfolio
- Reading