Students within our department have expressed a desire to take courses that allow them to learn more programming languages, such as C++, C#, Lisp, Ruby, PHP, Perl, and others. Since we don't have the time or the resources to include these within courses that we offer, the suggestion has been made that we offer each of these as separate 1-credit independent study courses. A liberal arts institution such as Carleton, however, grants credit for the study of academic pursuits, not for the study of skills such as programming language fluency. For example, our course in Programming Language does include study in a number of different programming languages, but the purpose is to compare and contrast a variety of programming language paradigms, and to study in context the fundamental structures that make up all programming languages. The credit that students earn in that course is not for learning the specific programming languages, but rather for learning the fundamental computer science ideas that are illustrated within those contexts. Similarly, when Carleton grants academic credit for summer internships, it does so not for the internship itself, but for the additional independent study work (such as journals, papers, talks, etc.) that the student does in parallel.
This project involves constructing a series of 1-credit, independent study, web-based courses in which Carleton students might enroll in the future. Each of these courses will focus on an area of computer science that is not covered well in our other courses, and is well-suited for students to pursue on their own. The idea is that Carleton students potentially could sign up for one of these courses, study on their own a new programming language, and implement a project in that language.
As a team, you will brainstorm and come up with a series of computer science topics and languages in which you believe future computer science students will be interested in learning. You will organize a set of resources for students to be able to read and learn about both topics and languages. In order to test the viability of these projects, you will do them yourselves. This means that you will actually have the opportunity to learn a series of new programming languages that you might find useful in the future, and you'll also get the opportunity to learn some material that you would not otherwise see in the classroom.
Here is a list of the concepts, technologies, and resources that will be necessary.
This depends entirely on what languages and topics you choose.