The widespread availability of affordable 3D printers has allowed people to combine 3D printed parts with existing components like screws, belts, motors, etc. to produce objects that anybody with access to a 3D printer can manufacture. Here are a few examples:
By making the 3D design of these objects freely available along with the instructions on how to build and assemble them, these objects are the products of a nascent 3d-printed open-source hardware movement. This movement has its roots in free and open-source software (FOSS) movement that has given us software such the Python programming language and the Linux operating system kernel.
Over multiple decades, the community around FOSS has developed technologies to improve the process of creating FOSS, the version control software Git being a notable and recent example. As the foundational technology of GitHub for example, Git has enabled millions of people all around the world to collaborate to produce software (and hardware!).
The heavy use of computer-aided design (CAD) in the production of 3D printed hardware means that many of the artifacts used in their production live within a computer and can be manipulated by software tools. Therefore, in this course, we will seek to create technologies to improve the process of creating and using 3D printed open-source hardware. To do this, we will learn to:
In this course, we will not develop business plans or learn how to attract VC funding, or other business development activities.
We will learn how to work in teams to solve real-world problems using our combined knowledge of computer science.
The course will meet three times a week for discussion of readings revolving around technology, brainstorming and fleshing out of ideas, problem solving, and for development. Students will work in teams to build projects. The projects are expected to move through various stages of a project maturity model:
All projects will strive to maintain high quality using techniques that will be introduced in the initial portion of the course.
It is not expected that all projects will reach the Release stage in one semester, but all projects must reach at least the Alpha stage to demonstrate that the students have learnt most of the skills for technology development using computer science.
It is strongly recommended that students not take another coding-heavy course during the semester they take CSC293. The official pre-requisites: CSC173 and at least two of (CSC252, CSC254, CSC242, CSC280, CSC282).
Grading criteria is being finetuned, but will almost certainly consist of participation and progress in the course. Attendance will be mandatory.
There will be no exams, this is solely a project-based course, with increased expectations for the quality of projects. In particular, single-person projects may not have enough time to reach increased maturity levels.
This list will certainly expand, and a final list will be posted when the class starts.