The purpose of this project is for student groups to explore a programming language via the criteria presented in class. This is done by developing an interesting application using the distinguishing language features. A team should consist of 3-4 students.
Language Selection
Each team will pick a unique programming language that interests them.
Choice of application
Once teams confirm their language, they should start working immediately. Study the language and come up with an idea for an application that will demonstrate the strength of the language’s features.
Each team should submit a 1 page proposal (300-500 words). Be as specific as you can you may want to take a glance at the book (if you have access to a copy) Software Requirements by Microsoft. It does a great job of thinking through what makes good requirements.
The page should outline the proposed application. The proposal should justify why the project idea is something interesting that will display the language’s unique capabilities. If the proposed project sounds too simple I may ask teams to come up with a new idea.
Progress reports
Part way through the semester, each team will:
- make a very brief 3-5 minute presentation to define their application requirements.
- perform a demo of a simple program written in their programming language.
Final presentation
Each team will make a 15-20 minute presentation that highlights important design features of the language, including but not limited to the following:
- Language evolution: Who designed this language? What was the motivation behind the decision to design it?
- Fundamental language evaluation: How do control structures, data types, variables, memory management, program units, exception handling etc. work in the language? (Anything from chapters 5 through 14 can be covered). You may want to compare its features with features of other languages. (Note: don’t discuss all features in detail. After a brief discussion of the main features, each team can focus on one or two key features in more depth. You may show code used in your application to demonstrate the features of the language.)
- Briefly explain the process of designing your application and demo it for the class
Each student will evaluate the other teams’ presentations. A brief Q&A time will also take place after each presentation. Evaluations and participation in the Q&A will count toward each student’s final grade.
Final Deliverables
- Presentation slides (PDF)
- Documentation and source code (on github with commit history)
- sample input/output test runs
- Comments (inline) on what your code does
- Notes on how to run the program (getting started instructions in readme)
- A brief report discussing what each team member worked on, what challenges were experienced, and what was learned (this is the actual presentation)
- Each individual will also submit a confidential report on the group member contributions (this will be an assignment on Canvas)