This course covers formal methods used in the development of software. It covers languages such as Z, for specifying abstract data types, and temporal logic, for specifying behavior of concurrent systems. Java Programming and Concurrency. Initiation, control, and coordination of concurrent activities using the Java Thread construct. Containment and synchronization, deadlocks and conflicts, state-dependent action, control, user services, flow, and coordinated interaction.
Coursework includes several substantial programming projects.
Introduction to Computer Networks. At the Physical and Data Link Layers, various protocols such as Ethernet and Token Ring are compared, and their implications for network topology are considered. At the Network Layer, a wide variety of routing protocols and name resolution protocols are studied. Finally, at the Application Layer a variety of standard protocols such as telnet, ftp, and electronic mail are examined, together with the related issues of security and authentication. Some programming in the C language is required.