About the Course
This seminar covers Extensible Markup Language (XML) and its applications. At times we will also look at alternatives to XML–a list that includes JSON, YAML, Markdown, etc., which are increasingly competing with XML for various purposes.
We cover the core XML component frameworks, including DTD, W3 Schema, Relax-NG, DOM, SAX, XSLT, and XQuery. We'll also look at some domain-specific instances.
We will also take a quick look at network/web services, which make use of markup schemes of one form or another. In enterprise computing, SOAP is a web services framework that makes extensive use of XML to provide a modern retake on RPC. RESTful web services also take advantage of XML and other competing forms of markup (JSON) to support representations (data transfer to and from the web service).
Please note that although HTML will be occasionally used in this course, this course is not about HTML and students may want to acquire an HTML book and study it briefly before taking this course. (We'll cover it during the first week, of course but this is by no means intended to be exhaustive coverage of HTML or its many variants).
Contact Information and Office Hours
The preferred method of contact is e-mail (mbone@luc.edu). I also plan on making use of the slack channel. I'll be keeping an eye on the channel and responding to messages, but you'll also be able to receive help from your fellow students. Keep in mind that slack participation will be one consideration for the participation component of this course.
I will be available the hour before each class in the computer science office, and also immediately after class in the classroom.
Prerequisites
All students are expected to have taken Computer Science 271 or have significant working experience/knowledge with everyday data structures, especially lists, trees, and associative structures (e.g. hash tables). If you are in the MA Digital Humanities program, you should be taking DH 401 concurrently or have already completed this course.
Finally, a word of note about programming. You can assume that nearly all of your work can be done in XML and its various languages (XSLT and XQuery, among others). It is not expected that you are a strong programmer but the more knowledge you have thereof, the more fun you can have with XML. I encourage you to consider pairing up with another student, especially if programming is not your strong suit.
Slack Channel
We’ll be using a slack channel for discussion throughout this course.
Text Book
We will be using the following excellent book:
Introduction to XML and Web Technologies Anders Moller and Michael I. Schwartzbach ISBN: 0321269667
This book can be difficult to obtain. If you are unable to get a copy, you can get by with the lecture notes and my supplements but will probably find yourself wanting a copy at some point. You do not need to own the book from day one.
Software
We will be using the text editor/IDE of your choice, and free and open source software. While some technologies may be required to complete certain assignments, generally you'll be free to use the programming languages and tools of your choice.
Course Breakdown
- Homework & Project: 65%
- Quizzes: 25%
- Participation: 10%
The following is an explanation of the course breakdown:
Homework will involve working with XML and/or other programming languages and sometimes design tools (e.g. schema editors). Homework should be done individually unless otherwise noted. The project is obviously an important component of this course, and more details will come as the course progresses. You should start thinking of potential ideas for projects and begin making acquaintances with others with the hope of forming a small team. Groups of 3 or fewer may propose a project idea at any time. Stay tuned for details.
Quizzes will be used to determine whether you are keeping abreast of the lecture, reading, and assignments.
Participation will be determined based on your involvement in the class in concrete ways. For me, there are multiple ways I can measure your participation. The first is to be active in in-class discussions and make occasional presentations in class. Ideally, I expect every student to speak at least 1-3 times a semester, especially when it comes to the discussion of assignments. The second is to be active in the class discussion group. I'm particularly fond of participation that sheds new insight on material that we might not be able to cover in class and postings that are aimed at helping others.
Submitting Homework and Projects
Homework submissions will be handled via sakai. While this is not the most ideal way of doing things, it'll give us minimal overhead.
For homework assignments and all of your personal work, I encourage you to use version control with private repositories. BitBucket is an excellent solution for this and allows you not only to keep your source code on the site but also additional material, e.g. documentation (wiki pages), etc., which normally accompanies a strong homework and/or project submission.
For projects, you may use a public-hosting solution, especially if you are considering the idea of working according to free/open source principles. BitBucket or Github are strong solutions for publicly-hosted projects. Regardless of what solution you choose, every project is expected to maintain a source code repository and have a public presence of one form or another.
Attendance Policy
I do not take attendance in class.
Attendance, however, is strongly encouraged and ultimately may count towards the participation component of the course. If you plan to miss class, it is ok to let me know but, more importantly, please make sure you speak with at least one other person in class to find out anything you might have missed. Significant absences from class may hurt your participation grade.
Late Work Policy
Late work will be accepted but at a slight penalty. Late work will be accepted but at a slight penalty for each week of lateness. The penalty will be 10% per week.
Late work will not be accepted for assignment N once assignment N+1's due date has arrived. This means, in practice, that a zero will be recorded for this assignment.
Quiz/Exam Attendance Policy
Quiz absences require advance notification and/or appropriate documentation (e.g. doctor's note or documentation from Wellness Center). Failure to comply with this policy results in a zero on the given quiz.
Academic Integrity Policy
See the university web sites in the College of Arts and Sciences and Graduate School. Any infringement on these policies will result (possibly) in an F for the course and a report being submitted to the relevant dean's office.