A Comprehensive Project For CS2: Combining Key Data Structures And Algorithms Into An Integrated Web Browser And Search Engine

Document Type


Publication Date


Published In

SIGCSE Bulletin


We present our experience using a large, real-world application as a course project for the second half of the semester of a CS2 course. Our primary goal for the project was to create an engaging application that incorporated most of the key data structures and algorithms introduced in the course. Specifically, the project uses binary search trees, priority queues, hash tables, and graphs. The project consisted of four parts combined to build an integrated web browser and search engine in Java. A key benefit of an incremental, long-term project of this type is that students quickly learn that their initial design and implementation decisions have a significant impact on the eventual extensibility and performance of their software. This provides numerous opportunities for students to recognize the importance of software engineering techniques and complexity analysis in the development of a successful application. We present students' responses to the project which show that they overwhelmingly enjoyed the project and felt that it helped them to see how the data structures and algorithms discussed in the course are used in real software.