These materials are from a past semester of this course at the U-M School of Information. For details and a syllabus of the current course, please see https://www.si.umich.edu/programs/courses/502.
To appreciate the opportunities and make wise choices about the use of technology, information professionals need to understand the architectures of modern information systems. In alternative system architectures, storage, communication, and processing substitute for and complement each other in different ways. This course introduces students, at several different levels of abstraction, to sets of functional components and alternative ways of combining those components to form systems. It also introduces a set of desirable system properties and a core set of techniques that are useful in building systems that have those properties.
Instructor: Charles Severance
dScribe: Dave Malicke
Course Level: Graduate
Course Structure: Three hour class - once a week
Syllabus
Course Description
This course is a survey course covering a broad range of technology topics at a high level. The course is aimed at students with no prior technical skills other than the general use of a computer. Really! When you look at the topics ‐ they may seem daunting ‐ but the entire design of the course is focused on student mastery of the topics. We want you to succeed in the course and then use the knowledge you learn to do many wonderful things in the rest of your academic and professional career.
Required Books
Most of the course material will be from online sources and materials produced for the course. There is one book that covers the programming aspects of the course.
Python Programming: An Introduction to Computer Science
Author: John Zelle
ISBN 1‐887902‐99‐6
Web Site: http://www.fbeedle.com/99‐6.html
Some of the course material will come from my upcoming O’Reilly book on the Google AppEngine. We will only use two chapters of this book. The entire book is available at http://www.appenginelearn.com/ ‐ comments and suggestions are very welcome as the book is currently in technical review for a late spring publish date.
Final Exam
The official University exam time for this course is: Thursday April 23, 2009 1:30 – 3:30PM
The exam for this course will be online and you will be able to take it anytime on April 23 or April 24. Once you start the exam – you have three hours to finish the exam. You will need a computer and access to the Internet to complete the final exam.
Course Outline
The course moves rather quickly through a lot of material. The first few week focus on programming and work from the textbook – the later weeks will use materials that are provided and available from the world‐wide web.
WEEK DATE TOPIC REQUIRED READING
1 January 7 Programming And Computers Zelle 1
2 January 12 Programming And Computers Zelle 1
3 January 19 Simple Programs Zelle 2 & 4, AE 3
4 January 26 Decisions and Loops Zelle 7 & 8, AE 3
5 February 2 Collections and Types Zelle 11 & 3, AE 3
6 February 9 Practical Midterm Exam in Lecture
7 February 16 Internet Technologies
Internet History
Internet Structure
8 February 23 Spring Break
9 March 2 Internet Technologies AE 4
Internet Applications
HTTP Protocol
10 March 9 Understanding the Web AE 2
HTML and CSS
11 March 16 Understanding the Web AE 2
Sessions and Cookies
Scraping the Web
12 March 23 Web Services and Data Formats
13 March 30 Searching and Organizing the Web
14 April 6 Databases
15 April 13 Security and Cryptography
Note: Schedule and topics may be changed as the semester progresses.
Exams
The written midterm will be given in your discussion section and the practical midterm will consist of a programming exercise and be given during the lecture period. There will also be an online final exam.
Assignments
There will be weekly assignments throughout the course. Regular assignments allow you to learn the material in small "chunks" and to keep a close eye on how well you understand the material. Assignments will be a focus of the discussion sections. Where possible, assignments will be distributed the week before so you can work on the assignments and possibly even complete the assignment before you come to the discussion section.
Every assignment will have a due date. Assignments may be turned in up to one day late with a 30% reduction in points. Assignments turned in more than a day late will receive zero points.
Grading
The graded work in the course will be weighted roughly as follows to determine a final percentage grade:
Homework: 40%
Exams: 50%
Class participation & Staff discretion: 10%
Grades will be awarded as follows:
A+ 97% ← You have to work really hard to get this
A 92%
A‐ 87%
B+ 82%
B 77%
B‐ 72%
C+ 67%
C 62%
C‐ 57%
D 52% ← You also have to work really hard to get this
F 47% ← Or this
Course Web Site
The course will be administered via CTools. When you log in to CTools you should see two tabs for the course. One tab is titled “SI 502.” This is where much of the course interaction will take place. You will see a second tab for your discussion section “SI 502 F08 Daniel” – with your discussion section instructor is named in the course site. This is where assignments and online‐exams will be distributed and graded. You should see both tabs; if you do not see both tabs (after looking in the "more sites" drop‐down) be sure to contact the instructor to ensure that you are properly enrolled in the course.
In the SI 502 main web site there will be people other than the members of the class – these people include former students or students auditing the course.
There is also a public web site for the course www.si502.com ‐ it provides the course materials to a wider audience – including folks searching the web through Google.
Open Educational Resources
This course is participating in an effort to make University of Michigan course material open to any user of the web as part of the Open Michigan effort at /.
A key effort to take the course materials and make them available as part of a long‐term repository is to insure proper copyright of the materials – this course will likely have a Digital Scribe (dScribe) monitoring course materials as they are produced and preparing the course materials for long‐term archival.
If you are interested in this activity or have any questions about Open Educational Resources, send email to dscribe.info@umich.edu.
Learning Objectives
The purpose of this course is to provide incoming SI Students with an understanding of the kinds of technology that students will encounter during their time as an SI student as well as in their employment once they graduate from SI. The course covers a wide range of topics, spending 1‐2 weeks on each topic and then moving on.
The Learning Objectives for SI502 are to give the student solid competency in:
- Computer Architecture
- Software Development
- Internet Technologies
- Web Technologies
- Service Oriented Architecture
- Database Modeling
- Web Search Technology
- Security of Information Systems
After completing SI502 successfully, the student should be
(a) Comfortable in courses with a technical focus,
(b) Able to participate as a team member in the analysis, design, development, and deployment of software and technology for an organization, and
(c) Be able to act as a facilitator between technical and non‐technical staff within an organization or project.
Course Mailing List
Much of the communication for the course will be done via email. Students are expected to read the email that comes to them from the course. The mailing list is also a place to get help in the class. It is completely acceptable for a student in the course to attempt to help another student over the mailing list. The Instructor will read all mail and correct any incorrect advice that one student gives another. All students have permission to post to the class‐wide mailing list. There will also be mailing lists for each of the discussion section instructors to communicate with their discussion sections.
Required Tools
The software used for the course is 100% free software. All necessary software will be available for both the PC and Macintosh.
Optional Tools
It is highly recommended that every participant in the course own and bring a laptop to each discussion session. This is not a requirement, and all of the work in the course can be completed on a desktop computer or on lab computers available to SI students. However, you will find parts of the course more valuable if you can play with code examples as we demonstrate them during the discussion section. A laptop will also make it easier for you to work on your assignments in your spare time.
For backup purposes I suggest you buy a flash drive with at least 2GB of storage space. This will also allow you to store applications you use in case you are without a laptop and available computers do have what you need installed.
While the instructor likes his Macintosh laptop very much, you can do the course on either a PC (XP or Vista) or a Macintosh. Where there are significant differences when completing an assignment on the two systems, examples and documentation will be provided for both systems.
Giving and Receiving Assistance
The first time you learn technical material it is often challenging. We are going to cover a wide range of topics in the course and we will move quickly between topics. Because it is my goal for you to succeed in the course, I encourage you to get help from anyone you like, especially in the portion of the course before the midterm and even for the completion of assignments.
However, you are responsible for learning the material, and you should make sure that all of the assistance you are getting is focused on gaining knowledge, not just on getting through the assignments. If you receive too much help and/or fail to master the material, you will crash and burn at the midterm when all of a sudden you must perform on your own.
If you receive assistance on an assignment, please indicate the nature and the amount of assistance you received. If the assignment is computer code, add a comment indicating who helped you and how. If you are a more advanced student and are willing to help other students, please feel free to do so. Just remember that your goal is to help teach the material to the student receiving the help. It is always appropriate to ask for and provide help on an assignment via the course‐wide mailing list.
It is never appropriate to hand in someone else’s work and represent it as your own. The safest approach is to clearly acknowledge the sources and nature where someone has helped you create your work in a significant way.
Plagiarism
At the University of Michigan and in professional settings generally, plagiarism is an extremely serious matter. All individual written submissions must be your own, original work, written entirely in your own words. You may incorporate excerpts from publications by other authors, but they must be clearly marked as quotations and properly attributed. You may obtain copyediting assistance, and you may discuss your ideas with others, but all substantive writing and ideas must be your own or else be explicitly attributed to another, using a citation sufficiently detailed for someone else to easily locate your source.
All cases of plagiarism will be officially reported and dealt with according to Rackham policies. There will be no warnings, no second chances, no opportunity to rewrite; all plagiarism cases will be immediately reported to SI's Dean of Academic Affairs. Consequences can range from failing the assignment (a grade of zero) or failing the course to expulsion from the University. For additional information about plagiarism, see the "Academic and Professional Integrity Policy Statement" in the SI Master's Student Handbook, the Rackham pamphlet on Academic Integrity, and the Plagiarism document from the UM Libraries. If you have any doubts about whether you are using the words or ideas of others appropriately, please discuss them with the instructional staff of the course.
Classroom Rules
We are all here to learn. I like a relaxed classroom where everyone feels comfortable. You are welcome to bring drinks or snacks to class (assuming it is allowed in the room we are in). You can (and should) bring your laptop to class. You can check email or FaceBook or whatever as long as your keyboard clicks are not distracting. I would rather have you come to class and listen with one ear than not come to class at all. As a courtesy to others, be sure to put your PDA and cell phone on silence/vibrate. Coming late to and/or leaving early from class is fine as long as you don't disturb your classmates. I sometimes forget to schedule a break during a long lecture, so feel free to suggest a break if it appears that I have forgotten to do so. Ask questions at any time, and if you have some expertise in a particular topic, feel free to raise you hand and share it with the class. I will not be offended and in fact am here to learn just like you are. Sleeping in class is OK too, but I will do my best to keep you awake for the whole class period. Our primary purpose in the classroom is to interact and learn from each other.
Success in the Course
This is a fast‐paced course and it covers a lot of interesting topics. The course is designed for students with no prior HTML or programming experience. If you stick with the course and invest the necessary time, you will be amazed at how much you will learn in 15 weeks.
If you do not have any programming experience, some concepts will take some time to sink in. Do not worry too much if you feel like you are in a fog at times. The assignments are the best way to track your progress through the material.
Usually the biggest problem students encounter in the course is trying to do everything in a few hours right before an assignment is due or right before an exam. If you only think about the course a few hours each week, you will get some of the details but they will not mesh together to provide the big picture. Programming and web sites are easy once you get the big picture. The textbooks will become easily scanned references for you once you know what to look for and why you are looking for it.
Cramming does not work very when dealing with the material in this course. This is because the material in the course is actually very easy once you "get it" – once you understand some basic principles. No amount of memorization will make up for not having the big picture. Try not to get stuck on any one thing – it is all easy once you "get it." If you do get stuck on something and feel like you are going in circles, ask for help, look at something else, or come at the problem from a different direction.
The course moves rather quickly through a lot of material. The first few week focus on programming and work from the textbook – the later weeks will use materials that are provided and available from the world‐wide web.
Learning Objectives
The purpose of this course is to provide incoming SI Students with an understanding of the kinds of technology that students will encounter during their time as an SI student as well as in their employment once they graduate from SI. The course covers a wide range of topics, spending 1‐2 weeks on each topic and then moving on.
The Learning Objectives for SI502 are to give the student solid competency in:
- Computer Architecture
- Software Development
- Internet Technologies
- Web Technologies
- Service Oriented Architecture
- Database Modeling
- Web Search Technology
- Security of Information Systems
After completing SI502 successfully, the student should be
- Comfortable in courses with a technical focus,
- Able to participate as a team member in the analysis, design, development, and deployment of software and technology for an organization, and
- Be able to act as a facilitator between technical and non‐technical staff within an organization or project.
About the Creators
Charles Severance
Charles is currently a Clinical Associate Professor and teaches in the School of Information at the University of Michigan. Charles also works with the IMS Global Learning Consortium as the IMS Affiliate Coordinator. Previously he was the Executive Director of the Sakai Foundation and the Chief Architect of the Sakai Project.
Charles is the author of the book, "Using Google App Engine" from O'Reilly and Associates. He also wrote the O'Reilly book on High Performance Computing. Charles has a background in standards including serving as the vice-chair for the IEEE Posix P1003 standards effort and edited the Standards Column in IEEE Computer Magazine from 1995-1999.
Charles is active in television and radio as a hobby, he has co-hosted several television shows including "Nothin but Net" produced by MediaOne and a nationally televised program about the Internet called "Internet:TCI". Charles appeared for over 10 years as an expert on Internet and Technology as a co-host of a live call-in radio program on the local Public Radio affiliate (www.wkar.org).
Chuck's hobbies include off-road motorcycle riding, karaoke and playing hockey. more...
- Ph.D. Computer Science, Michigan State University
- M.S. Computer Science, Michigan State University
- B.S. Computer Science, Michigan State University
Document Title | Creator | Downloads | License |
---|---|---|---|
Syllabus |
Charles Severance
|
Document Title | Creator | Downloads | License |
---|---|---|---|
Week 01 Assignment: Software Installation - Making Screen Shots |
Charles Severance
|
||
Week 02 Assignment: Zelle Chapter 1 |
Charles Severance
|
||
Week 03a Assignment: Writing some Python |
Charles Severance
|
||
Week 03b Assignment: Data Mbox Short |
Charles Severance
|
||
Week 04 Assignment: Being Careful with your Input |
Charles Severance
|
||
Week 05 Assignment: Figuring out Who has the most Commits |
Charles Severance
|
||
Week 06 Assignment: Networking Part 1 |
Charles Severance
|
||
Week 06a: Midterm Practice - Counting From Lines |
Charles Severance
|
||
Week 06b: Midterm Practice - Networking Study Questions |
Charles Severance
|
||
Week 07 Assignment: HTML and CSS |
Charles Severance
|
||
Week 09 Assignment: Data Representation |
Charles Severance
|
||
Week 10 Assignment: Data Modelling |
Charles Severance
|
||
Week 12 Assignment: Programming Python |
Charles Severance
|
Document Title | Creator | Downloads | License |
---|---|---|---|
Instructions for Using Podcasts in CTools |
Charles Severance
|
||
Week 10 Handout: CSS |
Charles Severance
|
Document Title | Creator | Downloads | License |
---|---|---|---|
Week 01a: First Day |
Charles Severance
|
||
Week 01b: Computers and Programs (Ch 1) |
Charles Severance
|
||
Week 03a: Writing Simple Programs (Ch 2) |
Charles Severance
|
||
Week 03b: Computing with Strings (Ch 4) |
Charles Severance
|
||
Week 04a: Decision Structures (Ch 7) |
Charles Severance
|
||
Week 04b: Loop Structures and Booleans (Ch 8) |
Charles Severance
|
||
Week 05a: Computing with Numbers (Ch 3) |
Charles Severance
|
||
Week 05b: Data Collections (Ch 11) |
Charles Severance
|
||
Week 06: Midterm Review |
Charles Severance
|
||
Week 07a: Networking Part 1 |
Charles Severance
|
||
Week 07b: Larry Smarr - Scientific Computing |
Charles Severance
|
||
Week 09a: Networking Part 2 |
Charles Severance
|
||
Week 09b: Network IP Layer |
Charles Severance
|
||
Week 10a: HTML |
Charles Severance
|
||
Week 10b: CSS |
Charles Severance
|
||
Week 11a: Sessions and Cookies |
Charles Severance
|
||
Week 11b: Network Programming |
Charles Severance
|
||
Week 12a: Web Services and APIs |
Charles Severance
|
||
Week 12b: Introducing SOA: The Service Oriented Approach |
Charles Severance
|
||
Week 12c: Understanding the POSIX Open System Reference Model |
Charles Severance
|
||
Week 14a: Databases |
Charles Severance
|
||
Week 14b: Databases |
Charles Severance
|
||
Week 15: Final Review |
Charles Severance
|
Document Title | Creator | Downloads | License |
---|---|---|---|
Textbook: Python for Informatics |
Charles Severance
|
Jump to:
Document Title | Creator | Downloads | License |
---|---|---|---|
Instructions for Using Podcasts in CTools |
Charles Severance
|
||
Week 01 Assignment: Software Installation - Making Screen Shots |
Charles Severance
|
||
Week 01a: First Day |
Charles Severance
|
Document Title | Creator | Downloads | License |
---|---|---|---|
Week 01b: Computers and Programs (Ch 1) |
Charles Severance
|
||
Week 02 Assignment: Zelle Chapter 1 |
Charles Severance
|
Document Title | Creator | Downloads | License |
---|---|---|---|
Week 03a Assignment: Writing some Python |
Charles Severance
|
||
Week 03a: Writing Simple Programs (Ch 2) |
Charles Severance
|
||
Week 03b Assignment: Data Mbox Short |
Charles Severance
|
||
Week 03b: Computing with Strings (Ch 4) |
Charles Severance
|
Document Title | Creator | Downloads | License |
---|---|---|---|
Week 04 Assignment: Being Careful with your Input |
Charles Severance
|
||
Week 04a: Decision Structures (Ch 7) |
Charles Severance
|
||
Week 04b: Loop Structures and Booleans (Ch 8) |
Charles Severance
|
Document Title | Creator | Downloads | License |
---|---|---|---|
Week 05 Assignment: Figuring out Who has the most Commits |
Charles Severance
|
||
Week 05a: Computing with Numbers (Ch 3) |
Charles Severance
|
||
Week 05b: Data Collections (Ch 11) |
Charles Severance
|
Document Title | Creator | Downloads | License |
---|---|---|---|
Week 06 Assignment: Networking Part 1 |
Charles Severance
|
||
Week 06: Midterm Review |
Charles Severance
|
||
Week 06a: Midterm Practice - Counting From Lines |
Charles Severance
|
||
Week 06b: Midterm Practice - Networking Study Questions |
Charles Severance
|
Document Title | Creator | Downloads | License |
---|---|---|---|
Week 07 Assignment: HTML and CSS |
Charles Severance
|
||
Week 07a: Networking Part 1 |
Charles Severance
|
||
Week 07b: Larry Smarr - Scientific Computing |
Charles Severance
|
Document Title | Creator | Downloads | License |
---|---|---|---|
Week 09 Assignment: Data Representation |
Charles Severance
|
||
Week 09a: Networking Part 2 |
Charles Severance
|
||
Week 09b: Network IP Layer |
Charles Severance
|
Document Title | Creator | Downloads | License |
---|---|---|---|
Week 10 Assignment: Data Modelling |
Charles Severance
|
||
Week 10 Handout: CSS |
Charles Severance
|
||
Week 10a: HTML |
Charles Severance
|
||
Week 10b: CSS |
Charles Severance
|
Document Title | Creator | Downloads | License |
---|---|---|---|
Week 11a: Sessions and Cookies |
Charles Severance
|
||
Week 11b: Network Programming |
Charles Severance
|
Document Title | Creator | Downloads | License |
---|---|---|---|
Week 12 Assignment: Programming Python |
Charles Severance
|
||
Week 12a: Web Services and APIs |
Charles Severance
|
||
Week 12b: Introducing SOA: The Service Oriented Approach |
Charles Severance
|
||
Week 12c: Understanding the POSIX Open System Reference Model |
Charles Severance
|
Document Title | Creator | Downloads | License |
---|---|---|---|
Week 14a: Databases |
Charles Severance
|
||
Week 14b: Databases |
Charles Severance
|
Document Title | Creator | Downloads | License |
---|---|---|---|
Week 15: Final Review |
Charles Severance
|