Energy and Initiative
It is expected that students will take a very active role in learning the material of this course. Formal assignments will play only a small role in the learning process. We expect that students will:
- Read books and web documents to glean information.
- Examine interesting web sites and learn how such sites are designed and programmed. These sites may include the course sites by the instructors and students in the course and may also include external sites.
- Conduct web programming experiments and create proof-of-concept demonstration pages that illustrate the successful experiments.
- Create at least one major web site that acts as an integrative project. This web site should be aesthetically pleasing and must demonstrate a variety of web development techniques.
- Optionally, create web services to serve data from your site to external sites.
It is expected that students will build a major web site on the ASP server that will show what they have learned and accomplished. Each student web site must be designed as a learning tool for the other students in the course. Thus both the quality of the work and its documentation is important.
We expect that students will do this work without explicit prompting by the instructors. All students must act as self starters.
We insist that students work energetically day-by-day and week-by-week. We strongly discourage a big bang approach wherein most of the work is done in the last few weeks. If we have evidence that you have taken a big bang approach despite this warning then we will make a severe deduction in your grade regardless of what you have done.
MS students in CCIS normally take 2 courses per semester. Therefore, we expect that one half of your time is spent on CS 5610. This translates to 20-25 hours per week.
These 20-25 hours will be spent thinking, planning, exploring existing sites, designing and implementing experiments, creating documentation, and building an excellent integrative project.
Source, Statistics, Site Statistics, Search, and File List
The course will operate in an open-source manner. To make this automatic, each student must deploy the following tools from Professor Rasala’s site:
- Source Server
- Statistics Server
- Site Statistics Server
- Search Server
- File List Server
Source Server will automatically serve the source of all text and image files on the site. This will mean that as soon as you post such files to the web, those files will be visible to the instructors and to the other students in the course. This server provides links to download individual files.
Statistics Server will display statistics about the files in each directory on your site including file size, creation time, and last modification time. The last modification time is most accurate because sometimes SFTP software changes the creation time when a file is deposited on a server. This server provides links to view and download individual files.
Site Statistics Server will display statistics about all directories on your site including the number of files in the directory, the total number of bytes in all sych files, and the earliest and latest creation time and modification time. This server provides links to the Statistics Server for each directory.
Search Server provides both plain text and regular expression search. This tool allows you to select whether to search the entire site, one directory, or an individual file. This server provides links to view and download individual files.
File List Server provides the ability to list files that were created or modified within a given range of dates. It is a key tool that lets us find out whether you have done steady work or attempted a big bang approach.
You may find all of these tools helpful to you when you are exploring your site, especially, when you are looking for bugs.
You may find directions for downloading essential files that form the backbone of your initial web site at:
The huge advantage of creating your initial site in this way is that Source Server, Statistics Server, Site Statistics Server, Search Server, and File List Server will be on your site from day one. It is therefore mandatory that you start your site with the essential files. Do not think of proceeding any other way.
These servers play the following roles:
- The servers support the open source philosophy of the course.
- The servers are critical when you ask the instructors to help you with debugging a problem on your site.
- The servers play an essential role in the final grading process.
Because Source Server, Statistics Server, Site Statistics Server, Search Server, and File List Server are essential tools in the grading process at the end of the semester, these tools must be present on your site in unmodified form. If you fail to have these tools installed in unmodified form then you will fail the course.
To install your local site on the ASP.NET web server, you should read the directions on the above link to the essential files and you should follow the startup steps as described in Startup.
Documentation is an essential part of the course. The instructors and your fellow students must be able to understand what you did, why you did it, what were the challenges, and how they were overcome.
You must document your pages in well written English. You must also have a very clean and well organized coding style and thoughtful code comments. In practice, many students show the sites created in this course to future employers so be certain to demonstrate the quality of your thinking and work in your documentation and coding style.
There are several possible ways to organize the documentation.
- You may devote a section of your site to documentation and link each documentation page to the corresponding web site page and perhaps if appropriate to the source code.
- You may link a particular web site page to a page with its documentation.
- You may organize documentation into one or more stories using the Story Utility
The first form of documentation is less intrusive since there is no need to change the appearance of a web site page in order to provide a link to its documentation. However, in the case of pages that show experiments, the second form of documentation may be just the right approach to take.
Organizing a sequence of documentation pages into a story using the Story Utility will be very efficient for the instructors during grading. Your kindness in doing things this way will be appreciated.
You may write the documentation using classic HTML with CCS for creating the styles.
In addition to regular documentation, you may wish to write explanations of web development topics. If you learn a topic and think you have a better way to explain it, then write up your thoughts and experiments and make them public. Furthermore, give references to books and/or online resources. This may be a real contribution to the course.
Note also that some documentation may appear in blog posts.
Giving Credit for the Work of Others
If you make use of the work of others, you must give explicit and complete credit both in your English documentation and in your code comments. Provide appropriate links to the sites on which your work is based. If you state and we are made aware of the fact that you have used the work of another student or used tools from an external site, then that is fine.
In cases where you have used resources that you did not create, you should state how much of your site is based on your own work and how much is based on the work of others.
If you fail to give explicit credit then that will be considered plagiarism.
Time pressure is no excuse. The first thing you should do with a file that is taken from another source is to add the documentation that credits the source.
Upon completion of a piece of work that is installed and documented on the ASP
server, students may announce this work to the instructors and students in the
course using the e-mail address:
Comments from other students will be welcome. Try to be as positive as possible in such comments ... we all need support. You may also use this e-mail address to seek help from the instructors and the students in the course if you have technical problems.
To contact only the instructors, use the e-mail address:
Each student will also be required to maintain a Progress Blog. This blog should quickly summarize what work has been done on a given day whether reading, design, experimentation, coding, or site building. The blog may also give more extended comments or point to completed work and its documentation. As the instructors review your site during the term, it will be a very bad sign to see long periods of time with no entries in your blog.
There are several extremely important rules about blog posts.
- Never change a blog post once it has been posted. This will mess with the dating of the post and cause the post to get out of order. This also tampers with the historical record of your work. If you must make further comments or a correction, simply make a new blog post.
- Never remove all blog posts with the intention of reloading them. This completely messes up the dating and can have the effect of making your blog unreadable at the time your site is graded.
- If you are making multiple blog posts, upload each one individually in the order in which you want the posts to appear. If you upload a collection of files by SFTP at once, you lose control of the order in which the files are loaded and therefore dated on the server.
The course expectation is that you will have several meaningful blog posts per week. Occasional random posts or posts that are not informative do not count. Keep in mind that grading often starts by skimming your blog. This gives your instructor a quick overview of your work and progress during the course. If you do not have much of blog, you will give a bad impression.
It is permissible to form a team to do a particular piece of work and to dissolve that team when the work is done. In this case, the work may be placed on the site for one team member or may be distributed across sites. If the work involves web services that call other web services then it is likely that the work will need to be distributed.
Provide appropriate links on all student sites involved. Also, explain in the documentation who did what. Keep in mind that if you do form a team, then the team must accomplish more than what one student could accomplish.
If you have any questions about team work, talk with your instructor ahead of time.
Public Tools and Web Services
It is permissible to add public toolkits to your site. In the documentation for your site, you must explain the use of such tools and provide appropriate links. It is also permissible to connect to free, public web services on the internet and indeed it will probably make your experience in the course more valuable if you do so. It is important that the services be free so that others can play with your work without incurring charges.
Consistent with college policy, you may not hack into non-public sites (of course you knew this).
Grades will be determined by the impact each student makes on the learning process for everyone and the quality of what is presented on the student web site. There will be no exams. We will learn what you have done from one-on-one conversations, from your class comments, from what your site does, and from the code and documentation publicly available on your site.
All materials created in the course must be left on the server when the course is over so that they may be used as a springboard for future courses. You retain all rights to develop the work after the course in whatever way you choose. Indeed, some of you may produce artifacts that are worth distributing on your own internet site when the course is complete.
The following is adapted from an e-mail in Spring 2009 when the question of grades arose at the end of the semester.
Your basic responsibility is to build a site that shows:
- You have done a substantial amount of work.
- You have learned a lot.
- You have been thinking.
- You have not followed a big bang approach leaving most of the work to the end of the semester.
You must have a substantial number of experiments that document your learning process over time.
You should have one excellent large project or several very high quality mini-projects.
If your site looks thin, your grade will be thin also.
To put it in other words:
- If you, looking at your own site, would give yourself a B or a C, don't ask us to give you an A.
- If you, looking at your with site in comparison with sites from other students in the course, see that your site is thin, don't ask us to give you an A.
Keep in mind that blogs, documentation, and clean code also matter very much. If we cannot figure out what you did easily or if your site is a mess, look out.
The moral is that the time to worry about your grade is at the beginning of the semester and during the semester. Then you are in control. You can put in the energy, create the sites, make the documentation, post the blogs, and also have fun. You can make your case for an A grade by the sheer quality and effort you put in. You are also making a great online resume for your future job search.
However, if you wait until the end, you are toast, given our refusal to reward big bang programming.
By the way, to get an idea of what the best sites do in comparison with more ordinary sites, you may examine student sites from past years using the links from Professor Rasala’s home page.