COURSES
Search the website
 
   
   
 
EE 465 : Probabilistic Methods in Computer Systems Modeling
CS 402 : Operating Systems
EE 650 : Advanced Topics in Computer Networks
EE 555 : Broadband Network Architectures
CS 571 : Web Technologies


EE 465 : Probabilistic Methods in Computer Systems Modeling

Course Coordinator:
Konstantinos Psounis, Department of Electrical Engineering-Systems

Topics:
Basic Probability: random variables, independence, expectation
Conditioning: conditional probability and expectation
Markov Chains: discrete and continuous time
Stochastic Processes: Poisson
Queueing Theory: single and multi server M/M/. queues, networks of queues, the M/G/1 queue
Simulation: generating random variables, implementing a simulator

Course Objectives:
Probabilistic tools are among the most useful for modelling real systems and doing performance analysis. This course is designed to provide students with the ability to understand and conduct computer systems modelling and performance analysis. To establish the necessary background, the course starts with an introduction to basic probability tools and concepts. It then builds up to more advance topics that are particularly useful in modelling, such as Markov models and queueing theory. Further, the course covers basic methods for conducting simulations.

Course Outcomes:
1. Understand random variables, moments and expectation.
2. Understand conditional probabilities and conditional expectation.
3. Understand the dynamics of discrete time Markov chains.
4. Use discrete time Markov chains to model computer systems.
5. Understand the properties and modelling usefulness of the exponential distribution and the Poisson process.
6. Learn about continuous time Markov chains.
7. Use continuous time Markov chains to model real systems.
8. Learn the fundamentals of queueing theory.
9. Learn about single and multi server queues with Poisson arrivals and exponential service requirements.
10. Learn how to analyze a network of queues with Poisson external arrivals, exponential service requirements and independent routing. (Jackson networks)
11. Learn the basics of the M/G/1 queue.
12. Understand how to conduct simulations.
13. Apply basic probability techniques and models to analyze the performance of computer systems, and, in particular, of networks.

CS 402: Operating Systems

Course Coordinator:
Micheal Crowley, Department of Computer Science

Course Objectives
Consider and address the issues in the design of modern operating systems of both single and multiple processor systems. Students will also obtain programming experience in operating system implementation through four projects using the Nachos operating system simulator code. These projects will give students the opportunity to program portions of an operating system.

Course Outcomes:
1. Understand the difference between processes and threads.
2. Understand the issues and use of locks, semaphores and monitors for synchronizing multithreaded systems and implement them in multithreaded programs.
3. Understand the issues of scheduling of user-level processes/threads.
4. Design and implement multiprocessing in Nachos
5. Understand the concepts of deadlock in operating systems and how they can be managed/avoided.
6. Understand virtual memory management.
7. Design and implement virtual memory management in Nachos.
8. Design and implement improvements to the Nachos network system.
9. Understand the types of security problems faced by operating systems and how to minimize these problems.
10. Understand the organization and synchronization of distributed operating systems.
11. Understand the differences between multiprocessor and multicomputer configurations.
12. Understand communication in distributed systems and how it can be used in remote procedure calls, remote objects and message-oriented communication.
13. Understand organizing principles for distributed systems through election algorithms.


EE 650 Advanced Topics in Computer Networks

Coordinator:
Konstantinos Psounis, Department of Electrical Engineering-Systems

Topics:
(i) Basic probability and queueing, with examples of usage in switching and active queue management. (A brief introduction to these research topics will be provided.)
(ii) Lyapunov functions and fluid analysis used in proving various stability and throughput results for network switches.
(iii) Combinatorics (bipartite matchings and stable marriages) used to analyze scheduling mechanisms in switches.
(iv) Fluid models used in modelling long- and ahort-lived TCP flows. (A brief review of TCP will be provided.)
(v) Simple control theory for Internet congestion control. (When not covered by a specialized 599 course.)
(vi) Probabilistic and statistical analysis of Internet and web traces. Topics include the study of the Poisson hypothesis and its applicability, the notions of self-similarity and long-range dependence, temporal correlation in traces, and the implications of heavy-tailed sizes in performance.
(vii) Basic elements of game theory used in pricing. (time permitting)

Course Objectives:
For each topic, the course first introduces the corresponding research problem/area (e.g. switching), then presents the corresponding mathematical tools/analysis (e.g. Lyapunov functions), and finally goes through recent publications (from networking venues, e.g. IEEE Infocom, ACM Sigcomm, ACM Sigmetrics, IEEE/ACM Transactions in Networking) that have successfully applied these tools/analysis. The objective of the course is to expose students to some very useful mathematical tools and teach them how to use these tools in networks research.

EE 555: Broadband Network Architectures

Course Coordinator:
John Silvester, Department of Electrical Engineering-Systems

Course Objectives:
This course focuses on the architecture and technologies (hardware and software), principles of operation, and evaluation and design of integrated broadband computer networks. The course covers a wide range of emerging technologies used in high speed access networks, campus scale networks, and regional/national scale backbone networks. The course will consider alternate communication techniques at various protocol layers (WDM, SONET, optical and electronic switching, wireless, Gigabit Ethernet, POS, Fiber Channel, FDDI, Frame Relay, ATM, etc). The course will also explore switching and routing technologies and architectures. In addition, the course will cover protocol challenges.

CS 571: Web Technologies

Course Coordinator:
Marco Papa, Department of Computer Science

Course Objectives: The course covers wide range of upcoming and fundamental Web Technologies. The goal is to familiarize and provided competent project assignments in order to enhance client side and server side programming for Web. It starts of with HTML, XML, DOM, Javascript,CSS to embellish the front end. The scripting language of Perl is seen in further details combining it with working on web servers like Apache, Jakarta Tomcat,Apache Axis. The XSLT stylesheet and XML Schemas are also studied. The upcoming technology of AJAX is rigourously experimented with and then deployment of Web Services. The aspects of Web Security, Peer to Peer Protocols, Java APIs are also breached upon.

 
 
Imagination is more important than knowledge – Albert Einstein
 
   
The University of Southern California does not screen or control the content on this website and thus does not guarantee the accuracy, integrity, or quality of such content. All content on this website is provided by and is the sole responsibility of the person from which such content originated, and such content does not necessarily reflect the opinions of the University administration or the Board of Trustees