The essence of the software studio is the concept of reflective practice. The computer science professional solves problems for a living. To each new problem, the professional brings to bear vast technical knowledge that is common to all solutions. At the same time, each problem presents new difficulties that demand new solution. This interplay between the analytic and the artistic is the hallmark of the professions. Many people are reluctant to acknowledge the artistry required in their profession, but it is the conclusive factor in a professional's expertise.
One of the tasks facing computer science educators is to help students learn how innovate and invent. Innovation occurs in adapting old solutions to new problems. Invention is required where past solutions are insufficient. More traditional courses can teach the technical, analytic skills needed by a professional, but most often these skills require application to real problems in order to become part of the student's expertise. More traditional courses are almost entirely inappropriate for helping students to develop the creative, artistic side of their skill set.
The term "studio" is derived from the teaching process used in schools of architecture and art. It indicates a different course organization and reinforces the intent that a course pays special attention to the artistic skills of the profession.
Interest in studio approaches has grown among folks in the computing industry over the last few years. Check out RoleModel Software, which is a company that uses the studio model and apprenticeship learning as its way of doing business.
Tomayko says "The method of the studio is constant questioning." The student is forced to explain and defend the choice of proposed methods, processes, solutions, and implementations. She must relate these choices to other parts of the problem and solution and convince others of their adequacy.
This constant process of reflection, brought about personal questioning as well as external criticism, leads the student to develop a much deeper level of understanding of her technical domain knowledge than might otherwise be achieved. She also comes to experience this knowledge in the context of real problems and real solutions, and to learn and hone artistic skills at the same time.
Another method used to support the student's reflection is the project notebook, in which the student records her thoughts, decisions, questions, answers, justifications, and reconstruction of studio discussions.
The course instructor metamorphoses into something of a coach: a sounding board for ideas, a constant critic who helps the student see other alternatives, and a source of direct instruction when new technical knowledge is needed. The faculty member's involvement in the studio is intense and time-consuming. This kind of involvement is also a source of learning for the instructor.
For this course, we have been assigned the standard Tuesday/Thursday classroom schedule. Our sessions will meet in the 322 ITTC classroom. While this type of room is not ideal for a studio (ideally, we would have more computer equipment available than one machine connected to the overhead display, less of a lecture-oriented structure to the room, places to store project-related materials for each student, and anytime access), it will serve us well enough.
Most of our class meeting time will be devoted to studio work. Indeed, during most sessions, we will do nothing but project work. This time allows the project team to meet and collectively work on project components. It also allows the instructor to become part of the process for a significant chunk of time. In addition to project development, we will conduct design and code walkthroughs, oral reports of more and less formal varieties, technical reviews, and team discussion. At various times, the teams will discuss their project with the other teams, both as a means of consolidating ideas through expression to a technically-adept but unrelated audience and as a means of getting useful feedback from other professionals.