Discussion of searching, sorting, and hashing techniques. Introduction to linked lists. Coverage of pointers, templates, linked lists, trees, recursion, graphs, and algorithm analysis. Use of software engineering techniques such as inspections, test plans, and configuration management within a group-based project environment. An introduction to software engineering principles, including discussions of development methodologies, requirements analysis, project planning, software design, software construction, software management, software quality, and CASE tools.
Students gain experience, via a team project, in the life-cycle development of software systems.
Sophomore standing and consent of cooperative education coordinator. Object-oriented architectural and detailed design. Use of object-oriented libraries such as component libraries and toolkits. Moderate size, GUI-based group project. Individual and team projects.