Pre-requisite: 66003/64623
This unit gives a breadth-first approach to essential elements of computing. Selected topics include: algorithms, data communications, complexity theory, database design, artificial intelligence, and software engineering. Programming is integrated throughout the topics as a tool for exploring these aspects of the field. Depth of knowledge is relegated to other courses taken in the remaining years of undergraduate and postgraduate study. The C language is used as a vehicle for allowing students to explore programming techniques including data structures, file manipulations, recursion, and abstract data types.