Languages will be discussed in a logical organization based upon the major paradigms including imperative, logic, functional, parallel, and object oriented. Examples from classic and contemporary languages. Packet switching, routing, congestion control, and internetworking, with emphasis on the Internet. Distributed computing considerations and socket programming. The client-server paradigm.
Students write programs to illustrate many of the major ideas.
Offered alternate years. Artificial intelligence problems and solution techniques. Problem spaces, graph and tree traversals, heuristic search. Knowledge representation methodologies, knowledge engineering, and expert systems. Philosophical and social issues.