ECE/CS 541:
Computer Systems Analysis

Fall 2016

Time and Location 9:30-10:45 a.m. Wednesday and Friday, 4070 ECE Building. Please also reserve Mondays 9:30-10:45 for an occasional make-up period.  These will be announced individually. The make-up classes will be held in 141 CSL.

Prof. David M. Nicol
(dmnicol AT
451 Coordinated Science Lab

Teaching Assistant

Kartik Palani
(palani2 AT
448 Coordinated Science Lab

Office Hours

Prof. David M. Nicol 

Wednesday 3:00-4:00 p.m. 

Friday 11:00 a.m. – 12:00 p.m.; and by appointment.

Kartik Palani

Tuesday 10:00 - 11:00 a.m.; and by appointment.


Maple [APPL Library] [Introduction]

Python [Instructions]

Exams Midterm: October 19 in Class

Course Schedule

Aug 24 Introduction [notes][video]
Aug 26 Probability Review [notes][Monty Hall[video 1][video 2]
Aug 31 Probability Review Cont. [notes] [video]
Sept 2 Combinatorial Modeling 1 [notes] [video]
Sept 7 Combinatorial Modeling 2 [notes] [video]
Sept 14 State-Space Modeling 1 [notes] [video]
Sept 21 State-Space Modeling 2 [notes] [video] [maple video]
Sept 23 DTMC Examples [notes] [codebase]
Sept 28 State-Space Modeling 3 [notes] [video]
Oct 5 State-Space Modeling 4 [notes] [video]
Oct 7 State-Space Modeling 5 [notes] [video] [codebase]
Oct 21 Queuing Theory 1 [notes][video]
Oct 24 Queuing Theory 2 [notes][video]
Nov 4 Pseudo-Random Number Generation [notes][video]
Nov 9 Random Variates [notes][Intro][Inverse Transform][Sampling Normal Dist][Random Permutations][Rejection Sampling][Convolution & Alias Table]
Nov 16 Discrete Event Simulation [notes][Intro][Event Lists][Code | Video][Code | Video]
Nov 18 Output Analysis [notes][Intro][CI][Initialization Bias][Batch Means]
Nov 30 Stochastic Activity Networks [notes]
Dec 2 Design of Experiments [notes][video]

Assignments & Projects

Due Sept 7 Getting Acquainted with APPL [HW][Video]
Due Sept 16 Problem Set 1 [HW] [Solution]
Due Sept 30 Problem Set 2 [HW] [Solution]
Due Oct 14 Problem Set 3 [HW] [Solution]
Due Oct 17 & Nov 4 Project 1 [Description]
Due Dec 1 Problem Set 4 [HW]
Due Dec 12 Project 2 [Description]




No required text. There are readings from research papers and texts on reserve at the Grainger Engineering Library. [List of reserves]


ECE 313 or equivalent. At least one 400-level or higher course in computer architecture or networks.


For any given week, slides and lectures for the coming week will be available approximately a week in advance, on the course website. I’ll expect you to have gone over the slides and lectures before the class meets.  Class time will be spent on any questions you have about the assigned material, and then focus on in-class problem solving, both with me and Kartik demonstrating solutions, and also you working them.   Class attendance and participation is expected. 


ECE 541/CS 541/CSE 524 is a comprehensive introduction to methods for computer system and network analysis. It focuses on methods that are applicable to a wide range of systems and practical uses and implementations of these methods. Broadly speaking, the course is divided into three parts: analytic/numerical modeling, simulation, and measurement. Each of these three approaches to computer system and network analysis has important uses, and will be covered in detail. Using each of these methods, the course will address models for performance, dependability (reliability and availability), security (availability, integrity, confidentiality), survivability, and performability (combined performance/dependability/security) analysis.

In doing so, it will first briefly review stochastic processes, as applied to computer system and network analyses. It will then study dependability-specific methods (fault trees, reliability block diagrams), single queues, networks of queues, and product-form analysis techniques. Finally, it will address techniques based on stochastic Petri nets and stochastic activity networks, which are appropriate for performability analysis. In doing so, it will briefly address numerical issues in the solution of both steady-state and transient models.

The simulation portion will first provide an overview of process and discrete-event-based simulation. It will then address the issues of random variable generation, and issues related to simulator execution: initial transient determination, stopping criteria, statistical issues, and design of experiments. Finally, we will discuss techniques to speed up a simulation, including variance reduction techniques.

The measurement part will cover issues in measurement-based evaluation: the use of benchmarks and their validity. It will also discuss the use of fault injection to estimate the dependability of fault-tolerant systems.

This course is intended to be a fun, interactive introduction to computer system analysis. Hands-on learning, through the use of software tools in homework and projects, will be emphasized. Students from all areas of electrical and computer engineering and computer science, as well as other engineering disciplines, are encouraged to enroll.

Grading Policy

Grades will be assigned based on performance on homeworks, reading reports, 2 projects, a mid-term, and a take-home final. The weight assigned to each component will be as follows:

  • Projects, 40% (two at 20% each) 
  • Homework/Classroom, 20% 
  • Midterm, 20%
  • Final, 20%.

Course Rules

  1. Reading reports and homeworks must be done individually. General ideas regarding homework may be discussed (this is encouraged), but the work handed in must be your own.
  2. Projects and the presentation will be done in groups. Students must clearly state their contributions to the project and make individual presentations. Different grades may be assigned to different people in a project.
  3. All work must be completed during the semester; no incompletes will be given except under extenuating circumstances.
  4. No late assignments are accepted; all assignments are due at the beginning of class on the due date, or by the time stated, if a specific time is stated.