This is an Individual assignment.
Individual Project
Software development is a vast and rapidly-changing field. Almost any substantial project will require you to learn about new technologies, which could include programming languages, libraries, databases, etc. Being able to learn new technologies on your own and use them effectively in a project is an essential skill for a software developer.
Your task in this assignment is to propose an individual project you will work on this semester that involves one or more technologies related to software development that will be a new learning experience for you.
Some possible examples:
- Learn a new programming environment, e.g. C#, .NET, and MS Visual Studio; Android and IntelliJ; Python, PyCharm, and Pygame
- Learn a new programming language, e.g., Clojure, Scala, Erlang and write a nontrivial program in that language
- Learn about Javascript and AJAX for rich web client interfaces, develop a web application
- Try developing your own website using Grails or Ruby on Rails
- Learn about programming embedded systems and hardware interfacing, e.g., AVR, Arduino, and then use it in a hardware project (a data logger, robot, etc.)
These are just examples: I encourage you to be creative and think of something that interests you personally. The most important requirement is that you should learn something new!
Scope
The project should be smaller in scope than your team project: the purpose is more to learn something new than to create a substantial software system. However, your project must be nontrivial: the system you create should do something interesting.
Proposal Format
Your proposal should be 1-2 pages, and contain the following information:
- Description of your project
- List one or more technologies related to software development that you will learn about
-
Briefly discuss your plan for the project: list what sources of information you plan to use, and provide a list of steps/intermediate goals that will allow you to make progress towards completing the project. You have until the end of the semester to complete the project, but keep in mind that I expect you to make steady progress, and that there will be occasional progress reports/demos.
Here is a suggested template for your Independent Project Proposal.
Submitting
Create a folder in Google Drive named “CS320-IndProject-userID”, replacing “userID” with your YCP User ID.
Then create your Project Proposal in that folder, using Google Docs. Share the folder and its contents with me.
This folder will be your means of submission for all non-programming-related individual assignments.
Name your Project Proposal document assign02-userID, again substituting your YCP User ID.