SI 502 - Networked Computing: Storage, Communication, and Processing

Image of network cables

Image adapted from waffler under a Creative Commons license: BY.

Term:
Winter 2009
Published:
January 21, 2009
Revised:
June 5, 2015

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

  1. Comfortable in courses with a technical focus,
  2. Able to participate as a team member in the analysis, design, development, and deployment of software and technology for an organization, and
  3. Be able to act as a facilitator between technical and non‐technical staff within an organization or project.

About the Creators

Image of Dr. Charles Severence

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
Image of network cables

Image adapted from waffler under a Creative Commons license: BY.

Term:
Winter 2009
Published:
January 21, 2009
Revised:
June 5, 2015

Syllabus

Document Title Creator Downloads License

Syllabus

Charles Severance

Assignments

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

Handouts

Document Title Creator Downloads License

Instructions for Using Podcasts in CTools

Charles Severance

Week 10 Handout: CSS

Charles Severance

Lectures

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

Supplemental Readings

Document Title Creator Downloads License

Textbook: Python for Informatics

Charles Severance
Image of network cables

Image adapted from waffler under a Creative Commons license: BY.

Term:
Winter 2009
Published:
January 21, 2009
Revised:
June 5, 2015

Week 01: Programming and Computers Part 1

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

Week 02: Programming and Computers Part 2

Document Title Creator Downloads License

Week 01b: Computers and Programs (Ch 1)

Charles Severance

Week 02 Assignment: Zelle Chapter 1

Charles Severance

Week 03: Simple Programs

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

Week 04: Decisions and Loops

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

Week 05: Collections and Types

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

Week 06: Midterm Review

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

Week 07: Internet Technologies Internet History Internet Structure

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

Week 09: Internet Technologies Internet Applications HTTP Protocol

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

Week 10: Understanding the Web HTML and CSS

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

Week 11: Understanding the Web Sessions and Cookies Scraping the Web

Document Title Creator Downloads License

Week 11a: Sessions and Cookies

Charles Severance

Week 11b: Network Programming

Charles Severance

Week 12: Web Services and Data Formats

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

Week 14: Databases

Document Title Creator Downloads License

Week 14a: Databases

Charles Severance

Week 14b: Databases

Charles Severance

Week 15: Final Review

Document Title Creator Downloads License

Week 15: Final Review

Charles Severance