CENP3123: Client + Server Side Web Development
Course Overview
Credits: 4 Credits (30 hours of lecture, 0 hours of lab, 10 hours of project work)
Objectives:
After successfully completing this course, students will be able to:
• Describe the protocols necessary for delivering web content, explaining the interaction
between browsers and web servers in client-server architectures.
• Design and develop an HTML5-compliant website with semantically structured pages and
effective use of Cascading Style Sheets (CSS).
• Discuss ethical issues related to website design and development.
• Develop dynamic web pages using JavaScript and libraries such as jQuery.
• Familiarize students with software development for network-based systems.
Course Content
1. Introduction to Web Development
• Overview of web technologies
• Client-server architecture
• Web protocols (HTTP/HTTPS, TCP/IP)
2. Modern HTML and CSS
• HTML5 semantic elements
• CSS3 styling and layout techniques
• Responsive web design principles
• CSS frameworks (e.g., Bootstrap)
3. JavaScript Programming
• Introduction to JavaScript
• Variables, data types, and operators
• Control structures (if, loops, switch)
• Functions and scope
• Introduction to ES6 features (let, const, arrow functions, etc.)
4. DOM Manipulation and Interactivity
• Understanding the Document Object Model (DOM)
• Event handling and listeners
• Manipulating DOM elements with JavaScript
• Using jQuery for simplified DOM manipulation
5. Asynchronous JavaScript
• Understanding asynchronous programming
• AJAX (Asynchronous JavaScript and XML)
• Fetch API and Promises
• Introduction to async/await
6. Front-End Frameworks
• Introduction to React
• Components and props
• State management
• Client-side routing with React Router
7. Back-End Development
• Introduction to server-side programming
• Overview of server technologies (Node.js, Java)
• Building a simple server in Java
• Designing application-level protocols
8. Networking Concepts
• TCP/IP protocol architecture
• User Datagram Protocol (UDP)
• Transmission Control Protocol (TCP)
• Internet addressing and routing protocols
• Sockets programming (TCP/UDP)
9. Client-Server Applications
• Multithreading and exception handling
• Building a client-server application
• Peer-to-peer networking concepts
• Common Internet services (DNS, HTTP)
10. Security in Web Development
• Overview of web security concepts
• Secure coding practices
• Understanding common vulnerabilities (e.g., XSS, SQL Injection)
11. Ethics in Web Development
• Ethical considerations in web design
• Accessibility and inclusivity in web development
• Best practices for ethical web development
12. Course Projects
• Project 1: Develop a responsive website using HTML5 and CSS.
• Project 2: Create dynamic web pages using JavaScript and jQuery.
• Project 3: Build a client-server application using Java for the server and a client written in a
language of your choice (Java, C#, C++, Python, etc.).
Learning Outcomes
By the end of this course, students should be able to:
• Recognize and describe the workings of computer networks and client-server computing.
• Illustrate reference models with layers, protocols, and interfaces.
• Summarize the functionalities of different layers in networking.
• Test and validate websites using professional guidelines and tools.
• Discuss ethical issues related to website design and development.
• Develop dynamic web pages using JavaScript and jQuery.
Assessment Methods
• Class participation and quizzes
• Project submissions
• Final exam covering theoretical and practical aspects of the course
Recommended Resources
• Textbooks on web development, networking, and programming.
• Online resources and tutorials on HTML, CSS, JavaScript, and Java.
• Documentation and reference guides for libraries and frameworks used in the course.