ITSE321 : Software Construction

Department

Department of Software Engineering

Academic Program

Bachelor in Software Engineering

Type

Compulsory

Credits

03

Prerequisite

ITGS213ITGS217ITGS301ITST211

Overview

General principles and techniques for disciplined low-level software design. BNF and basic theory of grammars and parsing. Use of parser generators. Basics of language and protocol design. Formal languages. State-transition and table-based software design. Formal methods for software construction. Techniques for handling concurrency and inter-process communication. Techniques for designing numerical software. Tools for model-driven construction. Introduction to Middleware.

Intended learning outcomes

Knowledge and understanding

  • To recognize the importance of compilers for programming languages
  • The student understands the stages of translating language instructions
  • That the student knows the steps of building towards a language
  • Explain to the student how translation operations are carried out

mental skills

  • To make the student aware of the dimensions of teaching plastic languages and their applications
  • That the student connects the concepts of the compiler industry with its other applications in reality
  • To understand the importance of translation processes
  • That the student analyzes the instructions embodied in a programming language

Practical and professional skills

  • The student should be able to analyze the operations of a system
  • That the student be able to link the sequence of procedures and their impact on each other
  • The student should be able to design a transformation to parse different texts
  • The student should be able to program parsing operations

General and transferable skills

  • The student acquires a skillful visualization of the relationship between the components of the software systems
  • That the student can formulate his idea to reach others
  • That the student realizes the importance of working in a team of programmers

Teaching and learning methods

  • Lectures
  • Tutorials
  • Problem-based learning
  • Mini-projects

Methods of assessments

  • Midterm Exam = 30
  • Mini-project = 20
  • Final Exam = 50

Course content

  • Introduction
  • Introduction to compilers
  • Translation operations
  • Compiler applications exercise
  • Vocabulary analysis
  • regular expressions
  • Exercises on regular expressions
  • Limited Mechanisms
  • Assertive and non-assertive mechanisms
  • Text analysis and syntax
  • left repetition
  • left operator
  • Parser programming
  • review

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)