Class— | Mondays and Wednesdays at 1:30-2:45 p.m. |
This course provides an introduction to the design of network-based applications.
Web-based applications provide an infrastructure and motivation for the intersection of computer networks and database systems, and are quickly becoming the primary mode of user interaction and have replaced many traditional standalone platform specific applications.
Topics include some computer networks theory.
Especially, covering the layered model of the Internet, the most commonly used protocols, and fundamentals of routing.
We will cover client/server paradigms as well as peer-to-peer architectures.
Web applications used databases for persistency, so we will cover the theory of relational databases, including the techniques of data normalization.
We will briefly look at NoSQL databases given the current hype, but will primarily focus on SQLITE3
relational, ACID
compliant database and intermediate levels of the SQL
language.
Finally we will also touch upon various security concerns and encryption techniques and protocols used to manage it.
The course will use javascript
as the programming language and the Node.js
non-blocking I/O framework.
We will briefly address the fundamentals of responsive, mobile-centric designs using standard libraries such as Twitter Bootstrap, and so will cover the necessary details of the structure and style components, viz., HTML
and CSS
.
Programming assignments and labs will emphasize key concepts.
Mondays and Wednesdays 1:30-2:45 pm in Sanders Physics SP-105
If you have a question that is not confidential or personal, post it on the Google Classroom. Rresponses tend to be quicker and have a wider audience. To contact me directly, I strongly encourage you to come to office hours. If that is not possible, you can also email (non-technical questions only) to the course mailing list, TBD. If you have a matter to be discussed privately, please come to office hours, or make an appointment with me. You can also send me message on Google Hangout. That is the fastest way to reach me. For grading questions, please talk to me after class or during office hours.
Announcements will be send to the class mailing list. Please read these messages.
If you do send me an email, I would appreciate if you address me as Prof. Pradhan
Since we occasionally reuse homeworks that were previously assigned, and the fact that one can search for similar problems online, we expect students not to copy, refer to, or look at the solutions in preparing their answers. It is an honor code violation to intentionally refer to a previous year's solutions. This applies both to the official solutions and to solutions that you or someone else may have written up in a previous year. It is also an honor code violation to find some way to look at the test set or interfere in any way with programming assignment scoring or tampering with the submit script.
Since quizzes are a form of assessment, students are not allowed to collaborate on completing quizzes. It is an honor code violation to discuss quiz questions with other students.
In signing the matriculation pledge at Vassar, you have assumed the responsibility for the integrity of your academic work. Please follow the pamphlet "Originality and Attribution: A Guide for Student Writers at Vassar College." which contains detailed discussions of the requirements of academic honesty.
CMPU 203 (or, permission of the instructor)
Attendence is highly recommended in all classe. Although a significant portion of what I will cover in class is available in textbooks, the number of potential texts that cover is far more than the ones listed in the syllabus. Also, depending on student participation and interests, we might cover topics and have discussions which could have a bearing on the questions in the exams.
Extra credits would be given for students participation in the classroom. Students can also participate by providing helpful answers on the class forum, helping out other students in office hours, etc.
There will be roughly 5 assignments throughout the semester.
Programming Assignment Collaboration: You may talk to anybody you want about the assignments and bounce ideas off each other. But you must write the actual programs yourself.
You have 3 free late (calendar) days to use on each programming assignment. Once late days are exhausted, the assignment will be penalized 2% per late day. I am likely to assign individual extensions based on extenuating circumstances as long as you communicate with me in advance.
This class has a significant amount of textbook reading. Most weeks have around 30-60 pages worth of content (as it varies by the type of book). The homeworks and exams will be based heavily on the readings.
We will be two exams and an students will be provided an option to take a final in class exam or do a final project. Details below.