I290TA Information Organization Laboratory
Overview
Fall
2014
TuTh
10:30-12
205 South Hall
CCN: 41659
Students will learn about the theories of information organization and retrieval in the context of the Open Web Platform (OWP). A variety of topics will be covered by exploring the capabilities of the OWP via various assignments and a final project. The course is project-oriented and culminates in a final project that uses various technologies of the OWP to implement a complete system. Students will develop skills in various OWP technologies (JavaScript, HTML, CSS, SVG), rapid prototyping, visualization, and utilization of data formats like XML and JSON.
Instructors
R. Alexander Miłowski milowski@ischool.berkeley.edu @alexmilowski TTh 12:45-13:45; WTh by appointment
Ramit Malhotra ramit@ischool.berkeley.edu @ramit_malhotra
Description
Exploring and applying theories of information organization and retrieval in the context
of the modern ecosystem of the Web, mobile applications, big data
technologies
requires a variety of skills. This course will focus on the Open Web Platform (OWP) as a
nexus of standards and technologies that serve as a contract between producers and
consumers of information and services. The goal of the class is to provide a baseline of
skills and an awareness of where to go for more information that calumniates in a final
project of a working system.
As part of this exploration of the Web, focus first on various browser technologies of the OWP such as HTML, SVG, CSS, and JavaScript. We will explore the use of various annotation technologies like RDFa and JSON-LD and applications that receive data via services that return data in XML or JSON formats. The focus will be on how the OWP can serve as vehicle for both delivery of content and applications.
Follow this, we explore data exchange architectures for delivering services over the Web.
We will build XML and JSON data services using scripting, XSLT, XQuery, XProc, and
NoSQL
databases. This will give the student full exposure to the whole
stack
from the browser to the database.
There will also be various special topics such as using mapping technologies like Leaflet and D3 and Open Street Maps for visualization of data. These technologies layer on various technologies of the OWP such as SVG and CSS. We will focus on how scripting can be used to orchestrate such libraries and evaluate the mapping between data services and such client-side APIs.
The course is structured as a set of lectures, discussions, and lab sessions. The purpose of the lectures is give an overview of particular technologies, their history, use, and where to go for more information. Discussions and lab sessions will be used to address questions or particular applications within the context of homework, projects, or general interest.
The course assignments are divided into two general categories:
- Homework — tasks focused on exploring a particular technology to gain particular hands-on experience.
- A Final Project — a single final project of a complete Web application implementing an idea of your choosing.
Homework
Schedule permitting, homework will be due before the class meeting date on which it is due and will typically be assigned early in the previous week. Each assignment is designed to focus on particular skills and completed without massive efforts.
This is a course about using the Web. If you are asked to write about something for your homework, please turn in an HTML document. No PDF or other proprietary document formats will be accepted.
Late homework will be marked down 1 point per day (e.g., 2 days late, 2 points off). Other arrangements can be made by prior agreement if you find yourself unable to complete a homework assignment. Such arrangements must happen before the due date.
The Project
A final project is a large portion of your grade and it is divided into two components: project milestones and the actual project itself. Throughout the course,there will be project milestones where you will be expected to present a brief update about your project to the class. Some of these project milestones may require turning in some version for further review.
The purpose of these milestones is to:
- update your colleagues on your status,
- make them aware any issues,
- solicit feedback,
- share your knowledge.
While the project milestones are for your benefit in making sure you making appropriate progress, they are still graded. You are expected to make a professional presentation. That typical an appropriate number of slides that briefly inform your colleagues.
The project milestones are:
- The pitch (P1) — pitch your idea or pitch yourself.
- Mockup (P2) — how are you going to solve the problem?
- Information Design (P3) — information model and UI design.
- Implementation Updates (P4) — update on the implementation, progress, and issues.
The final project must consist of:
- A complete application.
- A working system that can be deployed and tested.
- A short paper describing your application (5-10 pages in length).
Projects must be approved by the instructor to ensure that the scope is appropriate for the course so that you can be successful.
Careful consideration should be used for the technologies used and the scope of the project. The project should demonstrate a sufficient level of mastery of the technologies discussed during the course lectures. If there are unforeseen problems, the project scope can be modified to make sure the application can be completed in time.
If desired, students may form project teams (maximum 3 students per team) but the scope of the project must fit the team size. Individual projects are also welcome.
Important Dates
- 09-16 and 09-18 — P1 due— pitches
- 10-09 — P2 due — mockup
- 10-30 and 11-04 — P3 due — information design
- 11-25 and 12-02 — P4 due — implementation update
Grading
- 10% class participation - yes, you must show up!
- 30% homework - each has equal value and is graded on a 10 point scale.
- 20% project milestones
- 40% final project
Schedule
08-28 Introduction & Overview; The Open Web Platform (OWP); Mesonet.info Demo; Tools
09-02 HTML and Intrinsic Vocabularies; XML and the Web; Unicode; An Introduction to Git
09-04 Theory of Formatting; CSS: Getting your Style;
Homework #2: Back to the Future with CSS3; due 09-11
Resources
HTML
CSS
Testing
- WebPageTest — test a web site in various browsers online
- Chrome Developer Tools
- Safari Developer Tools
- Firefox Developer Tools
- Internet Explorer Developer Tools
09-09 JavaScript: The Basics; Web APIs; The Document Object Model (DOM); JQuery to the Rescue?;
09-11 Functions, Timers, Events, and Callbacks; Pitching Projects; Slidy for Presentations
09-16 Web Architecture and Organizing Information; Working with Resources
Your Pitches (P1) due
09-18 Scoping rules; Closures; Git for Homework; jQuery and AJAX
Your Pitches (P1) due
09-23 Objects and Prototype
Your Pitches (P1) due
09-25 Introduction to Leaflet; Visualization via D3; Leaflet Activity
09-30 Encapsulation — more than what's for breakfast!; Three bits of CSS advice; What is a 'mockup'?
10-02 Multi-tiered Architectures; Poster; Working with Service APIs; Twitter Data Collection
10-07 Node.js; Flask
10-09 Mockup Presentations (P2)
Mockup (P2) due
10-14 Local Knowledge and Services; A Whirlwind Introduction to RDFa; schema.org activity
10-16 Turtle; JSON-LD by Example; Scripting RDFa; scripting activity
10-21 Using Amazon Web Services (AWS EC2); XQuery by Example
10-23 A bit more about XQuery; XProc & XProclet; Exercise: Using XQuery for the Web
10-28 Introduction to MongoDB
10-30 Information Design Presentations
Information Design (P3) due