Assignments
| Assignments | % of Final Grade | Due Date |
| Markup assignments (discussion page) |
30% | |
| Resume in XHTML Strict with CSS | 15% | October 5 |
| Resume with a CGI form & DHTML | 15% | November 23 |
| Project-related (discussion page) |
65% | |
| Project Brief | 5% | September 28 |
| Requirements Analysis | 10% | October 19 |
| Solution Definition | 10% | November 2 |
| Project fair | 5% | December 7 |
| Final project | 35% | December 14 |
| Participation | 5% |
Assignment guidelines & late policy
- Assignments are due before class on the day they are due.
- Submit your assignments by posting your files to a Web-accessible directory on Ella/Iris, Silo, or Quarry, and sending the instructor an email with either the Unix path or URL to that directory. Create separate folders for each assignment, and only include files that you want graded in that folder.
- All homework (including essays) should be submitted as XHTML and should use internationally standard image formats (jpg, gif, png, pdf, etc.). A penalty will be applied for work submitted in other formats or media (e.g., Word docs, paper).
- Late assignments will lose 5% of the possible assignment grade for the first day, and 1% for each additional day. Late penalties and class absences can be excused, at the instructor's discretion, with a doctor's note or proof of emergency. Incompletes require the permission of the instructor.
- All computer code (including HTML) should use one of the common indent styles, for easy reading. For auto-indenting, I highly recommend tidy.
- All work should at least validate, be well-formed, and use the most current concepts and technologies covered in class.
- The assignment requirements listed on this page represent minimum requirements for an average grade (B+ or A-). To get an A or A+, implement/explore more of the material/ideas than required (i.e., go above and beyond, be creative, etc.).
Validators
The W3C's validator is most highly recommended (because they wrote the standard). Both Aborla validator and tidy are based on the W3C's validator.
CSS validation is not required for the assignments, as it is not currently very robust/helpful, though you might occasionally learn something by validating your CSS.
However, should you feel adventurous, here is a list of other HTML validators. If you use an alternate validator for your work, tell the instructor which one you used, so that your work is graded correctly.
Markup assignments
Resume with XHTML Strict and CSS
Add at least the following stylistic features to the XHTML resume code that you developed in the XHTML lab:
- on the nested ordered list, make the outer level's bullets use lower-case letters, and the inner level's use lower-case roman numerals
- apply at least three style properties to your table (e.g., padding, borders, backgrounds, fonts...)
- add a background image to either the page or one or more page elements
- use a non-default font for the page's text
- make visited/unvisited links appear in non-default colors
- make the image change its size automatically, when the browser window is resized
- using CSS positioning on div elements, give the table of contents its own column on the left side of the page, and position the text of your resume in a second column to the right of the table of contents
- all page contents should resize gracefully (no overlapping divs, etc.), when the browser window is resized down to an 800x600 pixel screen resolution. Overlapping at smaller window sizes is OK.
- tables and frames may not be used for page layout (i.e., only use tables as the W3C intended, for displaying small tabular datasets) from this point on.
And remember the assignment guidelines.
Accessible resume with a CGI form & DHTML
Make your previous resume include/comply-with at least the following:
- level 3 of the W3C's Web Content Accessibility Guidelines
- add a contact form, which includes at least these features:
- three different types of form input elements (e.g., radio, checkbox, text, hidden, select, submit, reset...)
- in any language (PHP, JavaScript, etc.), a script that generates a message that the user sees after submitting comments to the form, as well as shows the user what they have input
- one/any DHTML scripts that you have seen in class or on the Web
You may model the scripts on those demonstrated in class or on the Web, but they must fit naturally into the code of your webpage. If you use someone else's code, cite them in a comment within the code.
And remember the assignment guidelines.
Project assignments
You will spend the second half of the semester developing a web site for a client of your choosing. Doing so provides you with several benefits:
- It will allow you to develop and improve your communication skills, as you work with your contact person to find out what he or she wants in the web site.
- You will learn about time and project management, as you balance their needs and requirements against the constraints of your skills and timeline.
- You will have a well designed site, which could be an excellent addition to your professional portfolio.
General project requirements:
- The client must be a real person, group, or organization. They do not have to be actually employing, commissioning, or otherwise paying you to create the site for them, but they must be an adult or group of adults, preferably with whom you are not closely related (i.e., avoid family, close friends, partners, children, figments of your imagination, etc.).
- They should be a business or non-profit organization. Try to avoid working for your family business, as your experience may be significantly different than working for strangers. If you work for another student (e.g., an art or music student), you must involve their faculty advisor or another qualified and established professional in the project.
- They do not have to use the site that you create, but they must meet with you as though they intend to use it.
- You are allowed to be paid for your work, though you are effectively acting as an independent contractor (see contract below). If you are paid, taxes on any income you generate should be filed as independent contractual labor and should not be affiliated with Indiana University (unless your client is also your boss at IU). Alternatively, your client may be your regular (full- or part-time) employer, and your work on the project may be included in your regular work for that employer.
- You will be required to provide the name and contact information of your client to the instructor, so that the instructor can mediate any misunderstandings or confirm the client's identity and intentions, if necessary.
Project Brief
Write a 500-word essay describing the following:
- The name and contact information of the client (and their organization, if applicable).
- A description of the client's organization, including: their target audience, their size, their internal structure, and the nature of their products or services.
- Your interest in designing a site for this particular client.
- The client's interest in wanting the site designed, and in having you (a non-professional) do it.
Also include a "signed and dated" (acceptable formats include: a forwarded email from them with email headers included, or a digital scan of the signed contract) copy of the following contract, which has been approved by IU Legal Services:
I, (client's name) of (client's organization), agree to allow (student's name) to build or redesign a website for me or my organization. I also agree to the following:
- I understand that (student's name) is a student with a beginning knowledge of Web markup and programming, that he/she is not an experienced professional, and that this website is being designed as a course project and does not represent the work of a consultancy or other established firm. Unlike a professional firm, the student retains no obligation to maintain or provide support for the website beyond the class's semester end-date.
- I agree to work with the student for the duration of the semester, and will permit either the student or the class's instructor to terminate the project prematurely for any reason whatsoever.
- I agree that, if the student is paid for his/her work, the income will be on an independent contractual basis, and be unaffiliated with Indiana University, unless the student is employed by the client, which may be Indiana University.
- I agree not to hold either Indiana University or the class's instructor legally liable for any damages caused by the student during the project (i.e., only the student may be held accountable).
- (If either the student or client wish for additional protections, add them here and get the approval of the instructor.)
(Your name, date, and signature) : (The client's name, date, and signature)
Please make sure that your client will be available/reachable for consultation throughout the semester (i.e., that they have no long vacations planned).
And remember the assignment guidelines.
Requirements Analysis
JJ Garrett's 5-S (strategy, scope...) model is not the only framework for thinking about socio-technical systems in their contexts. The following functional-ideational-embodied framework is common in anthropology and sociology. Functional things are: physical, material, perfunctory, and don't requiring much thought (e.g., walking). Ideational things include: social norms (regularized behaviors, morals, sanctions/punishment), religion/mythos, and culture. Embodiment refers to subjective experience, such as that a restaurant's advertisement is supposed to prompt typical members of its target audience to feel hungry.
Write a 1000-word essay addressing the issues listed below. Base your arguments on actual observations, evidence/documents, and discussions you have made/had in/about your client's context, as well as on the literature. Be very specific and empirical.
Function
- Socio-economic demographics of the people and area (don't generalize to all of Bloomington)
- Perfunctory features that each audience requires of the site (e.g., shopping)
- Operational constraints imposed on the site/project by anyone (e.g., time, money)
Ideation
- Socio-cultural qualities of the people and the area (e.g., culture and sub-culture)
- Mission/ideology of the organization (e.g., a soup kitchen), and social meaning/relevance of that mission to each audience (e.g., evangelism vs. homelessness)
- What socially recognized features, themes, symbols, images, links, etc. could you use to signify the company's mission in this context? (Consider competitors/similars' approaches, and what is worth copying or not about them.)
- Situatedness of the organization within community relationships (social/market positioning, competitors/similars, suppliers, power and exchange relations, etc.)
Embodiment
- What are important psychological characteristics of your target user type(s)?
- How should the target user type(s) feel when experiencing your website?
- How do you plan to evoke those feelings, and why that way?
Remember to provide convincing evidence and citations for arguments that you make. Do your best not to impose your perspective on the organization or community. Immerse yourself in their context.
And remember the assignment guidelines.
Solution Definition
Create the following wireframe and Gantt chart diagrams, depicting the site you would make and the project's timeline. Then write a 1000-word essay addressing the project management-related issues listed below.
- Diagrams
- A page-level diagram depicting the conceptual organization and graphic design of the pages of the website that you would create (not as it currently is, if you are redesigning a site). Include one diagram for each different architectural type/template of page on the site (e.g., if the homepage has a different layout than the other pages, you would make two page-level diagrams). Here are several good examples.
- A site-level diagram showing how the content is organized into webpages, and how those pages are linked to each other. If content is gotten or stored in non-HTML form (e.g., in a database, from RSS feeds, etc.), include those data sources in the diagram. Here is a good example.
- A Gantt chart depicting the responsibilities of each party, by when, and who is dependent on whom for what. Here is a good example, using GanttProject:
- Essay questions
- Risk management: what factors could undermine the project, and how can you ensure that these risks will be managed? For example, are size, budget, structure/process, or available technology risky? How will accidents, nagging problems, and crises be documented and communicated to the project's stakeholders? Who will be responsible for addressing different types of problems, and why?
- Change management: how will changes to your plans or specifications be managed throughout the project? For example, what are the responsibilities of each party, and by when (relates to Gantt chart)? How much time and energy should each party put in to supporting or implementing the change? This step is how you avoid "feature creep".
- Quality management: what are three key tasks that a user to your site should be able to perform, and how could each be easily performed, given your current site design? For example, if you are building a website for a library, book circulation may be an important task for you site's users. Explain how users will be able to efficiently check and return books via your site.
- Discuss how three or more computer-mediated communication technologies (audio/video, email, chat, etc.) could be used to facilitate your communications with the client and instructor, for tasks including: storing to-dos, notes, and messages; managing content versions; procuring and tracking resources; scheduling; internal announcements and discussions.
- Describe the records (of conversations, processes, etc.) that you will keep during the project: their conceptual organization, format, contents, and frequency of updating. Assuming that you continue doing this type of work in the future, what might you and others want to know 10 years from now, when looking back on this project?
- In your project's context, who should have permission to access and change which documents generated throughout the project, and how should the work in-progress be kept private/secure (from theft or damage/loss)? How should in-development versions of documents be shared, and conflicting versions managed? How should backups be made? Why?
Remember to use standard image formats for the diagrams (jpg, png, gif, pdf, etc.). Avoid large/uncompressed formats, like tiff, bmp, and raw.
And remember the assignment guidelines.
Project fair
Each student will give an informal 5-minute talk (no slides, no dressing up, etc.) on the following topics, while their classmates comment (anonymously or not) on the site via a discussion page that will be setup for each student.
- Who is the client? Describe them in their social context.
- What have you built for them, and why is it appropriate in this context?
- What is the most important thing you learned about/from doing this kind of project?
The purpose of this fair is to share your work and get instant feedback from your classmates. The instructor will not leave feedback on your project, and you will not be required to either address/respond-to or implement any of your classmates' feedback.
Final site
Before Before 11:59:59pm (US Eastern Time) on the assignment due date, email the URL of your finished website to the instructor.
If your architecture or design has changed noticeably from what you described in your diagrams and essays, please include a brief (500-word max) essay on how it changed and why.
If your website lives on a server other than Ella/Iris, Silo, or Quarry, please also provide a zip file containing all of your code to the instructor.
And remember the assignment guidelines.
Here is a brief FAQ about the project:
- What is the absolute final deadline for all work? Your final grades are due to the Registrar three days after you submit the final project. I need those three days to grade them. Without a verifiable and very sad story or medical circumstances that would justify an Incomplete, work will not be accepted after the final project deadline.
- May I turn in the final project from out of town/country? Yes. It's the beauty of the Internet. Just be sure that you email me the URL before the deadline. If you don't receive a confirmation within a few hours, please re-send the message or contact me via another means (website contact form, or call the SLIS front office at 812 855 2018).
- What technologies, architectures, and designs must we use? Unless the instructor agrees that your client requires a particular non-standard technology, your work will be held to the latest versions of the international standards used for the resume assignments. This means XHTML Strict and CSS, WCAG level 3, and all best-practices discussed throughout the course.
- How much work is enough? The instructor will tell you, if the site you propose in the Requirements Analysis and Solution Definition assignments is either too small/large or too feature bare/overloaded. The actual code will be graded in the same way as a resume assignment. Doing a minimal site with average quality code will earn a B+/A-. More features, attention to detail, and creativity will earn you an A or A+, less a B or lower.
- Do I have to create the content for the site? Mostly no. The client is responsible for creating all content that goes on the site, possibly with the exception of graphic design elements, such as images used to make the site look pretty. Only create content if you want to do it, or are being paid to do it (e.g., if your client is also your employer). The content of the website will not be graded; only the code, architecture, and graphic design will be graded. The industrial convention is to fill in empty content areas with blocks of "lorem ipsum" text, available at lipsum.com.
- May I work with a client outside the Bloomington area? Yes! You can work with any client anywhere. Past students have worked for individual academians and research groups, libraries, governments, religious groups, non-profits, and companies of all sizes in the US, Europe, East Asia, and India. Do something that is interesting and meaningful for you and your professional portfolio.
- May I use a non-IU domain name or hosting service? Yes. If your site lives on a server to which the instructor does not have SSH access (i.e., not Ella/Iris, Quarry, or Silo), also provide a URL to a zip file containing all of your site's code.
- May I use a content management system (e.g., the Wells Library's "IBM Content Manager")? You may use any content management system that accepts the latest W3C XHTML and CSS standards. This does not include IBM's Content Manager, which changes everything to a very early HTML version, and which has given past students no end of headaches.
- How do I add blogs, calendars, RSS feeds, search boxes, slideshows, etc. to my code? Some of these things can be done by copying simple Javascripts from the Internet (e.g., a nice Javascript slideshow). Google also offers free customized search engines for websites. However, until you learn more about Web programming and databases (and even then), most involve the installation of a content management system (see above). For help choosing or installing such a system, please see the instructor.
- Can I use a language other than English for the content of my website? Yes! Just change the "lang" attribute to some other language subtag, from this list, change the "encoding" attribute to some character set commonly used for that language (e.g., Unicode, Big5, etc.), and use that character set to compose the webpage's content. Unicode UTF-8 is the international standard character set for alphabetic languages (e.g., Ελληνικά, فارسی, Русский, עברית, ไทย, हिन्दी, Tiếng Việt, etc.). UTF-8 and UTF-16 are also capable of most East Asian languages (古文 / 文言文, 한국어, 日本語, 吴语, 粵語, 中文). Please see the instructor, if you are not familiar with using non-English character sets. The content of the website will not be graded; only the code, architecture, and graphic design will be graded. However, all essay assignments must be in English.
- I'm having a lot of trouble finding a client. Is there any way at all that I can work with friends or family? If you can also find a professor or professional (who has at least several years experience on your topic of interest) with whom you can speak several times throughout the semester about the project, then you may work with friends or family. I just doubt that your experience will be very realistic, if your only client interactions are with a friend or family member.
Participation
To earn the participation credit, every student must make at least one substantive contribution to class per week.
- "Substantive" means making the effort to engage in discussion, including: making a thoughtful comment, asking a thoughtful question, mentioning a relevant article or news story, publicly and thoughtfully answering others' questions, routinely helping a fellow student during lab time, etc.
- "Contributions" can be either in class or on the lecture discussion pages (the latter requires that you register for an account on my website).
The idea is to stay engaged. Saying a lot one week in order to make up for saying nothing another week won't work (without an excused absence).
