Skip to content

Eecs 168 Homework Answers

Unformatted text preview: University of California at Berkeley Department of Electrical Engineering and Computer Sciences CS168, Homework 2 Due at Noon on Thursday, October 16, 2014 INSTRUCTIONS—READ THEM NOW! - - - - Submit this homework using Pandagrader/GradeScope ( To submit, print out this document, write your answers on it, then scan it and upload to Pandagrader. Scanning services are available from the Berkeley Library System ( Be sure to double-check your submission to ensure that Pandagrader has scanned in your solution correctly. You may want to consider using a PDF markup program to insert your answers into this document in the provided boxes. Use your email address to sign in to Pandagrader. If you don’t have a Pandagrader account, click ”Login” and then ”Forgot Password” on the Pandagrader website and follow the instructions. If you have any problems with the submission process, it is your responsibility to come to office hours prior to the homework’s due date. If you need more space for work, or you write code to calculate a result, attach these materials at the end of the homework when you submit. In general, if something is unclear, write down your assumptions as part of your answer. If your assumptions are reasonable, we will endeavor to grade the question based on them. If you have questions, ask on Piazza or come to office hours. Please write your SID on each page! a. nonymous Name – Please Print! 1 2 3 4 5 SID 6 (Signature) 7 8 Friday 1:90-2:90 Discussion Section (Day/Time) Q1. Miscellaneous Short Questions [26 points] 1a) [2 points] Consider the following network containing two regional and two national ISPs, each of which is an autonomous system. AS B provides national service to regional AS A. AS C provides national service to regional AS D. B and C peer with each other in two places using BGP. Consider traffic going from A to D. B would prefer to hand that traffic over to C on the West C BGP. Consider tra c going to a A to D. B would prefer to hand that tra c over other in two places usingoast (so that C would have frombsorb the cost of carrying the traffic cross-­‐country), while to C on the WestC would prefer to get thaveraffic via its East Coast peering point with B (so that B would have Coast (so that C would he t to absorb the cost of carrying the tra c cross-country), while C would prefer to get the he traffic across the country). What BGP mechanism might C use, so that B would hand carried t tra c via its East Coast peering point with B (so that B would have carried the tra c across the over A-­‐to-­‐D traffic at its East Coast peering sooint? B would hand over A-to-D tra c at country). What BGP mechanism might C use, p that its East Coast peering point? To answer this question, you will need to dig into the BGP specification. (P42) In Figure 1, suppose that stub network V is a customer of ISP A. Suppose that B and C have a peering relationship, and A is a customer of both B and C. Suppose that A would like to have the tra c destined to W to come from B only, and the tra c destined to V from either B or C. How should A advertise its routes MED / Multi C receive? to B and C? What AS routes doesExit Descriminator 1b) [2 points] Indicate whether the following statements are True or False by circling the appropriate answer: 1: Problem 5 topology Figure (P51) In Section 4.5.1, weTrue False link-state routing algorithm fornot used in practice paths that studied Dijkstra’s The TTL field in IPv4 is computing the unicast are individually the least-cost paths from the source to all destinations. The union of these paths might be True False IPv6 r (or a shortest unicast path tree, if thought of as forming a least-unicast-cost path tree outers do not fragment packets all link costs are identical). By constructing a counterexample, show that the least-cost path tree is not always the same as a CIDR enables more efficient use of the IP address space minimum spanning tree. True False True False Poison-­‐Reverse eliminates the counting-­‐to-­‐infinity problem 2 1c) [2 points] Routing protocols such as RIP (distance-­‐vector) and OSPF (link-­‐state) are typically implemented at: (Circle one) a. The control processor of each router in a domain b. The control processor at only the border routers of a domain c. The line-­‐cards of each router in a domain d. None of the above 1d) [2 points] Which of the following are true? The aggregation of multiple IP addresses into a single prefix: (Circle all that are true) a. Reduces the number of routing entries but complicates the route lookup process b. Reduces the number of routing entries and simplifies the route lookup process c. Is rendered unnecessary by multi-­‐homing d. Leads to non-­‐optimal routing paths 1e) [6 points] Consider the following network, with nodes A through J. The numbers indicate the link weights or costs (so shortest paths are paths with the lowest cumulative cost). In the following questions, use the alphabetical ordering to break ties when there are several shortest paths (i.e., you pick the path with the next hop that is earliest in the alphabet). If the path loops, just list two repetitions of the loop and put “...” afterwards to indicate that it continues. A 6 2 B 3 2 4 2 D 4 C E 3 H 2 3 2 1 F 3 I G 1 5 J 1e1) Assuming the network operator uses link state routing, after everything has converged, what path would a packet from C to H take? CBGIH 1e2) Using the same network as above, imagine that the cost of the link G-­‐I has changed to 15. G announces this change, and all nodes except F get this update (i.e., F still thinks G-­‐I is cost 1). C now sends a packet to H. What path would the packet take? CBGFGF… 1f) [6 points] Consider the BGP topology below. Suppose that stub networks V and W are customers of ISP A. Suppose that B and C have a peering relationship, and A is a customer of both B and C. Suppose that A would like to mostly use the Gao-­‐Rexford rules, but would like to have the traffic destined to W come only from B. 1f1) What routes should A advertise to B? W: A W V: A V A: A? 1f2) What routes should A advertise to C? V: A V A: A? 1f3) What AS routes does C receive? W: B A W V: B A V V: A V A: A? B: B? A: B A? 1g) [6 points] Consider sending an IPv4 packet over a link with an MTU of 500 bytes. The packet has an identification number of 291 and has a payload of 1,600 bytes (not including the 20 byte IP header). 1g1) What is the minimum number of fragments that will be generated? 4 1g2) Split the packet into the minimum number of fragments. Keep all fragments the same size except possibly the last one. For each fragment, what are the values of the IP header fields related to fragments (total_length, ID, fragment_offset, and the MF bit)? total_length: 500 ID: 291 fragment_offset: 0 MF: true / 1 total_length: 500 ID: 291 fragment_offset: 480 / 60 MF: true / 1 total_length: 500 ID: 291 fragment_offset: 960 / 120 MF: true / 1 total_length: 180 ID: 291 fragment_offset: 1440 / 180 MF: false / 0 Q2. IP Addressing and Forwarding Aggregation [7 points] 2a) Convert the following address to dot-­‐quad: 11000000 00000111 00011101 00001011 2b) Convert the following address to binary: 00010011 00010001 00100010 00101001 2c) In the following address and netmask, what is the binary representation of the network address? Address: 11000000 00000111 00011101 00001011 Netmask: 11000000 00000000 00000000 00000000 2d) What is the equivalent of the above netmask in CIDR slash-­‐notation? /13 or 2e) Consider the following routing table: Port 1 Port 1 Port 2 Port 4 Port 4 Port 4 Port 3 Port 4 Default Port 4 Express this using LPM, using three non-­‐default entries: Port 1 Port 2 Port 3 Default Port 4 Q3. Intra-­‐domain and Inter-­‐domain routing protocols [10 points] 3a) [4 points] Consider the network shown below. Suppose AS3 and AS2 are running OSPF for their intra-­‐AS routing protocol. Suppose AS1 and AS4 are running RIP for their intra-­‐AS routing protocol. Suppose BGP (eBGP + iBGP) is the inter-­‐AS routing protocol. Initially suppose there is no physical link between AS2 and AS4. 3a1) Router 3c learns about prefix x from which routing protocol? (Circle one) wo places using BGP. Consider tra c going from BGP to D. iB would prefer to hand th OSPF RIP e A BGP e West Coast (so that C would have to absorb the cost of carrying the tra c cross-c 3a2) refer to get the Router 3a via its East Coast hich routing protocol? (Circle one) that B would ha tra c learns about prefix x from w peering point with B (so OSPF RIP e use, iBGP ss the country). What BGP mechanism might CBGP so that B would hand over Aoast peering point? To lanswer this question, ryou will need to odig into the BGP spec 3a3) Router 1c earns about prefix x from which outing protocol? (Circle ne) OSPF RIP eBGP iBGP 3a4) Router 1d learns about prefix x from which routing protocol? (Circle one) OSPF RIP eBGP iBGP 3b) [6 points] Referring to the previous problem, once router 1d learns about x it will put an entry in its forwarding table. (You can assume that any path that router 1d hears advertised is a policy-­‐compliant one and that AS1 is a customer of both AS2 and AS3. Assume MED is not used in any router advertisements, and that a “typical” selection policy is used.) 3b1) Will 1d use 1a as the next hop for x, or will it use 1b? (i.e., will it send the packet over interface I1 or over interface I2?) Explain why in one sentence. 1a. Has the smaller intradomain cost 3b2) Now suppose that there is a physical link between AS2 and AS4, shown by the dotted line. Suppose router 1d learns that x is accessible via AS2 as well as via AS3. Will 1d be set to send packets to 1a or 1b? Explain why in one sentence. 1b. Hot potato 3b3) Now suppose there is another AS, called AS5, which lies on the path between AS2 and AS4 (not shown in diagram). Suppose router 1d learns that x is accessible via AS2 AS5 AS4 as well as via AS3 AS4. Will 1d be set to send packets to 1a or 1b? Explain why in one sentence. 1a. Prefer shorter AS path Q4. BGP [7 points] Consider a set of domains with the following customer-­‐provider-­‐peer relationships: H I peer provider E A F B peer customer G C D 4a) Assume that all these domains use “standard” Gao-­‐Rexford policies based on these relationships. 4a1) What route does A take to C? AEHFC 4a2) What route does A take to D? AEHIGD 4a3) Now assume that E and F become peers, and F and G become peers. Do any of the two routes calculated above change, and if so how? The first changes to A E F C The second stays the same 4b) For the next set of questions, we no longer use the preceding picture but just consider a set of domains M, N, O, X and Y and assume that domains do not necessarily follow the Gao-­‐ Rexford policies (i.e., you can ignore considerations about whether a domain is a peer/provider/customer of another domain). After running BGP, we see that: • • • Domain M uses the path MXN to reach domain N Domain N uses the path NYO to reach domain O Domain X uses the path XNY to reach domain Y Can we conclude that: (Circle Yes or No for each of the below) 4b1) M reaches O through the path MXNYO? Yes No 4b2) M reaches X through the path MX? Yes No 4b3) N reaches Y through the path NY? Yes No 4b4) X reaches N through the path XN? Yes No Q5. ACKs [8 points] Consider a flaky link where the initial transmission of a data packet is dropped if its number is prime (in other words, the initial transmissions of D2, D3, D5, D7, D11, D13 are dropped, but subsequent transmissions are ok). Note that the ACKs are cumulative and numbered according to the next expected packet (hence, A4 indicates the receipt of D1, D2, and D3). Hosts and are using a transport protocol with sliding window flow control with a constant window size of 5 packets and selective repeat. Three duplicate ACKs trigger a retransmission (hint: consider… how many total ACKs makes for three duplicates?). Assume that the latency of the link is significantly longer than the transmission time of 5 packets and that the retransmit timeout is much longer than the RTT. Below, fill in the first 20 packets sent from host (you don’t need to indicate what ACKs are generated, though it may be helpful and we’ve entered the first few entries below). Mark which packets are retransmits due to timeouts and which are retransmits due to duplicate acknowledgements. 1. D1 A2 2. D2 (dropped) - 3. D3 (dropped) - 4. D4 A2 5. D5 (dropped) - 6. D6 A2 7. D2 (timeout) A3 8. D7 (dropped) - 9. D3 (timeout) A5 10. D8 A5 11. D9 A5 12. D5 (timeout) A7 13. D10 A7 14. D11 (dropped) - 15. D7 (timeout) A11 16. D12 A11 17. D13 (dropped) - 18. D14 A11 19. D15 A11 20. D11 (dupack/retransmit) A13 Q6 – Fun with traceroute! (12pt) The traceroute tool is a program that traces the path (a sequence of routers) a packet follows to a destination. We’ll be using it in the questions below. 6a) [2 points] In no more than two sentences, explain how traceroute works. Sends IP packets with incrementing TTLs. Listens to ICMP Time Exceeded responses from routers as packets time out. 6b) [2 points] Use traceroute from a machine on the UCB network to record the path taken to Attach a printout of the traceroute output. If traceroute is not installed, try /usr/sbin/traceroute. Make sure to set the max hops to at least 64 using the –m option. 6c) [2 points] What are the ISPs traversed, and in what order? Hint: Look at the router names and try to visit the corresponding website. The ISPs are often, but not always, identified by the router names. You’ll find it hard to continue once things get “interesting”. Just list as many as you can. berkeley eecs.berkeley? / Corporation for Education Network Initiatives in California / hurricane electric (answers may not be exact) 6d) [2 points] Now try running traceroute to What are the ASes traversed, and in what order? List as many of the AS numbers along the path as you can. To find an AS number from an IP address, you may find the following command useful: whois –h [IP address] If you have Mac OS, the –a option on traceroute will list some AS numbers for you, but may report some as 0, which they aren’t. Use the above command to fill those in. AS25 AS2152 AS32 (answers may not be exact) 6e) [2 points] In your trace you may encounter rows with three asterisks ***. What is going on? What might have caused it? (Hint: It is not due to a disturbance in the Force.) The router isn’t sending Time Exceeded messages. (Most likely) Time Exceeded messages are being dropped due to bad network connection (this would more likely result in only one or two *s unless network was very bad!). 6f) [2 points] Why might an ISP want to disable support for traceroute? Exposes internals of their network. This gives customers/competitors information you may not want them to have! Also is a possible security risk with dubious benefit. traceroute -m 64 traceroute to (, 64 hops max, 60 byte packets 1 vlan49-gw.Millennium.Berkeley.EDU ( 0.341 ms 0.316 ms 0.548 ms 2 edge-10g-mill.EECS.Berkeley.EDU ( 1.452 ms 1.448 ms 1.432 ms 3 t1-2.inr-202-reccev.Berkeley.EDU ( 0.424 ms 0.441 ms t1-2.inr-201-sut.Berkeley.EDU ( 0.270 ms 4 xe-5-1-0.inr-001-sut.Berkeley.EDU ( 0.277 ms xe-4-1-0.inr-001-sut.Berkeley.EDU ( 0.227 ms 0.237 ms 5 ( 0.792 ms 0.807 ms 0.792 ms 6 ( 1.756 ms 1.575 ms 1.568 ms 7 ( 2.441 ms 2.445 ms ( 2.436 ms 8 ( 9.535 ms 9.556 ms 9.598 ms 9 ( 5.703 ms 5.713 ms 5.754 ms 10 ( 52.915 ms 52.907 ms 52.784 ms 11 ( 68.772 ms 67.275 ms 72.290 ms 12 ( 67.823 ms 67.850 ms 67.850 ms 13 * * * 14 Episode.IV ( 110.994 ms 110.584 ms 111.633 ms 15 A.NEW.HOPE ( 102.831 ms 102.303 ms 104.407 ms 16 ( 108.896 ms 110.684 ms 107.936 ms 17 Rebel.spaceships ( 108.432 ms 107.505 ms 109.568 ms 18 striking.from.a.hidden.base ( 103.820 ms 102.783 ms 102.651 ms 19 have.won.their.first.victory ( 107.829 ms 108.514 ms 108.358 ms 20 against.the.evil.Galactic.Empire ( 107.802 ms 107.353 ms 107.497 ms 21 During.the.battle ( 108.502 ms 107.985 ms 107.880 ms 22 Rebel.spies.managed ( 102.999 ms 102.464 ms 102.536 ms 23 to.steal.secret.plans ( 108.101 ms 113.706 ms 112.924 ms 24 to.the.Empires.ultimate.weapon ( 107.596 ms 108.055 ms 119.066 ms 25 the.DEATH.STAR ( 112.168 ms 111.662 ms 111.166 ms 26 ( 105.732 ms 105.494 ms 106.297 ms 27 ( 108.834 ms 109.528 ms 107.736 ms 28 ( 107.870 ms 107.867 ms 110.059 ms 29 ( 109.832 ms 110.119 ms 112.715 ms 30 sinister.agents ( 109.352 ms 110.958 ms 110.983 ms 31 Princess.Leia.races.home ( 111.534 ms 111.016 ms 112.330 ms 32 aboard.her.starship ( 108.570 ms 128.087 ms 108.076 ms 33 custodian.of.the.stolen.plans ( 109.297 ms 109.776 ms 110.270 ms 34 ( 110.823 ms 109.709 ms 109.209 ms 35 people.and.restore ( 110.261 ms 109.759 ms 108.125 ms 36 ( 110.260 ms 111.117 ms 108.716 ms 37 0-----I-------I-----0 ( 109.062 ms 110.542 ms 110.190 ms 38 0------------------0 ( 109.723 ms 109.669 ms 112.456 ms 39 0-----------------0 ( 106.741 ms 105.655 ms 105.650 ms 40 0----------------0 ( 112.010 ms 109.254 ms 109.740 ms 41 0---------------0 ( 110.121 ms 110.122 ms 109.994 ms 42 0--------------0 ( 110.281 ms 110.150 ms 110.738 ms 43 0-------------0 ( 112.629 ms 112.609 ms 112.608 ms 44 0------------0 ( 112.339 ms 108.867 ms 109.257 ms 45 0-----------0 ( 109.552 ms 110.438 ms 109.365 ms 46 0----------0 ( 111.816 ms 110.646 ms 110.680 ms 47 0---------0 ( 108.118 ms 106.542 ms 106.614 ms 48 0--------0 ( 111.741 ms 112.223 ms 110.439 ms 49 0-------0 ( 110.021 ms 109.803 ms 109.608 ms 50 0------0 ( 110.122 ms 109.768 ms 110.814 ms 51 0-----0 ( 112.316 ms 112.453 ms 113.440 ms 52 0----0 ( 112.838 ms 110.547 ms 110.563 ms 53 0---0 ( 109.496 ms 110.208 ms 110.158 ms 54 0--0 ( 110.344 ms 109.762 ms 109.982 ms 55 0-0 ( 113.431 ms 112.858 ms 112.903 ms 56 00 ( 112.891 ms 113.369 ms 110.521 ms 57 I ( 111.020 ms 110.464 ms 111.715 ms 58 By.Ryan.Werber ( 112.876 ms 110.808 ms 110.818 ms 59 Blizzards.Breed.CCIE.Creativity ( 109.873 ms 111.868 ms 111.936 ms 60 ( 111.939 ms 111.985 ms 113.548 ms 61 ( (Answer may not be exact) 116.719 ms * * ...
View Full Document

Welcome to the ITTC Wiki.

This site hosts web based collaboration areas for many research projects at the Information Technology and Telecommunications Center (ITTC) at the University of Kansas.

ITTC Research Labs

The Computer Systems Design Laboratory (CSDL)

The Computer Systems Design Laboratory (CSDL) will improve the design of computing systems, ranging from small, embedded elements to large, distributed computing environments. Research addresses all aspects of a system’s life cycle, including specification and synthesis. This includes attention to system verification, design, and implementation of development and implementation platforms for real-time and embedded computing.

The CSDL maintains some documentation on Software Tools that are used in the lab and also, as part of our lab research activites, we maintain a Reading Group where we read papers from the literature.

ITTC Research Projects

GpENI: Great Plains Environment for Network Innovation

The Great Plains Environment for Network InnovationGpENI (pronounced [dʒɛˈpi ni] with accent on the middle syllable and rhyming with GENI) is a regional network between The University of Kansas (KU), Kansas State University (KSU), University of Nebraska – Lincoln (UNL), and University of Missouri – Kansas City within the Great Plains Network, supported with optical switches from Ciena interconnected by Qwest fiber infrastructure, in collaboration with the Kansas Research and Education Network (KanREN) and Missouri Research and Education Network. GpENI is undergoing significant expansion to Europe and Asia using various tunneling protocols. GpENI is funded in part by the National Science Foundation GENI (Global Environment for Network Innovations) Program, as well as by the participating institutions that are contributing substantial resources.

The HybridThreads Project

The Hybridthreads systems is a real-time operating system (RTOS) which is built around a hardware/software codesign methodology. The system is designed as a new way to facilitate cooperation between hardware based computations and software based computations. The foundational idea behind the Hybridthreads system is that communication between hardware and software components should be no more difficult than communication between software components.

To implement this kind of transparent communication the Hybridthread system abstracts both hardware components and software components into threads which implement black box compuations. Communication between threads is accomplished through the use of shared memory and synchronization objects. These abstractions are well known and well understood as evidences by the vast number of complex systems which have been designed using them.

The HybridThreads project has recently moved to the University of Arkansas at The KU-based HybridThread page can still be found at KU Hybridthreads Project.

Postmodern Internetwork Architecture (PoMo)

We propose to design, implement, and evaluate through daily use a minimalist internetwork layer and auxiliary functionality that anticipates tussles and allows them to be played out in policy space, as opposed to in the packet- forwarding path. We term this design a postmodern internetwork architecture because it is a reaction against many established network layer design concepts. The overarching goal of the project, and the motivation for choosing a minimal networking layer, is to make a larger portion of the network design space accessible without sacraficing the economy of scale offered by agreeing on a common set of protocols. The primary tenets of our postmodern design are (i) strict separation of concerns, and (ii) inclusion of explicit mechanisms in support of all foreseeable policies influencing network-layer behavior.

The ResiliNets Initiative: Resilient and Survivable Networking

Society increasingly relies on computer networks in general, and the Internet in particular. Consumers rely on networks for access to information and services, personal finance, and for communication with others. The Internet has become indispensable to the routine operation of businesses and to the global economy. The military depends on network centric operations and warfare. Governments depend on networks for their daily operation, service delivery, and response to natural disaster and terrorist attacks.

Therefore, the consequences to disruption of the network are increasingly severe, and threaten the lives of individuals, the financial health of business, and the economic stability and security of nations and the world. With the increasing importance of the Internet, so follows it's attractiveness as a target from bad guys: recreational and professional hackers, terrorists, and from information warfare.

We therefore regard resilience and survivability as critical to the future of our network infrastructure. The ResiliNets initiative aims to understand and progress the state of resilience and survivability in computer networks, including the Global Internet, PSTN, SCADA networks, mobile ad-hoc networks, and sensor networks.

The Run-Time Reconfiguration Group

Advantages in Information Technology continue to play a vital role in our nation's ability to innovate and compete in the global market. Advancements in computing performance -- especially in the embedded computing systems domain -- are enabling these advantages. This project combines commercially available, hybrid devices (that is, single integrated circuits with processors, memory, and configurable hardware) and a novel run-time system with the goal of building systems with better performance and fewer resources. To accomplish this, the project is investigating and developing technology in two steps. First, every subroutine in the embedded systems application is processed to find those suitable for acceleration by configurable hardware and a new hardware feature is synthesized. Then, as the application executes, the run-time system continually reconfigures the hardware to keep the most profitable features resident. By carefully managing the overhead introduced, the aim of this work is to provide the performance advantages of custom hardware with fewer physical resources. The advantage of the particular system under investigation is that it automates reconfiguration -- which presently is an engineering-intensive, manual process. To test the effectiveness of this approach, the University of Kansas has teamed with Grand Valley State University to judge the performance of the system on applications developed by senior undergraduate students.

System-Level Design Group

The System-Level Design Group (SLDG) is a collection of faculty and students examining the application of formal, language-level techniques to system-level design issues. Research projects include the Rosetta for specifying system-level requirements; the InterpreterLib project for rapid deployment of interpreters and comonadic simulators; and numerous applications of system-level design techniques. Our work is done in the non-strict, lazy functional language Haskell. In particularly we make heavy use of monadic and comonadic constructs. The SLDG is the primary sponsor of the Lambda language semantics reading group.

The SLDG wiki is maintained primarily for discussion of dynamic projects within the group. Our website contains more stable information about the group and our research.

The CogNet Project

The CogNet initiative at the University of Kansas is performing research on architectural tradeoffs and protocol design approaches for cognitive networks at both local network and the global internetwork levels. The initiative is investigating architectural issues including naming, addressing, and routing, collaborative control & management protocols, and experimental system evaluation using measurement & management overlays and cognitive wireless implementations.

ITTC Reading Groups

The Lambda Group

The Lambda Group is an informal reading group organized by SLDG students to discuss topics related to programming and specification languages, semantic models, and programming paradigms. As the name implies, the group tends towards functional languages such as Haskell, Scheme and ML.

RC Reading Group

The Runtime Reconfiguration Reading Group is organized by CSDL students to discuss topics related to FPGAs and, specifically, runtime reconfiguration of FPGAs. The group is open to anyone who wishes to attend.

EECS Classes

EECS 140 - Introduction to Digital Logic Design

An undergraduate introductory course in digital logic circuits covering number representation, digital codes, Boolean Algebra, combinatorial logic design, sequential logic design, and programmable logic devices. EECS 140 Lab Page

EECS 168 - Programming I

Problem solving using a high level programming language and object oriented software design. Fundamental stages of software development are discussed: problem specification, program design, implementation, testing, and documentation. Introduction to programming using object oriented language: using classes, defining classes, and extending classes. Introduction to algorithms and data structures useful for problem solving: arrays, lists, files, searching, and sorting. Student will be responsible for designing, implementing, testing and documenting independent programming projects. Professional ethics are defined and discussed in particular with respect to computer rights and responsibilities

EECS 268 - Programming II

This course continues developing problem solving techniques by focusing on the imperative and object-oriented styles using Abstract Data Types. Basic data structures such as stacks, queues, and trees will be covered. Recursion. Basic notions of algorithmic efficiency and performance analysis in the context of sorting algorithms. Basic Object-Oriented techniques. An associated laboratory will develop projects reinforcing the lecture material. Three class periods and one laboratory period per week.

EECS 388 - Computer Systems & Assembly Language

An undergraduate-level class that covers basic computer architecture by introducing basic computer system structure: CPU, busses, ISA, memory-mapped components, etc. This class is FPGA-based and will use the XUP-V2P development boards and MicroBlaze soft-core processors to develop embedded systems-on-chip.

EECS 448 - Software Engineering

This course is an introduction to software engineering, and it covers the systematic development of software products. It outlines the scope of software engineering, including life-cycle models, software process, teams, tools, testing, planning, and estimating. It concentrates on requirements, analysis, design, implementation, and maintenance of software products.

EECS 560 - Data Structures

An introduction to data structures.

EECS 665 - Compiler Construction

An introduction to compilers. Next offering will be Fall 2007.

EECS 700 - Reconfigurable Computing

A graduate level course discussing reconfigurable computing technology. This class is organized as a discussion of recent and on going research in the area of reconfigurable technology. As such, studnents in the class are expected to be capable of reading and analysing published research.

EECS 740 - Image Processing

The Image Processing pages describe basic image processing concepts from EECS 740 and ongoing research in this area at KU.

EECS 753 - Embedded and Real Time Systems

A graduate level course on advanced topics in embedded and real time systems. This course will cover the fundamental principles, and new technologies and methods in use for specifying and designing embedded and real time systems.

EECS 755 - System Requirements Modeling

An advanced introduction to system modeling and formal methods. Next offering will be Fall 2015.

EECS 780 - Communication Networks

Comprehensive in-depth coverage of communication networks with emphasis on the Internet and the PSTN (wired and wireless). Extensive examples of protocols and algorithms are presented at all levels, including: client/server and peer-to-peer applications; session control; transport protocols, the end-to-end arguments and end-to-end congestion control; network architecture, forwarding, routing, signalling, addressing, and traffic management; quality of service, basic queuing (basic M/M/1 and Little's law) and multimedia applications; LAN architecture, link protocols, access networks and MAC algorithms; physical media characteristics and coding; network security and information assurance; network management.

EECS 881 - High-Performance Networking

Comprehensive coverage of the discipline of high-bandwidth low-latency networks and communication, including high bandwidth-×-delay products, with and emphasis on principles, architecture, protocols, and system design. Topics include high-performance network architecture, control, and signalling; high-speed wired, optical, and wireless links; fast packet, IP, and optical switching; IP lookup, classification, and scheduling; network processors, end system design and protocol optimization, network interfaces; storage networks; end-to-end protocols, mechanisms, and optimizations; and high-bandwidth low-latency applications. Principles will be illustrated with many leading-edge and emerging protocols and architectures.

Advanced Computer Architecture - Multiprocessor Systems On Chip

A graduate level course on advanced topics in computer architecture. The focus of this course will be Multiprocessor Systems on (Programmable) Chips (MPSopC).

Motorola HC12 - EECS 388 - Computer Systems & Assembly Language

An undergraduate-level class that covers elementary computer architecture by introducing basic computer system structure: CPU, busses, ISA, memory-mapped components, etc. This class is based upon the age-old Motorola HC12 in the form of the Axiom development board.