Course Materials

Click any assignment to hide/show the details (or download the pdf version below)

Assignments

Critical Analysis Midterm

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.

This quarter, this assignment will be an in-class essay that will give you feedback on your writing ability early in the course so you can best prepare yourself for the assignments ahead.

Term Paper Proposal

See here for a past example (got a good grade but it's not perfect! Also, don't just copy its style since the assignment spec may have changed since it was written).

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.

Term Paper Half-Draft

Pseudo-final Version (Use this 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:

 

Formal Presentation
  • Should be 10-12 slides
  • 8 minutes MAX for the presentation (10% penalty for overtime, severe overtime will result in cutting you off)
  • 2 mins after that for questions
  • Make sure to look at the presentation evaluation sheet and presentation guideline lecture!

You must send in your presentation to Dr. Turner & Nick at least 48 hours beforehand so they can review it and send you feedback. If you do not, you will suffer a 10% penalty automatically.

Dr. Turner's Presentation Tips [May contain out of date info, but you should definitely review these still]

Nick's lecture on presenting with presentation guidelines

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).

Term Paper

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.

Click here to download the Self-Evaluation Checklist that you must attach to the front of your term paper before turning it in.

Example Papers:



Labs

Job Fair Lab

Future You

Lab 1 is a simple personal statement of goals and interests with a projection into the next 10 years. 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.

The document should be 1 – 2 pages in length and should be typewritten in a professional manner, so that it is easily read.

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.

Accessibility

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>


SE Code Presentation Handouts From Fall 09

Below are the handouts for the SE Code presentations from class. You may find these helpful when doing your papers.

Section 1

Section 2

Section 7

Section 8

 

Portfolio

Check schedule page


Other Documents and PDF Versions