Students explore the process of self-study by applying project planning, applied research, testing, and implementation of basic and advanced concepts appropriate to a new programming language or framework. Students develop major milestones and deliverables culminating in a project and reflective summary submission.