Spring 2017, 3 credits
This course assumes existing knowledge of and experience with modern development practices such as integrated development environments (IDEs), debugging, source code compilation, and build tools. The course will be tought using the following technologies and libraries:
No previous experience with these technologies is required. However, students who are not familiar with basic web development concepts or object-oriented languages will may need to spend extra time coming up to speed or working through issues.
We will discuss other technologies and compare them to the ones that are being covered. Students are encouraged to explore other technologies and optionally use them to build their application if desired.
The course is designed around 3 programming assignments which are to be completed throughout the semester. Topics will be covered in a sequence which aligns with the due dates of the programming assignments.
The programming assignments will be completed in two person teams. Each assignment will be focused on a core set of application development concepts (such as data, UI, integration, etc). Each assignment will require successful implementation of core requirements with functioning code and in some cases usable application. Requirements must be confirmed via unit tests to receive full credit.
Programming assignments will be due and must be submitted via email to Instructor before midnight on the due date. Programming assignments must be submitted as a link to a source code repository (with optional tag or branch). The assignemnts must build and run without any special help outside of normal Gradle build, test and run commands. If your project requires anything special (this is strongly discouraged), you must provide these instructions or your assignment will be deemed late until the point you provide the correct instructions or fix the error.
The final grade will be determined based entirely on the programmng assignments. Each assignment will carry equal weight (33%).
Students are required to submit all three assignments to pass the course.
Assignments can be turned in late. For each week that an assignment is late, the total possible grade will be lowered by a full letter (for example an assignment turned in 1 week late can receive a maximum score of a "B"). Lateness is based on a full week basis. For example, any assignment turned in after the due date/time but before 7 days after the due date and time will be considered 1 week late.
Programming assignments will be graded on their successful implementation of assignment requirements. A grade of "A" will be earned only if all requirements are implemented and verified (by unit tests for non UI) requirements. Simply having compiling code or working code will not suffice for full credit.
The class is not graded on a curve.
All assignments will be group assignments, with individual peer assessments. You may discuss the assignments in general terms among yourselves or on the class forum, but you must not share specific assignment deliverables outside the group that is to be credited with the work.
Programming assignments require involvement and effort by both team members. Ideally, work will be divided as equally as possible.
You can expect to spend on average 4-6 hours/week outside of class on reading and assignments.
You may find that weeks when projects are due may require spikes of increased time and effort.