Next term, I'm going to be teaching CSC302 (the second of our two-course sequence in software engineering). The mandate for the course is to introduce students to the tools and methods they need to deal with large applications; as part of it, I'm thinking of having each group of students go spelunking in a different pre-existing code base. I'd therefore like to find 15-20 applications that are:
- Relatively well written in C, Java, or Python (the three languages I can be sure the students know).
- Open source (for obvious reasons).
- About 50,000 lines long (yes, I know that lines of code is a weak measure of complexity, but it's easy to calculate).
- Build and run on Windows, Linux, and Mac OS X.
- Under active development (so that students have someone to turn to when they have questions).
I'd prefer complete applications to libraries, toolkits, or frameworks. Vim
is a good example of what I'm after; I'd welcome pointers to others.