"Secondary Storage Algorithms and Data Structures", 308-420A, introduces data structures and algorithms for data on secondary storage, notably queries and processing. The course looks at sequential files, tree-structured files, and direct-access files and at algorithms for applications requiring various levels of volatility, symmetry, and activity.
We also examine file access across the Internet, using sockets and TCP/IP.
File and socket programming is in Java.
Based on the categories covered, we discuss design techniques for specific applications (which have in the past included student records and employment databases, natural language retrieval, astronomical queries, musicology queries, air traffic control, restaurant guide, city property registry, world geographical database of towns, personnel database, hospital ward monitor, and a medical insurance database).
The course also briefly introduces databases, using McGill's advanced relational database system, relix.