ECS 162 Web Programming ( 4 units )
Lecture: 3 hours
Computer Lab: 1 hour
Nina Amenta (firstname.lastname@example.org)
The technical aspects of building websites, including both server-side and client-side software development.
ECS 30 or equivalent programming experience in C and the Unix environment.
Students will be responsible for participating in class, completing 5-6 programming assignments, and completing a mid-term and a final exam.
All of these books are available online:
Interactive Data Visualization for the Web, by Scott Murray (2013)
The Node Beginner Book, by Manuel Kiessling (2001)
Using SQLite, by Jay A. Kreibich (2010)
Students can implement their programming assignments using either the computer systems available in the Computer Science Instructional Facility or on their own computers. A commercial cloud-based Web server will be used in several projects.
The programming projects will serve as the framework for the course, enabling students to build progressively more complex websites.
Summary of course contents:
Students will acquire a working knowledge of website development, including both front-end (client) and back-end (server) software design and implementation. Topics will include:
Goals: Students will (1) understand the Web at the applications level, (2) develop familiarity with current tools, patterns and issues, and (2) learn to design and implement a moderately sophisticated Web application.
Overlap: Client-side Web site development is taught in Design 157, Interactive Media. That course has several design prerequisites and focuses on effective visual and interaction design. This course has a different programming prerequisite, does not cover design issues except peripherally, and covers server-side as well as client-side software development. We plan to collaborate with Design 157 students to gain experience working in designer-programmer teams.
Data visualization using the Web will be taught in the new Statistics 141B. This will be one small topic among many in that course.
|1||x||an ability to apply knowledge of mathematics, science, computing, and engineering|
|2||an ability to design and conduct experiments, as well as to analyze and interpret data|
|3||x||an ability to design, implement, and evaluate a system, process, component, or program to meet desired needs, within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability|
|4||x||an ability to function on multi-disciplinary teams|
|5||x||an ability to identify, formulate, and solve computer science and engineering problems and define the computing requirements appropriate to their solutions|
|6||x||an understanding of professional, ethical, legal, security and social issues and responsibilities|
|7||an ability to communicate effectively with a range of audiences|
|8||the broad education necessary to understand the impact of computer science and engineering solutions in a global and societal context|
|9||x||a recognition of the need for, and an ability to engage in life-long learning|
|10||x||knowledge of contemporary issues|
|11||x||an ability to use current techniques, skills, and tools necessary for computing and engineering practice|
|12||an ability to apply mathematical foundations, algorithmic principles, and computer science and engineering theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices|
|13||x||an ability to apply design and development principles in the construction of software systems or computer systems of varying complexity|