ITMC414 : Networks Programming

Department

Department of Mobile Computing

Academic Program

Bachelor in Mobile Computing

Type

Compulsory

Credits

03

Prerequisite

ITGS226

Overview

Students will learn how to write applications in Java that make use of network programming. This course covers the following topics: Introduction to network programming, Transport Layer Protocols, User Datagram Protocol, Client-Server Model, TCP Sockets, UDP Sockets; SCTP Sockets; Java's input/output system and how it works; Multicast Sockets implementation; client/server implementations; Threads Programming; multi-threaded applications; Multiplexing and De-multiplexing Applications; Implementing Application Protocols; Distributed computing technologies including remote method invocation, plus small project that addresses different departments disciplines.

Intended learning outcomes

Knowledge & understand

  • The student should know the concepts and foundations of network programming.
  • To recognize the student to understand all the basic concepts of multithreading programming.
  • To familiarize the student with understanding all the basic concepts of server and client programming.
  • The student should know how to write a program that contains threads.
  • The student should know how to write a program that contains the server and the client.

Mental skills

  • The student should solve a specific problem by programming networks.
  • The student solves the problem using threads.
  • The student should propose solutions using one of the techniques used in network programming.
  • The student solves the problem using the server and the client.
  • The student should distinguish the different techniques used in network programming.

Practical & professional skills

  • The student writes a program to solve a specific problem using network programming.
  • The student should use packages in programming.
  • The student should use the server and the client in programming.
  • The student should apply all the basic concepts of network programming within the laboratory.
  • The student should perform several integrated projects to implement all the above explained in the course.

Generic and transferable skills

  • The student should be able to solve problems using network programming.
  • The student should be able to link packages in programming.
  • The student should be able to work in a team to solve, apply and implement a problem.
  • The student should be able to deliver several integrated projects without errors and satisfactory results.

Teaching and learning methods

  • Theoretical lectures in the classroom
  • Practical lectures inside the laboratory with the help of teaching assistants in the college.
  • A panel discussion between students and in the presence of the professor to obtain new opinions and ideas.
  • Assignments and tests to motivate students to reach the best way to solve and discuss them with the professor.

Methods of assessments

  • Midterm exam = 25
  • Submission of assignments = 10
  • Submission of project = 15
  • Final exam = 50

Course contents

  • Introduction to Network Programming
  • Advance Java Programing
  • Multithreading
  • Extends treads
  • Runnable objects
  • Contacted Communication
  • TCP Sockets
  • Contact less Communication
  • UDP Sockets
  • SCTP Sockets
  • Multicast Sockets
  • Remote
  • Procedure Call (RMI) (Architecture )
  • Remote
  • Procedure Call (RMI) Programming
  • Corba

Principles of Games Developments (ITMC404)
Parallel and Distributed Computing (ITMC403)
Mobile Multimedia (ITMC402)
Mobile 3D Graphics (ITMC401)
Mobile Commerce (ITMC304)
Programming Paradigms (ITMC302)
ARM microprocessor (ITMC301)
Arabic language 1 (ITAR111)
General English1 (ITEL111)
Physics (ITPH111)
Intro to Information Technology (ITGS111)
Problem solving Technic (ITGS113)
Mathematics I (ITMM111)
Arabic language 2 (ITAR122)
Mathematics II (ITMM122)
General English2 (ITEL122)
Introduction to Programming (ITGS122)
System Analysis and Design (ITGS124)
logic Circuit Design (ITGS126)
Introduction to Statistics (ITST211)
Object Oriented Programmin (ITGS211)
Introduction to Software Engineering (ITGS213)
Introduction to Networking (ITGS215)
Discrete Structures (ITGS217)
Numerical analysis (ITGS219)
Computer Architucture & Organization (ITGS223)
Data Structure (ITGS220)
Foundation of Information Systems (ITGS222)
Information Security (ITGS224)
Introduction to Internet Programming (ITGS226)
Introduction to Databases (ITGS228)
Mobile Applications Development (ITMC311)
Design and Analysis algorithms (ITGS301)
Operating System (ITGS302)
Principles of mobile communication networks (ITMC312)
IT Project Management (ITGS303)
Scientific Writing (ITGS304)
Cross-Platform Mobile App Development (Flutter) (ITMC323)
Heterogeneous and Mobile Databases (ITMC322)
Mobile Interaction Design (ITMC321)
Mobile Operating System (ITMC313)
Security in mobile computing (ITMC411)
Personal Area Networks (ITMC412)
Social Networking (ITMC413)
Networks Programming (ITMC414)
Fundamentals ubiquitous computing (ITMC421)
Cloud Computing (ITMC422)