This course explores the principles underlying the design of computer networks with basic computer architecture. It examines techniques for transmitting information efficiently and reliably over a variety of communication media. It looks at the addressing and routing problems that must be solved to ensure that transmitted data gets to the desired destination. The course also looks at the ways in which issues are addressed by current networking protocols such as TCP/IP and Ethernet.

 
This course covers abstract data types (ADT) and their implementation as data structures using object-oriented programming. Object-oriented design principles are used in the selection and analysis of various ADT implementations. Sequential and linked storage representations such as lists, stacks, queues and tables will be covered in this course. Experience in designing and implementing ADTs will enable students to choose, given a particular computing problem, which ADT and implementation strategy is most appropriate considering the nature of data and the various operations needed to manipulate the data.