ITMC302 : Programming Paradigms

Department

Department of Mobile Computing

Academic Program

Bachelor in Mobile Computing

Type

Elective

Credits

03

Prerequisite

ITGS211

Overview

This course introduces to a variety of programming paradigms, programming languages, and language implementation. Topics include: Object-oriented programming and design; ambient-Oriented Programming; Functional and logical languages; Event-driven programming; Data and demand driven languages; Concurrent programming.

Intended learning outcomes

Knowledge & understand

  • The student recognizes imperative programming and declarative programming, and the student explains the difference between them.
  • The student describes the object-oriented programming paradigm and the modular programming paradigm. The student explains the difference between the two models.
  • The student explains the functional programming paradigm and explains the difference between pure and impure functional programming.
  • The student explains the database system, how to create it, how to deal with it, and the possibility of extracting data from it.
  • Students familiarize themselves with the logical programming paradigm.

Mental skills

  • The student distinguishes mandatory programming and declarative programming and knows the difference between them
  • The student compares the object-oriented programming model with the standard programming model.
  • The student draws the difference between pure and impure functional programming
  • The student suggests the database system, how to create it, how to deal with it, and the possibility of extracting data from it.
  • The student analyzes the logical programming model.

Practical & professional skills

  • The student designs imperative programming and declarative programming and knows the difference between them
  • The student distinguishes the object-oriented programming model and the standard programming model.
  • The student performs the functional programming model.
  • The student designs databases with the possibility of extracting data from them.
  • Students identify the logical programming paradigm

Generic and transferable skills

  • That the student be able to work in multiple methods so as to integrate tracking structures for different programming styles.
  • The student should be able to use the best tool to do the required task.
  • The student should be able to find the best and most effective solutions.

Teaching and learning methods

  • Theoretical lectures inside the classrooms.
  • A panel discussion between the students and in the presence of the professor to obtain new opinions and ideas

Methods of assessments

  • Midterm Exam = 30
  • Assignments = 10
  • Mini-project = 10
  • Final Exam = 50

Course contents

  • Programming Paradigms
  • Imperative programming paradigms
  • Imperative programming paradigms
  • Imperative vs declarative programming paradigms
  • Modular Programming Paradigms
  • Object-Oriented Programming Paradigms
  • Modular VS Object-Oriented Programming Paradigms
  • Modular VS Object-Oriented Programming Paradigms
  • Declarative Programming Paradigms
  • Functional Programming Paradigms
  • pure VS impure Functional Programming Paradigms
  • Database
  • Structured Query Language
  • Logic Programming Paradigms

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)