CPSC 235: Advanced Introduction to Computer Science - Assignments
The assignments for the course are centered around building a dynamic web site that aims at teaching a user (student) a particular concept of the Python programming language (the requirements for this web site are described here). In addition to identifying the user, this web site has to explain the concept using appropriate examples and it has to test the understanding of the concept by the user by having him/her answer questions, including solving a little larger programming task.
More precisely, there are four assignments:
Before we look at these four assignments in detail, here are first some general remarks about how assignments need to be done.All documents produced need to be emailed to the instructor as a pdf-document (I will not accept Word documents!). If you produce your pdf-documents out of Word, make sure to include all fonts!
While we are naturally not in an English course, bad English in form of typos or wrong grammar will have a negative influence on the grades for the documents. This is also true for bad or wrong terminology!
The requirements for the web site are quite different regarding their precision. Everything that is explicitly required needs to be in the final web site (the "product") and any missing requirements will have quite an influence on the grade a student gets.
In the week before each deadline, there will be a mandatory meeting of each student with the instructor. In this meeting, the plans of the student for the deliverable(s) on the deadline will be discussed to make sure that the student has the right ideas. Possible meeting time slots will be announced in the News section of the main course web page before the week of the meetings and time slots will be assigned on a first-come-first-serve basis. Earlier meetings are also possible, if a student feels (s)he is already prepared enough for the meeting for a particular assignment.
A document describing how you want to construct your web site
For every software system (and many other systems and structures) it is important to first come up with a design of the system, before it, respectively its components, is implemented. There are then usually different ways how to get from the design to the implementation, but the design in the form of the design document needs to provide enough information to communicate the ideas of the design team to various groups, not only the people that have to implement the system.
For the dynamic web site teaching a Python concept that each student needs to develop, the design document should inform the reader about the following points (this can be used to structure the document):
Some of the above information is best presented in the form of figures. These can be sketches made by hand that are scanned or pictures of those sketches made with a cell phone or other device and that are then put into the pdf-file a student has to submit.
It is also understood that on the way from design document to implementation some changes can happen.
The meetings with the students for this assignment will happen from October 6 to 9.
Deadline: Oct 10, 2014 at noon
A web site to teach a Python concept and to evaluate the understanding of a user
The web site that the students develop and implement, fulfilling the given requirements, is the key assignment of the class. This web site will be using Java 7 and JSP within a Tomcat web server on its own subdomain for each student.
While providing the necessary functionality in a correct way is the major criterion for the evaluation of this assignment by the instructor, the presentation and the quality of the teaching experience will also be taken into account (the later might even be used to look over minor shortcommings of the document describing the web site, which is the next assignment).
The deliverables to the instructor for this assignment are
The meetings with the students for this assignment will happen from November 24 to 27. But students are encouraged to have this particular assignment ready earlier and then to have a meeting with the instructor early, so that there is time to fix any problems before the assignment deadline!
Deadline: Nov 28, 2014 at noon
A document describing the web site
While the web site should speak for its own, there is nevertheless a lot of information about the web site that is not easily available by just interacting with the web site. An example are the programs that are on the server. Therefore we need a document that provides this additional information that would, for example, allow another developer to make changes to the web site.
In our case, the document should cover the following topics:
Note that there is some overlap with the topics covered by the design document and, provided that nothing has changed, it is definitely allowed to copy from the design document.
The same meeting as for the web site should also be used to talk about this document, which means that it will be between November 24 to 27. But, especially if the meeting for the web site happened earlier, it is possible to have a meeting just dedicated to the document.
Deadline: Nov 28, 2014 at noon
A test report for another student's web site
The testing of software systems is an important part of the whole development cycle and part of the testing efforts should be to have the final product tested by people other than the developers. In our case, testing should focus on the functionality of the web site, establishing that all requirements are met, but also looking a little bit into possibilities for abuses of the pages of the site.
Since the web site is intended to teach a Python concept, it naturally should also be evaluated how well the site does this. But it should be stated here that the instructor is well aware that different people often learn differently and that he will take this into account when evaluating this part of the report.
The test and evaluation report should cover the following topics:
Given the short time frame between the last two assignments and this assignment, the meetings for this assignment will be shorter than the meetings for the previous ones, which will allow for having all of them in the two days before the deadline. Nevertheless, the instructor will be offering meeting time slots on all days from Dec 1 to 4.
Deadline: Dec 5, 2014 at noon
Last Change: 4/9/2014