CSIS 4135 - Web Application Engineering
Professional ASP.NET 4 in C# and VB, by Bill Evjen, Scott Hanselman, and Devin Rader. © 2010 Wiley Publishing, Inc., ISBN 978-0-470-50220-4
Software Engineering for Internet Applications, Eve Andersson, Philip Greenspun, and Andrew Grumet . © 2006 MIT Press, ISBN 0262511916 (online version)
Course Description: In this course, we will explore and construct database backed applications designed for use via the World Wide Web. Emphasis is placed on designing services that facilitate collaboration. This will involve learning and applying principles of software engineering, planning, and design. Implementing the web applications will use a variety of technologies and development tools, such as ASP.NET, HTML, XML, SQL, AJAX, jQuery, and web services.
WARNING: Programming classes are notoriously time consuming and this course requires a very significant time commitment. Students joining this class should be prepared to devote a large amount of time to computer work outside of class.
CSIS 2102 and Junior standing (CSIS 3103 or CSIS 3470 would be even better). Knowledge of any particular computer languages or systems is not required, but everyone should have at least an intermediate programming skill level in a Java-like language and the experience of completing enough computing courses to reach Junior status. This course is equally appropriate for CS and IS majors. Ideally, the course will have a mix of students with different backgrounds and experience -- including programming, database, systems analysis, and human-computer interface.
COURSE LEARNING OBJECTIVES:
The CSIS Program has established a set of learning goals which form the basis of a solid educational foundation for obtaining employment as a computing professional and/or preparing for graduate studies. The focus of this course is on the Technical Growth Goals, which include improving ones analytical thinking ability, and gaining knowledge and practice in innovative programming and problem solving techniques. It also includes aspects of Personal Growth Goals, such as team building skills and ability to work efficiently.
The primary objectives of this course include
1. Learning the fundamental principles, theories, and software engineering concepts needed to design database backed web applications.
2. Learning to apply these principles, theories, and concepts to solve software design problems by implementing web applications.
3. Developing the skills and competencies needed by professional software engineers in the area of web applications.
4. Acquiring skills in working together with others as a team.
To achieve these objectives, the concepts to be learned include:
· Develop the technical ability to use a set of tools to build data-driven web sites similar to many currently on the Internet
· Gain an understanding of Web standards and an ability to apply that understanding to practical publishing problems
· Develop the ability to effectively use a relational database management system that supports Web-based collaboration
· Develop the ability to distinguish between good and bad Web service ideas
· Participate in a team to produce a sophisticated, high quality web application
The format of this course will include a combination of lectures, readings, labs, programming exercises and a team project.
Lectures will present concepts related to web application design and development. Text/reference readings will accompany material covered in class and should be used in conjunction with class meetings and assignments.
The scheduled lab sessions will be used primarily for hands-on practice with
new concepts. Lab sessions may sometimes be devoted to programming exercises,
but the majority of this work must be done outside of class.
Team projects are required to be database backed web applications. The choice of application is up to the team. A proposal must be submitted before mid-semester. This proposal must be approved by the instructor. Completed projects will include a written report, software installed on a server, and an in-class demonstration. Specific dates and detailed requirements will be provided.
This course is very heavily programming and project oriented. There will be individual hands-on assignments and team project work (generally 3 or 4 students per team).
Assignment grades will be based on the quality of the project and completed problem sets. The team project is a significant component of this course. Success will require that all team members do their share of the work. Thus, everyone on a team will get the same base score, with a small portion allocated for team members to grade each other.
The College makes two primary demands of its students and staff: 1) that each individual exercise the utmost care in planning and preparing the work presented for academic consideration, and 2) that members of the academic community conscientiously ensure the validity and protect the integrity of academic work and the grades earned for such work.
Academic dishonesty is a serious violation of academic policy and the Campus Conduct Code, and is punishable by severe sanctions including suspension and expulsion. The range of sanctions imposed is contingent on several factors, including the decision of the faculty member making the charge, whether it is the student’s first or a repeat offense, and the extent and nature of the offense.
this course, you are encouraged to discuss homework and programming problems
with each other. Most problem sets and labs should be done individually.
Projects are meant to be done in teams. Copying source code files from any
source is considered plagiarism.
Attendance at all class sessions
is expected. Students are responsible for all material covered or assigned in