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 non-trivial program in that language
- Learn about JavaScript (JS) and AJAX for rich web client interfaces, develop a web application. Thee are many forms of JS from which to choose
- 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.)
- Contact the Radio Telescope team and learn how to develop in the languages, platforms, and tools they are using for that project. This would prepare you to work on that project when you reach CS481/CS482 - Senior Design I and II.
- Learn how to deploy and host a website through Amazon Web Services (AWS)
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 non-trivial: the system you create should do something interesting.
Proposal Format
Your proposal should be 2-3 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. Keep in mind that I expect you to make steady progress, and that there will be regular in-class progress reports/demos, as specified in Assignment 4.
Here is the template for your Individual Project Proposal. Download the template document, modify it, as necessary, and follow the submission instructions below.
Submitting
Create a folder in Google Drive named “CS320-IndProject-username”, replacing “username” with your YCP user name, and place it in the shared Google CS320-Spring2019 [students] folder under your section of CS320 that I previously shared with you.
This folder will be your means of submission for all non-programming-related individual assignments.
Then create your Individual Project Proposal in that folder, using Google Docs. Name your Project Proposal document assign02-username, again substituting your YCP user name. Share the folder and its contents with me.