The course concentrates on the design, implementation, and use of on dynamic container data structures such as dynamic arrays, linked lists, hash tables, and binary trees. General purpose implementation issues are also discussed, as well as theoretical issues relating to algorithmic complexity.
In an effort to show how to avoid typical pitfalls of the design and implementation process, the course illustrates the evolution of a particular design from an obvious first try to a more general final implementation. Techniques are explored for developing applications and function libraries which reduce overall development time, promote ease of maintenance, and encourage general solutions.
Topics include:
If time allows, we will provide an introduction to file based data structures and language processing using YACC and LEX.
C Language Programming II or equivalent knowledge and experience. Students must have access to a C development environment to complete assignments. Either UNIX, Microsoft or Apple platforms may be used to solve homework assignments.