Spring 2017 — Informatics DepartmentBren School of ICSUC Irvine
ICS 10 Course Reference

How Computers Work

Instructor: David G. Kay, 5056 Donald Bren Hall (kay@uci.edu). TA: Abhidnya Patil (abhidnyp@uci.edu). Reader: Jungyoun Ku.

Quick links: Assignments Blown to Bits book Piazza Q&A (public) Email archive Resources

Course goals and learning outcomes: These days, everybody has to make decisions about computer systems and information technology. What computer or cellphone should you (or your company) buy? Whom should you hire to design your web site or to set up a network for your business? What precautions should you take before doing online banking from your cellphone or posting pictures on Facebook? How do you decide which way to vote on ballot propositions that relate to the internet?

Because technology changes rapidly, the best answers to these questions won't be the same next year as they are today. Your best strategy for making good decisions over the longer term is to know not just the current details but the underlying concepts of computing; they'll have a longer "shelf life." This course looks "under the hood" at modern computing systems, not because most students will become computer professionals and have careers working under the hood, but because gaining some concrete knowledge about how computers work is the best way to learn those underlying, long-shelf-life concepts.

Prerequisite courses and concepts: This course was designed for majors outside of the School of Information and Computer Sciences; it has no academic prerequisites. We do expect you to have these basic computing skills: Searching and browsing the Web, reading and sending Email, downloading files, viewing and printing PDF (Adobe Acrobat) documents, creating simple documents in a conventional word processor (like Word or Pages or NeoOffice or Google Docs), and creating or saving documents for Email and other purposes in plain text form (files whose names end in .txt, not .doc or .html). If you need to brush up on any of these, let us know and we'll help.

Meeting place and times: Lecture meets Tuesdays and Thursdays from 11:00 a.m. to 12:20 p.m. in Humanities Hall 178.

The computer screen and audio of each class will be recorded and available through UCI Replay; after each class, you will receive electronic mail with the link for access. The UCI Replay process is not 100% reliable; some classes may end up not being recorded and classes where we use the whiteboard or overhead projector will not have those visuals captured at all. Practically, this means you should plan to attend class in person and not count on recordings being available. UCI Replay recordings are good as a backup, but they're no substitute for regular in-person attendance.

Lab hours: The TA wil schedule optional office/lab hours as needed for each assignment; stay tuned to your Email for days and times. These will probably be held in the ICS Open Lab, ICS 364.

Office hours: You are welcome to drop by my office at any time. If I'm there and not immersed in something else, I'll be glad to chat about the course material or other topics. I will definitely be in or near my office Tuesdays from 3:30 to 4:00 and Thursdays from 10:00 to 10:30, during which course-related matters will have first priority. I may adjust these times at the end of the first week. Of course emergencies may come up, but I will try to give advance notice of any change. I'll also be happy to make arrangements for other times during the week; "making an appointment" is no big deal (but if you make one, don't skip it without getting in touch). The quickest and most effective way to reach me is by electronic mail; the quickest way to get most course-related questions answered is on piazza.com.

Questions and announcements: We'll use piazza.com for public course-related questions. If you have an individual issue you'd like to raise with the instructor and TA, send us electronic mail to the address ics10@uci.edu. We will never intentionally ignore a message, so if you don't receive a response, write again; sometimes overactive spam filters snag a legitimate message. Using course-specific subject lines and your UCInet Email address will help your messages get noticed.

We will also send course announcements by Email to the official course mailing list, so you should check your Email regularly. Note that this mailing list goes to the Email address that the registrar has for you (your UCInet ID). If you prefer to read your Email on another account, you should set your UCInet account to forward your Email to your preferred account (see how in the Advice section below). Don't let this slide; if you miss official announcements, your grade could suffer.

This course has a home page at http://www.ics.uci.edu/~kay/courses/10/; there's an archive of official course Email at http://eee.uci.edu/17s/w3m3/36440.

Readings and course materials: There is no single textbook that covers all the course material. We may assign readings from a variety of sources, nearly all of them available on line. One source of readings may be Blown to Bits: Your Life, Liberty, and Happiness after the Digital Explosion, by Hal Abelson, Ken Ledeen, and Harry Lewis; the full text is available for free on line at www.bitsbook.com.

Course structure:
Assignments (35% of the course grade), some with pencil and paper and some on the computer in the lab. Typically the next assignment will show up on the assignments page right around the time the previous one is due; it will be up to you to find and read them.
Class participation (10%). This mostly involves showing up to class and participating actively in partnered assignments. It also helps to give good answers on Piazza occasionally.
One midterm, given in class on Thursday, May 4 (20%)
One final exam, on Tuesday, June 13, from 10:30 a.m. to 12:30 p.m. (35%)

Your TA has primary responsibility for grading your work; go to him or her first for any questions about grading or scoring. If that does not resolve your question, then see the instructor. The TA and instructor will be happy to correct any errors that do occur, but we must ask that you bring us your grading questions with a week after the item is returned; the course moves quickly and we imply can't deal with assignments long past.

We determine final grades neither on a formal curve (with equal numbers of As and Fs, Bs and Ds, and so on) nor on a straight, fixed scale. Grades below C are rare in this course; they result mostly from not completing assignments or otherwise not being engaged with the course. We recommend that you focus not on letter grades but on learning what's necessary to earn high scores; the grades will follow from that.

We're required to say that in unusual circumstances, these criteria could change, but we do not expect that to happen.

Special needs: Any student who feels he or she may need an accommodation due to a disability should contact the UCI Disability Services Center at (949) 824-7494 as soon as possible to explore the possible range of accommodations. We encourage all students having difficulty, whether or not due to a disability, to consult privately with the instructor at any time.

What you must do right now to get started in ICS 10:
— If you do not have a UCInet ID, get one. See http://activate.uci.edu/.
— If you prefer to read your electronic mail on an account other than your UCInet account (which is a good idea, since if your UCInet account's mailbox fills up, you stop receiving mail), redirect your mail at http://www.oit.uci.edu/email/deliverypoint.html
— Complete the ICS 10 Questionnaire at eee.uci.edu (by the end of the first week).
— Sign yourself up for ICS 10 on Piazza.com; that's where course-related questions will mostly be answered.
— Go to checkmate.ics.uci.edu, log in with your UCInet ID, choose "Course Listing" and "Spring 2017," click "Go" next to ICS 10, and then click "List me for this course." You'll submit most of your work electronically; this step is necessary to set that up.

Good advice and helpful hints:

Check your electronic mail regularly; this is an official channel for course announcements. When sending course-related mail, start the subject line with "ICS 10" or "How Computers Work".

Attendance in class is essential; concepts and issues will come up in class that aren't easily available from other sources, and those concepts will find their way into the assignments and exams. Also, class participation in various forms will count towards the course grade.

Read each assignment with care, more than once. Reading technical specifications requires different skills than reading non-technical material; acquiring those skills is one goal of this class and one reason it provides General Education credit. Expect to refer back to the assignment often, and check it first when you have questions about what's required or how to proceed.

Don't expect to complete every assignment in one sitting, especially not the night before it's due. If you start early, you'll have plenty of time to ask questions.

Always keep your own copy of each assignment, both electronically and on paper; if an assignment should get lost in the shuffle (or if the Checkmate machine should crash), we'll expect you to be able to supply a replacement easily.

If you find yourself having trouble or getting behind, speak with the instructor or your TA. But never take the shortcut of copying someone else's work and turning it in; the consequences can be far worse than just a low score on one assignment. UCI and the School of ICS take academic honesty very seriously; under current policy, every incident and the parties involved must be reported to the campus Office of Academic Integrity and Student Conduct. For a more complete discussion, see the ICS academic honesty policy: http://www.ics.uci.edu/ugrad/policies/index.php.

Approximate course outline:

Week Date Topic
1. 4 April
Introduction to the course, computers, and information
6 April
Introduction to Snap/BYOB/Scratch
11 April
Overview of the internet

13 April
Internet operation and implications
18 April
The processor (CPU): fundamental machine operations

20 April
The processor (continued)
4. 25 April
Software and programming
27 April
Evolution of programming languages and tools
5. 2 May
Algorithms and efficiency
4 May
9 May
Representing information digitally
11 May
Redundancy and compression
7. 16 May
Secondary storage and peripheral devices
18 May
Operating systems, networks, security
23 May
Human-computer interaction
25 May
Information visualization
30 May
Legal and social issues
1 June
Legal and social issues (continued)
6 June
Future trends and developments
  8 June
Epilogue and review
13 June
Final Exam, Tuesday 13 June, 10:30 a.m. to 12:30 p.m.