This course provides a detailed introduction to the concepts, technologies, and protocols of data communications and computer networks. Students will explore fundamental topics such as network models, transmission media, switching, routing, transport and application-layer protocols (TCP, UDP, HTTP, DNS, etc.), network design and security, as well as hands-on lab practices using simulation tools. Emphasis is placed on both theoretical understanding and practical implementation.

Learning Outcomes

By the end of this course, students will be able to:

  1. Explain the layered architecture of computer networks (OSI & TCP/IP models) and describe the functions of each layer.

  2. Analyze switching and routing mechanisms, including algorithmic and protocol-based approaches.

  3. Differentiate between transport layer protocols such as TCP and UDP, and describe their roles in application-layer services.

  4. Configure small-scale networks using simulation tools, observe protocol behavior (e.g., TCP handshake, UDP data transfer), and troubleshoot connectivity issues.

  5. Design a network solution for a given scenario including addressing, routing, and resilience considerations.

This module is specifically designed for students with little or no prior programming experience. It provides a solid foundation in programming using Java, focusing on both theoretical concepts and practical implementation. By the end of the module, students will be able to write functional Java programs, understand core Object-Oriented Programming (OOP) principles, and apply problem-solving techniques to build real-world applications.

The course begins with an introduction to Java and the basic development environment setup. It then progressively covers essential programming constructs, object-oriented concepts, exception handling, and file operations. Emphasis is placed on hands-on learning through practical exercises, coding demonstrations, and mini projects that reinforce each concept taught in class.

🧭 Learning Outcomes

Upon successful completion of this module, students will be able to:

  • Install and configure a Java development environment.

  • Understand Java syntax, structure, and basic programming concepts.

  • Apply OOP principles such as classes, objects, inheritance, and polymorphism.

  • Implement exception handling and basic debugging techniques.

  • Perform basic file operations and handle user input.

  • Develop mini-projects applying best coding practices.