This project develops new learning materials along with a teaching package that systematically introduce the key technology and software design concepts behind the two important canonical software systems, Firefox and Apache. These two systems represent modern canonical distributed, multi-platform, and multi-language systems. Their internal structures exemplify highly expansible and flexible architecture that contribute to their survival as open source projects. Both systems have received significant attention and their inner workings have been studied by researchers.
The project is going to organize the key knowledge, including Firefox and Apache architectures, into slides and to develop a teaching tool, a structural navigator, to illustrate the relationships among the key features, architectural structures, and source code modules of these canonical systems. Lab assignments require students to build lightweight web browsers and web servers for mobile devices. The slides, the structural navigator and the labs constitute the teaching package. Classes making the use of the teaching package are offered in the Drexel University undergraduate Computer Science and Software Engineering programs.
The project has a potential to advance the education of modern software concepts and technologies by formally introducing matured key technologies into undergraduate curricula, and organizing the knowledge about the design, architecture, and technology of these canonical systems systematically into a presentable form. Anticipated outcomes include adaptation of the teaching package developed in this project by the computer science or software engineering curricula at other universities and colleges. The teaching package is extended and integrated into computer science textbooks, tools, and exemplary software that can be disseminated broadly.