CSTP 1303: Introduction to Client-Server Computing
Effective date
September 2022
Department
Computer Systems Tech Diploma
School
Trades, Technology and Design
Description
In this course students are introduced to the fundamentals of developing a distributed application system based on the client/server paradigm. Students learn how to design and implement client-server applications based on TCP/IP network protocol suite, and to use sockets in C++ programming environment to set up reliable (TCP) or unreliable (UDP) communication between two hosts.
Student learn by developing sample console, windows, or browser applications such as Chat applications, File Transfer applications, or simple role based multi-player games such as Chess. Security of the application is enforced by learning to use Secure Socket layer (SSL) or HTTPS API as secure communication protocol.
The goal in this course is to make students aware, through hands-on work, of the challenges of a networked/distributed application, such as performance, delays, reliability, synchronization, scalability, and security issues.
Year of study
1st Year Post-secondary
Prerequisites
CSTP 1202, CSTP 1205.
Course Learning Outcomes
Upon successful completion of this course, students will be able to:
- Explain the key concepts in networked client-server software systems
- Describe how sockets are created, setup, and managed during communication
- Explain the concept of thread of execution and its difference from a process in a computer application
- Use basic tools such as sockets, datagrams, multi-casting, multi-threading, and multi-processing to develop distributed systems in web, mobile and desktop platforms
- Explain how SSL works to secure the communication between hosts or server and endpoints
- Test, debug, and deploy client-server software systems
- Deploy a client-server application on physically separate hosts, debug and test its performance
Prior Learning Assessment & Recognition (PLAR)
None
Hours
Lecture, Online, Seminar, Tutorial: 30
Clinical, Lab, Rehearsal, Shop, Kitchen, Simulation, Studio: 30
Total Hours: 60
Instructional Strategies
Instructional strategies include classroom lectures, demonstrations, group discussions, computer lab and hands-on practical work.
Grading System
Letter Grade (A-F)
Evaluation Plan
Type
|
Percentage
|
Assessment activity
|
Assignments
|
45
|
Individual or team projects in which students hands in source code and exe based on the project requirements.
|
Midterm Exam
|
15
|
Either midterm or Final Exam can be a project. The other is in-class written test
|
Lab Work
|
25
|
Lab or other quizzes
|
Final Exam
|
25
|
|
Course topics
- Client/Server architecture
- Networking and protocols
- Socket and Datagram APIs
- Multithreading and thread synchronization in client/server applications
- Building reliable connection oriented communication using TCP
- HTTPS and OpenSSL, HTTP vs RTP => non-real time vs real-time distributed applications
- Messaging using Web Socket
- Building secure connections: HTTPS and OpenSSL
- Building unreliable or reliable connections using UDP
Notes:
- Course contents and descriptions, offerings and schedules are subject to change without notice.
- Students are required to follow all College policies including ones that govern their educational experience at VCC. Policies are available on the VCC website at:
https://www.vcc.ca/about/governance--policies/policies/.
- To find out if there are existing transfer agreements for this course, visit the BC Transfer Guide at https://www.bctransferguide.ca.