Systems Architecture refers to the underlying machinery, both hardware and software, required to run computer applications. This course focuses on how the various components of Computer Systems fit together and interact for an important class of applications -- mobile applications. Systems for mobile applications are challenging to build because mobile applications have specific requirements for performance, energy, power, usability, security, and they interact with sensors, people, and non-computing components such as lenses, display that are not in the realm of conventional systems architecture studies. Across all these, we will in particular focus on design trade-offs and on implications.
The purpose of this course is to increase your knowledge of the subject matter and just as importantly, the goal is to provide an environment that promotes and rewards creative and deep thinking, and poses new research questions in mobile computing. Finally, this course will help sharpen your presentation skills as we provide plenty opportunities for technical presentations as well as observing others presenting.
Computer Systems and Architecture
- Computer Systems: A Programmer's Perspective, 3/e
- Introduction to Computing Systems: From Bits and Gates to C and Beyond, 2/e
- Structured Computer Organization, 6/e
- Computer Organization and Design: The Hardware Software Interface, ARM Edition
- Computer Architecture: A Quantitative Approach, 6/e
- Power-Efficient Computer Architectures: Recent Advances
- Fault Tolerant Computer Architecture
- Multiple View Geometry
- Computer Vision: Algorithms and Applications
- The H.264 Advanced Video Compression Standard
- Introduction to Modern Optics
- Designing Optics Using CODE V
- High-Performance Browser Networking
- Computer Networking: A Top-Down Approach
- Numerical Algorithms
- Convex Optimizations
- Linear Algebra: Foundations to Frontiers
- Software-Defined Radio for Engineers
- The Elements of Statistical Learning
Final grades will be assigned with these proportions:
- News Flash: 5%
Before each lecture, everyone will present a piece of recent tech news that the presenter finds interesting. It does not have to be related to the course material. Use at most 2 slides and 2 mins max. Explain the background and why the news is significant.
- Writing Critiques of Assigned Reading: 25%
Each class we will be discussing one paper. You will either be presenting the paper or writing a paper critique if you are not presenting. See the Critique Guide for my expectations and how you will be evaluated.
- Presentation of Assigned Reading: 25%
Each class we will be discussing one paper. You will either be presenting the paper or writing a paper critique if you are not presenting. See the Presentation Guide for my expectations how you will be evaluated.
You must participate in class discussions for papers that you do not present. Say something about every paper we discuss! Class attendance and participation is mandatory and will contribute to your presentation grade.
- Oral Exam: 10%
We will have an oral exam. The exam will have two components. The first component will ask students to explain the fundamental concepts and ideas that we have discussed in the class. The second component will be based on the papers that we have read so far in the class. Students should expect to articulate the main ideas of the papers, explain implementations in reasonable detail, and discuss why the conducted evaluations justify the claims or not.
- Wild and Crazy Paper: 35%
Students will propose a wild and crazy idea and write a hypothetical paper about it. You do not have to do any implementation. Rather, the project will be used as a teaching tool to enhance your understanding of the material and improve your critical thinking skills. The project will be open-ended and I will help you focus your ideas and hone your intuition and skills.
You are required to describe your idea in depth, place it in the context of the class and of prior related work, fully motivate your idea, phrase hypotheses on how implementing your idea will improve and affect the user and system, design an evaluation that will test the hypotheses, and show hand-crafted evaluation results assuming your proposed system works as expected. The end result of the project should be a written report that roughly follows the style and length of about 6 pages as well as a presentation that will be given to the entire class.
Everyone — the instructor, TAs, and students — must be respectful of everyone else in this class. All communication, in class and online, will be held to a high standard for inclusiveness: it may never target individuals or groups for harassment, and it may not exclude specific groups. That includes everything from outright animosity to the subtle ways we phrase things and even our timing.
For example: do not talk over other people; don't use male pronouns when you mean to refer to people of all genders; avoid explicit language that has a chance of seeming inappropriate to other people; and don't let strong emotions get in the way of calm, scientific communication.
If any of the communication in this class doesn't meet these standards, please don't escalate it by responding in kind. Instead, contact the instructor as early as possible. If you don't feel comfortable discussing something directly with the instructor — for example, if the instructor is the problem — please contact the advising office or the department chair.
Student conduct in CSC 572 is governed by the College Academic Honesty Policy and the Undergraduate Laboratory Policies of the Computer Science Department. The teaching staff will enforce them aggressively and strictly. The following are additional details specific to CSC 572.
Exams in CSC 572 must be strictly individual work.
Collaboration on assignments among team members is of course expected. Collaboration on assignments across teams (or among individuals on non-team-based assignments) is encouraged at the level of ideas. Feel free to ask each other questions, brainstorm on algorithms, or work together at a whiteboard. You may not claim work as your own, however, unless you transform the ideas into substance by yourself. This means you must leave any brainstorming sessions with no written notes.
Similarly, you are welcome to read anything you find on the web, but you must close all web pages before beginning to write your code. You are not permitted to repeatedly consult a source. You can read it, understand it, put it away, and write your own similar code, but you must not copy anything. Both electronic copy-and-paste and copying through short-term memory are expressly forbidden.
To minimize opportunities to steal code, all students must protect the directories in which they do their work.
For purposes of this class, academic dishonesty is defined as:
- Any attempt to pass off work on an exam that didn't come straight out of your own head.
- Any cross-team collaboration or copying of artifacts (substance) in which the collaborating parties don't clearly and prominently explain exactly who did what, at turn-in time.
- Any activity that has the effect of significantly impairing the ability of another student to learn. Examples here might include destroying the work of others, interfering with their access to resources, or deliberately providing them with misleading information. (Note too that grades in CSC 572 are assigned on the basis of individual merit, so there is no benefit, even a dishonest one, to be gained by sabotaging the work of others.)
Finally, if you have any questions about what is permitted and what is not, please ask!