Announcements
- It is CSEdWeek, a celebration of the impact of computing and the need for earlier integration of computer science education.
- You must attend the Final Demos in North 311 from 2-5pm, Saturday, December 17
- Current Readings
- Current Assignments
- VOOGA, final API implementation, due Friday, December 9
- VOOGA, improved game implementation, due in-class Saturday, December 17
- complete your Build-a-Game project, using as much of the VOOGA game engine as possible
- VOOGA, code refactoring, due in-class Saturday, December 17
- submit a piece of code, as small as a method or as large as a hierarchy of classes, from within the VOOGA project, either the engine or your game, that you wrote or significantly refactored
- the code should be something that you are proud to defend as well-designed, at the least according to these standards
- the code itself is the most important thing, but it would help to include documentation that explains the context of the code and its design goals
- note, you should update the code and submit it separately from the the GIT repository, i.e., you do not need to worry about the refactored code conforming to the current APIs
- submit a piece of code, as small as a method or as large as a hierarchy of classes, from within the VOOGA project, either the engine or your game, that you wrote or significantly refactored
Description
The studio-based instructional model owes its origins to the master-apprentice educational system used in the guilds of the Middle Ages. The architectural schools of Europe and North America adopted this instructional model in the form of the “design studio”: a place where students set up their own workspaces, drafting tables, books, drawing and modeling materials, and spend much of their time working individually on common design tasks. As students spend long hours working on these tasks, they build camaraderie, looking to each other for support and feedback as they work toward a common purpose.
Many view software design as a craft, learned best through practice that is guided by experienced mentors, where the best lessons are learned by making mistakes rather than there being one right way to do it. In this respect it is more like art than science. The arts, as well as architecture and engineering, benefit from using the studio prominently in their curricula. In a studio student work is subject to constant review by both peers and mentors as a means of providing valuable feedback and to solidify the shared sense of community. This course studies software design and implementation using Java in teams. Student teams work on several large, typically over-specified, projects whose design and functionality must be justified and improved through feedback given in a studio setting.
In short, my goal is for you to be able to turn vague and ambitious specifications into a system design that can be built, maintained, and extended, prioritizing the features to be built first, then refining and extending the project through multiple draft releases. This course is intended to be the most fun course at Duke University, though it may also require you to work your ass off! During the semester, if you find either goal is not being achieved, contact the course staff immediately to help us remedy the situation.
Required Background: It is assumed that you have previously programmed extensively in Java (e.g., at the level of CompSci 100 at Duke). If you do not have such experience programming, this probably is not the right course for you. See the course staff if you have questions.
Feedback
The Computer Science department at
Duke University aims to excel in
education and research. To ensure that our
courses fulfill student needs and expectations, you are encouraged to
submit
constructive comments about this course anonymously or use
the suggestion box icon, ,
at the bottom of each page. These comments will be
read by the Director of
Undergraduate Studies for Teaching and Learning in addition to the professor teaching the course. Our
goal is to adapt the subject and delivery of our courses to meet student
needs while maintaining our high standards.