Introduction to microprocessors and microcomputers. Evolution, architecture, and software model. Introduction to Real-mode and protected-mode memory addressing. Addressing modes. The PC and its DEBUG program. Move, stack, load-effective address, and string instructions. Arithmetic instructions. Addition, subtraction and comparison. Multiplication and division. Logic instructions. Shifts and rotates. Counters and time delays. String comparisons. Jump instructions. Code conversion. Stacks and subroutines. Program and machine control instructions. Software interrupts. Program development. The microprocessor and its bus architecture. Introduction to memory and I/O interface.
Problem solving techniques for engineering problems, primarily from the fields of electrical and computer engineering; object-oriented programming concepts; object-oriented program development, editing, compiling, linking, and debugging using the Object Oriented Programming languages.
Introduction to computer organization. Computer instruction set. Machine language. Data processing. Arithmetic unit: Carry look-ahead adders, subtractors, and shifters. Logic unit. Combinational and sequential multipliers and dividers. Floating-point number representation and arithmetic. Data path design. Control unit design. Microprogramming. Pipelining. Discussion, one hour weekly.
Introduction to parallel processing and distributed systems. Multicomputers, multiprocessors, network of workstations, and scalable systems. Interconnection networks: topologies, routing, and protocols. Distributed systems design for scalability, reliability, availability, and security. Communication paradigms including shared memory, message passing, RPC, and distributed objects. Distributed system services including replication, caching, file system management, naming, clock synchronization, and multicast communication. Sample applications. Development of programs and applications for parallel and distributed systems.
This course gives a broad view of the current state of computer networking research. Topics include: Internet architecture; Internet routing: the Border Gateway Protocol (BGP), routing characterization, routing security, Internet AS relationships, traffic engineering, end host congestion control; quality-of-service, network security: intrusion detection systems, worms, and honeypots; mobile and wireless networking; peer to peer and overlay networking; content distribution networks; sensor networks; critical network infrastructure services: Domain Name Server (DNS), mail servers, etc.; network measurement: distance estimation, bandwidth measurement, trouble shooting tools; network management.