ITSE309 : Programming Paradigms

Department

Department of Software Engineering

Academic Program

Bachelor in Software Engineering

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

Networks Programming (ITSE405)
Mobile Applications Development (ITSE304)
Cryptographic Algorithms and Protocols (ITSE306)
Information Retrieval Systems (ITSE307)
Mobile Operating System (ITSE308)
Programming Paradigms (ITSE309)
Principles of Games Developments (ITSE401)
Multimedia Systems (ITSE404)
Cloud Computing (ITSE406)
Web Services (ITSE407)
Web Applications Development (ITSE408)
Modelling of Complex Systems (ITSE303)
Data Mining/Business Intelligence (ITSE302)
Social Networking (ITSE409)
Logic Programming (ITSE301)
Mathematics I (ITMM111)
Physics (ITPH111)
Problem solving Technic (ITGS113)
Intro to Information Technology (ITGS111)
General English1 (ITEL111)
Arabic language 1 (ITAR111)
Mathematics II (ITMM122)
Arabic language 2 (ITAR122)
General English2 (ITEL122)
Introduction to Programming (ITGS122)
System Analysis and Design (ITGS124)
logic Circuit Design (ITGS126)
Introduction to Networking (ITGS215)
Introduction to Statistics (ITST211)
Object Oriented Programmin (ITGS211)
Introduction to Software Engineering (ITGS213)
Discrete Structures (ITGS217)
Numerical analysis (ITGS219)
Introduction to Databases (ITGS228)
Data Structure (ITGS220)
Foundation of Information Systems (ITGS222)
Introduction to Internet Programming (ITGS226)
Computer Architucture & Organization (ITGS223)
Information Security (ITGS224)
Design and Analysis algorithms (ITGS301)
IT Project Management (ITGS303)
Software Requirements Analysis (ITSE311)
Advanced Databases (ITSE312)
Scientific Writing (ITGS304)
Modern Programming Language (ITSE322)
Software Construction (ITSE321)
Operating System (ITGS302)
Software Design and Architecture (ITSE411)
Advanced Internet Programming (ITSE412)
Human Computer Interaction (ITSE413)
Software Engineering Ethics (ITSE414)
Software Quality Assurance and Testing (ITSE421)
Software Reuse and Component-Based Software Engineering (CBSE) (ITSE422)
Visual Programing (ITSE423)
software design models (ITSE424)