Bachelor in Software Engineering

University of Tripoli - Department of Software Engineering

Description

With the development of technology and the increase in the size of software, the completion of large software projects requires programmers to work in large teams that work together to accomplish a specific software project. Teamwork in the field of software requires special engineering capabilities specialized in software development.

To keep pace with this development, the Department of Software Engineering was established with the beginning of the establishment of the college in the year 2008, due to the urgent importance of the existence of such a department, which aims to prepare cadres capable of performing the completion of software projects using the engineering methods applicable in this field such as analysis, identification of requirements, design, project management and confirmation quality and others.

This department has already contributed to the graduation of more than 200 engineers by the end of the spring semester of the 2019 academic year. The department is proud of all graduates for their outstanding performance in public agencies and private companies. Currently, the employment rate for department graduates is more than 90%, and most students get jobs or establish private companies before they graduate.

Objectives

  • Employing the best human energies, curricula, means and tools that ensure the success of the educational process.
  • Teaching students the theoretical concepts and knowledge of software engineering while enabling them to acquire practical programming skills in various computer applications.
  • Follow-up developments in the department's specialization, taking into account quality standards and local and international accreditation.
  • Encouraging faculty members and students to engage in team work and creative professional scientific research.

Outcomes

  • software engineer
  • Systems Analyst
  • programmer
A graduate of the Software Engineering Department should be able to:
  • Analyzing and evaluating enterprise systems and designing digital and software solutions for them.
  • Developing intelligent software to solve mathematical or logical problems
  • Building database systems that work independently or jointly
  • Supervision and management of database systems
  • Information technology project management
  • Building and managing websites
  • Programming simulation and multimedia systems
  • Protect digital systems and information
  • Programming of fixed and mobile systems
  • Estimating the value and cost of software and its quality

Certificate Rewarded

Bachelor's degree in Software Engineering

Entry Reuirements

  • Obtaining a high school diploma with a grade of 75%
  • Passing 50 credits from the general stage in the College of Information Technology
  • Passing an Introduction to Software Engineering course with a general grade of very good

Study Plan

The Bachelor in Software Engineering prepares students to qualify for Bachelor in Software Engineering. The student studies several subjects which have been carefully chosen in this major to cover its different aspects.

It comprises 8 Semesters of study, in which the student will study a total of 135 units, which include 72 units of general subjects, and 36 major units, 15 of elective units. In addition to a final project in the student's major.

Study plan for this program is shown below:

1st Semester

Code Title Credits Course Type Prerequisite
ITMM111 Mathematics I 03 Compulsory +

This course provides students with basic concepts of real functions in a single variable, and concepts of ends and continuity. It also addresses the rules of differentiation. This course aims to develop the student's ability to determine the types of real, compulsory and non-compulsory functions, to chart them, to determine the scope, extent and reverse functions of them, to determine the existence of the end, as well as to know the continuity of the functions and to determine whether they are derivable. The course also aims to enhance students' skills in drawing curves using preferential concepts and demonstrations, through scheduled training and the diversity of evaluation methods. The rapporteur focuses on understanding real functions in a single and derivative variable and its applications that help him to understand the behaviour of multiple functions in his future study.

ITPH111 Physics 03 Compulsory +

Current and voltage: resistance and resistivity, Ohm's law, Power, energy, series and parallel resistance cuircuits, Kirchoff's laws. Waveforms: sinusovoltage: resistance and resistivity, Ohm's law, Power, energy, series and parallel resistance cuircuits, Kirchoff's laws.Waveforms: sinusoidal AC voltage and current, inductance, phase relations and elements of phasor, digital waveforms, digital timing (clock signals, jitter, drift, skew, hysteresis.Semiconductor diodes: semiconductor materials, extrinsic materials (n-type & p-type, energy levels, diode notation, diode equivalent circuits, transition and diffusion capacitance, reverse recovery time, zener diode and LEDs.Diode applications: load line analysis, diode approximation, series diode configurations, parallel and series-parallel configuration, AND/OR gates, half-wave rectification, full-wave rectification, clippers, clampers, voltage multiplier circuits

ITGS113 Problem solving Technic 03 Compulsory +

This course introduces the student to different heuristic techniques that aid programmers and computer scientists in solving problems. The course uses classical math and word problems for generating potential solutions to ''real-life'' problems encountered in the profession, and problem solving in teams. Topics covered include: Errors in reasoning; verbal reasoning; analogy problems; heuristics; mathematical word problems; analysis of trends; lateral thinking; deductive and hypothetical reasoning; computational problem solving; problem solving in-the-large; generating, implementing, and evaluating solutions; discrete mathematics, statistics; interpersonal problem solving.

ITGS111 Intro to Information Technology 03 Compulsory +

The course introduces modern management techniques that are used for the marketing, selling, and distribution of goods and services through the Internet. Topics include: E-business Strategy, Business Models in the new world, Cyber-services, E-business relationships, E-business technology, E-Marketing and e-payment, Antecedents and barriers to e-commerce, Business Process Management, Case studies with LAB work.

ITEL111 General English1 02 Compulsory +

Nouns (types, function, derivations), adjectives (types, sequence, derivations) adverbs (forms, position), use and forms of the ultimate tense, interrogative formations, negative of verbs. Passive constructions (forms, usages), adjective clauses (recognition and types, case of relative pronoun), gerund phrases, infinitive phrases, listening comprehension.

ITAR111 Arabic language 1 02 Compulsory +

Introduction: the importance of studying Arabic, the need for mastering Arabic, the importance of Arabic in nationalistic, religious, civilization and cultural frames, the role of civilization in effacing Arabic, some grammatical rules: words, sentence structures, verbal sentences, some dictation rules, looking up words.

2nd Semester

Code Title Credits Course Type Prerequisite
ITMM122 Mathematics II 03 Compulsory ITMM111 +

Vector Calculus: Vector Function. Derivative of a Vector function. Gradient of a scalar function. Divergence and curl of vector functions. Directional derivative and calculation of pressure, Kinetic interpretation of energy.Linear Algebra: integral of matrices. Addition and multiplication of matrices. Inverse of square matrix. Orthogonal, Hermition and Unitary matrices. Properties of determinants and expansion of the determinants. Solution of nonhomogeneous linear equations by Cramer’s rule. Elementary operations. Echelons and reduced echelon forms. Rank of a matrix. Equivalent matrices. Gauss-Jordan elimination method. System linear homogeneous and nonhomogeneous equations vector spaces. Subspaces. Linear dependence and independence Span, Basis and Dimension. Eigen value problems Eigen vectors. Cayley - Hamilton theorem.

ITAR122 Arabic language 2 02 Compulsory ITAR111 +

Some grammar rules, nominal sentences (starters, predicates and comparing them, abrogatives), addition, numbers and specifiers, appositives, some dictation rules, dictionaries, scientific and literary styles and their application.

ITEL122 General English2 02 Compulsory ITEL111 +

Introduction and augmentation of specialized vocabulary and aspects of scientific technical English used in the different departments of engineering. Listening comprehension

ITGS122 Introduction to Programming 03 Compulsory ITGS113 +

An introduction to computing and program development in the C programming language. This includes a brief introduction to basic computer concepts, an understanding of the operating system sufficient for writing program. introduction to computer programming; Getting started in C programming: introduction to basic program syntax; Printing messages, data types and declarations, numeric and character data, expressions, printing results, and variables; Processing and interactive input: assignments, counting, and input and output of data; C's conditional statements; C's looping statements; Modularity using functions: user--defined functions, parameters and return values, standard library functions, scope, call--by--reference; More modularity using functions: scope, storage class, and call--by--reference; Arrays: single and two dimensional arrays, initializers, array parameters; Character strings: processing strings using loops, some character and string library functions; Structures: structure concepts, structures as parameters, arrays of structures; Additional or miscellaneous topics other material as time permits.

ITGS124 System Analysis and Design 03 Compulsory ITGS113 +

This course provides a methodical approach to developing computer systems including feasibility study, systems planning, analysis, design, testing, implementation and software maintenance. Emphasis is on the strategies and techniques of systems analysis and design for producing logical methodologies for dealing with complexity in the development of information systems. The course includes the Waterfall model (The System Development Life Cycle), system analysis and design techniques (Process Modeling (DFDs), Logical Modeling (decision tree, decision table, structured English), Data Modeling (ERD Diagrams), Object Oriented Modeling (UML use cases).

ITGS126 logic Circuit Design 03 Compulsory ITPH111 +

Introduction to information representation & number systems and codes; Boolean algebra and logic gates; simplification of Boolean functions; Analysis and design of combinational logic circuits; multiplexers; Decoders and adders,; Introduction to synchronous sequential logic; flip flops; Analysis and design of clocked synchronous sequential circuits.

3rd Semester

Code Title Credits Course Type Prerequisite
ITGS215 Introduction to Networking 03 General ITGS111 +

Introduction to fundamental concepts in the design and implementation of computer communication networks, their protocols (OSI model vs TCP/IP protocol stack), applications, circuit and packet switching access networks. Introduction to Application Layer, topics include: Web, HTTP, FTP, Email, DNS, and socket programming. Introduction to Transport Layer, topics include: UDP, TCP, flow control, congestion control. Introduction to Network Layer, topics include: routing principles, IP routing, IPv4, IPv6, broadcast, multicast, unicast. Introduction to Link Layer and local area networks, topics include: error detection/correction, multiple access protocols, LAN, Ethernet. Basics of physical layer and wireless networking and related Security issues.

ITST211 Introduction to Statistics 03 Compulsory ITMM111 +

Probability: concept of a random experiment and sample space; addition and multiplication laws of probability; conditional probability and independence, Bay's theorem and its application. Random Variables and their probability: Conditional Probability; Binomial , Poisson, Hyperogeomtric, Normal , Gamma , Exponential and uniform random variables and their properties. Basic statistical concepts: Statistical data, measures of central tendency; dispersion skewness and kurtosis.Regression and Correlation: simple, linear regression; regression coefficient and correlation coefficient. Fitting of linear and curve linear regressions, Multiple linear regression and multiple.Test of Significance: Basic concepts; use of normal test and t-test for hypothesis testing for a mean and the differences of two means. Use of X2 distribution for testing independence and goodness of fit

ITGS211 Object Oriented Programmin 03 Compulsory +

This course covers: Introduction to Object-Oriented Programming, introduces students to object-oriented programming concepts, such as classes, objects, methods, interfaces, packages, inheritance, encapsulation, and polymorphism. These concepts are emphasized through extensive programming examples and assignments that require problem solving, algorithm development, top-down design, modular programming, debugging, and testing

ITGS213 Introduction to Software Engineering 03 General ITGS111 +

This course offers an introduction to software engineering. Topics covered: Software Engineering fundamentals; Software processes; Object-oriented concepts and UML; Requirements analysis; System modeling and specification; Software design models; from design to implementation; Software testing; Software tools; Emerging software development methods; Teamwork.

ITGS217 Discrete Structures 03 General ITMM122 +

This course include these topics: Number systems: natural numbers, radix r representation of integers, mathematical induction. Logic: propositional logic, predicate logic. Boolean algebra; sets; recursion; relations, and functions. Combinatory: counting principles; permutation groups. Graphs: graphs; diagraphs; trees; Euler's formula and coloring of graphs. Formal machines: automata and regular expressions; register machines: turning machines.

ITGS219 Numerical analysis 03 General ITMM122 +

This course is a programming course; students need to implement all discussed topics by any programming language in class per class fashion.This course include these topics: Introduction to error analysis, root finding methods for non-linear equations (interval halving, false position), Newton’s method, definition of interpolation, Newton’s-Gregory interpolation, central interpolation (Gauss forward and backward, Bessel, Stirling), Least square approximation, Spline curves, Numerical differentiation, Numerical integration (Trapezoidal method, Simpson's), Numerical solution of ordinary differential equations (Taylor’s series method), Euler method, Runge-Kutta method.

4th Semester

Code Title Credits Course Type Prerequisite
ITGS228 Introduction to Databases 03 Compulsory ITGS217 +

This course introduce the fundamentals of database management system characteristics of DB approach, components of DB systems, DB architecture, Data modeling, Database users and administrators. Entity-Relationship model, Relational-Algebra, SQL Programming, Database design, Functional dependency and Normalization, Relational Database, Introduction to Object oriented database and UML, practical applications using a standard Relational DB system.

ITGS220 Data Structure 03 Compulsory ITGS122 +

Classification of data structures, space and time considerations. Linked lists, stacks and queues. Tree structures, binary search trees. Array and pointer based implementations. Recursive applications. Sorting and searching.

ITGS222 Foundation of Information Systems 03 Compulsory ITGS111 +

Information systems are an integral part of all business activities and careers. This course is designed to introduce students to contemporary information systems and demonstrate how these systems are used throughout global organizations. The focus of this course will be on the key components of information systems - people, software, hardware, data, and communication technologies, and how these components can be integrated and managed to create competitive advantage. Through the knowledge of how IS provides a competitive advantage students will gain an understanding of how information is used in organizations and how IT enables improvement in quality, speed, and agility. This course also provides an introduction to systems and development concepts, technology acquisition, and various types of application software that have become prevalent or are emerging in modern organizations and society.

ITGS226 Introduction to Internet Programming 03 Compulsory ITGS122 +

Introduction into internet and World Wide Web and their protocols, TCP/IP, MIME, http protocols. SGML – documents and their types. Html BASICS. CSS. Basics of Scripting languages programming. Server part of application (ASP, PHP,ASP.Net, or JSP), Web pages and accessing database(ADO and MS Access, or MySql).

ITGS223 Computer Architucture & Organization 03 Compulsory ITGS126 +

System-level aspects of computing systems design, interconnection structures, Cache memory principles; Main memory; External memory; Input/ Output; CPU structure and function; computer arithmetic; instruction sets: characteristics and functions; instruction sets: addressing modes and formats; Control unit operation and design; Reduced Instruction Set Computers (RISC); Instruction-Level Parallelism and Superscalar Processors.

ITGS224 Information Security 03 Compulsory ITGS111 +

This course introduces students to the basic principles and practices of computer and information security. Focus will be on the software, operating system and network security techniques with detailed analysis of real-world examples. Topics include cryptography, authentication, software and operating system security (e.g., buffer overflow), Internet vulnerability (DoS attacks, viruses/worms, etc.), intrusion detection systems, firewalls, VPN, Web and wireless security.

5th Semester

Code Title Credits Course Type Prerequisite
ITGS301 Design and Analysis algorithms 03 General ITGS220 +

The module introduces formal techniques to support the design and analysis of algorithms, focusing on both the underlying mathematical theory and practical considerations of efficiency. Topics include asymptotic complexity bounds, techniques of analysis, and algorithmic strategies.

ITGS303 IT Project Management 03 General +

This course studies how to plan and manage projects at each stage of the software development life cycle. It covers specific techniques of Planning, Organizing, Monitoring, and Adjusting phases of software projects. Topics include technical and managerial skills needed to achieve project goals. A required team project combines technical and managerial techniques of software design and development.

ITSE311 Software Requirements Analysis 03 Compulsory ITGS124 +

This course aims at the study of methods, tools, notations, and validation techniques for the analysis and specification of software requirements. Covered topics include: Techniques for gathering requirements; representation Languages and Models; Analysis and validation techniques; Requirements in the context of system engineering; Specifying and measuring external qualities: performance, reliability, availability, safety, security, etc; Requirements documentation standards; Traceability; Human factors; Requirements in the context of agile processes; Requirements management; Handling requirements changes.

ITSE312 Advanced Databases 03 Compulsory ITGS228 +

Students will be able to: Develop scalable, distributed applications with SQL to meet organizational requirements. Create modular code using stored procedures and formulate triggers, Develop reusable code with stored procedures and functions, Handle SQL runtime errors to create robust software Audit data changes using triggers. Contents of this subject: 1- Data definition. Managing Tables with DDL, Creating schemas, Referencing schemas versus using the default schema, hiding schemas with synonyms. 2- Building tables, Adding and enforcing constraints. 3- Declaring variables and parameters, Creating and utilizing local variables, Passing input and output parameters, Calling built-in scalar functions, Converting data using CAST and CONVERT, Ordering data with ranking functions, Maintaining Data, Modifying data. 4- Creating Views, Stored Procedures and Stored procedure compilation and execution. 5- Auditing and implementing constraint on data by the means of Triggers. 6- Handling errors by communicating problems to the client with RAISERROR, Intercepting errors with TRY...CATCH.

6th Semester

Code Title Credits Course Type Prerequisite
ITGS304 Scientific Writing 03 General +

This course covers topics related to IT. It covers reading, grammatical, writing skills in the context ot IT. It covers topics such as: IT terminology definitions, relative clauses, clauses with: who, what, which, etc. It includes several reading and writing exercises.

ITSE322 Modern Programming Language 03 Compulsory ITGS211 +

To enable the students to design and develop enterprise strength distributed and multitier applications – Using Java Technology.A continuation of advanced Java programming techniques such as network programming, advanced graphical functions, JDBC, Swing, JavaBeans, Servlets and JavaServer Pages will be introduced.

ITSE321 Software Construction 03 Compulsory ITGS213 ITGS217 ITGS301 ITST211 +

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.

ITGS302 Operating System 03 General ITGS223 +

This course deals with all essential concepts of operating systems. Starting with describing role of an operating system in managing different tasks during the processing operation. The course explains the process concept, in particular process description within an OS environment and its scheduling strategies. Also, it covers: memory management, virtual memory, I/O management and disk scheduling, file management. Mutual exclusion and synchronization, deadlock and starvation concepts and algorithms are discussed in details in this course supported with LAB work.

7th Semester

Code Title Credits Course Type Prerequisite
ITSE411 Software Design and Architecture 03 Compulsory ITSE311 +

This course offers an in-depth look at software design. Continuation of the study of design patterns, frameworks, and architectures. Survey of current middleware architectures. Design of distributed systems using middleware. Component based design. Measurement theory and appropriate use of metrics in design. Designing for qualities such as performance, safety, security, reusability, reliability, etc. Measuring internal qualities and complexity of software. Evaluation and evolution of designs. Basics of software evolution, reengineering, and reverse engineering.

ITSE412 Advanced Internet Programming 03 Compulsory ITGS228 +

A second Internet programming course concentrating on advanced Internet application development. Creation of relatively sophisticated web pages and application that allow interactions between web page users and the web page as well as network programming, JDBC, XML processing are the main focus of the course. Different Internet programming language (JavaScript, jQuary, PHP) and tools will also be covered.

ITSE413 Human Computer Interaction 03 Compulsory ITGS213 +

Students will learn the fundamental concepts of human-computer interaction and user centered design thinking, through working in teams on an interaction design project, supported by lectures, readings, and discussions. They will learn to evaluate and design usable and appropriate software based on psychological, social, and technical analysis. They will become familiar with the variety of design and evaluation methods used in interaction design, and will get experience with these methods in their project. Topics will include usability and affordances, direct manipulation, systematic design methods, user conceptual models and interface metaphors, design languages and genres, human cognitive models, physical ergonomics, information and interactivity structures, and design tools and environments.

ITSE414 Software Engineering Ethics 03 Compulsory ITSE311 +

The course gives an insight into the ethical problems important for professionals in Software Engineering and Computer Applications. It forms a framework in which professional and ethical issues can be analyzed, and builds up an awareness of various views of ethical issues and the ethical responsibilities of professionals.The topics include, among others: Fundamental moral theories of Engineering ethics; the social context of a profession; conflicts between loyalties to different principles such as safety and economy; precautionary principle and environmental impact; integrity; privacy; ownership; etc.

ITSE500 03 Compulsory ITGS303 +

8th Semester

Code Title Credits Course Type Prerequisite
ITSE421 Software Quality Assurance and Testing 03 Compulsory ITSE321 +

This course shows how to define software quality and how it is assessed through various testing techniques it is intended to acquaint the students with principles, techniques and best practices of software quality assurance concentrating on software testing and verification It will cover functional testing, structural testing, regression testing, test automation, specification based testing, code review.

ITSE422 Software Reuse and Component-Based Software Engineering (CBSE) 03 Compulsory ITGS211 +

The course aims at introducing the students to the methods and techniques for constructing large-scale software systems from preexisting components; Topics include: Market versus technology; Component standards; component definition; Components interfaces and re-entrance; Aspects of scale and granularity; Patterns, frameworks, architectures; Reusing design patterns; Common Object Request Broker Architecture (CORBA); Java Beans; Enterprise Java Beans (EJB); Component development; Component distribution, acquisition and assembly.

ITSE423 Visual Programing 03 Compulsory ITGS211 +

This course introduces visual programming, the design and implementation of programs that utilize a visual user-interface. Topics covered will include: use of Microsoft Visual Studio for designing the interface; the message/event driven programming model, , audio and visual programming concepts, and will provide the framework to explore artistic programming projects; logical structure of the program (e.g. separating interface from ―business logic‖); control containers (e.g. graphics, dialogs, forms); and controls (e.g. button, slider, edit box.) Programming will be done in Visual Studio, which the student should have installed and operational on the first day of class.

ITSE424 software design models 03 Compulsory ITGS211 +

The subject is to make the students able to design, and implement distributed software systems in Java using sockets, remote procedure call mechanisms, and JAVA RMI. It will cover: Process & thread management, Basic Process Model, Scheduling, Critical Sections and Synchronization, Mutual exclusion, Semaphores, Conditional variables, Monitors; Concurrency, Modeling concurrent activity starting with JAVA threads, Forms of communication, architectures, Means of communication (Shared memory, Direct communication between processes); Distributed Systems, Client-server model, Naming and binding, RPC General principles, Protection and Security; Java RMI.

Elective Subjects

Code Title Credits Course Type Prerequisite
ITSE405 Networks Programming 03 Elective ITGS302 ITSE322 +

Introduction to Network Programming; Transport Layer Protocols; TCP, UDP, and SCTP; Client-Server Model; TCP Sockets; UDP Sockets; SCTP Sockets; I/O Multiplexing; DNS and Address Conversion; Threads Programming; RPC, Raw Sockets and Datalink Access.

ITSE304 Mobile Applications Development 03 Elective ITGS211 +

Development of native-based and hybrid applications for mobile environments taking advantage of gesture-based input and using location and presence services. Topics include introduction to low-level network services and mobile platforms, description of architectural patterns, principles of mobile development and interaction styles for network service usage. Topics Covered: Multi-threaded application development on iOS and Android; Platform agnostic data representations: XML and JSON; Use of advanced widgets: maps; App state: representation, accessing and updating; App communication mechanisms: services, publish and subscribe and intents; The Reactor pattern.

ITSE306 Cryptographic Algorithms and Protocols 03 Elective ITGS224 +

Cryptographic algorithms and protocols form the backbone of numerous security architectures. This course provides an introduction to modern cryptography and communication security. It focuses on how cryptographic algorithms and protocols work and how to use them. The course covers the concepts of block ciphers and message authentication codes, public key encryption, digital signatures, and key establishment, as well as common examples and uses of such schemes, including the AES, RSA-OAEP, and the Digital Signature Algorithm. Basic cryptanalytic techniques and examples of practical security solutions are explored to understand how to design and evaluate modern security solutions.

ITSE307 Information Retrieval Systems 03 Elective ITGS211 +

Information Retrieval provides a strong grounding in the fundamentals of organizing on-line information, multimedia warehouses, Web search/crawling and digital libraries. Topics include: Introduction to Information Retrieval, Boolean Retrieval, Dictionaries and Tolerant Retrieval, Index Construction, Dynamic Index Construction, Index Compression, The Vector Space Model, Scoring in the Vector Space Model, Information Retrieval Evaluation, Web Search, Web Crawling, Link Analysis, Flat Clustering, Hierarchical Clustering, Relevance Feedback, Query Expansion, New Research in Information Retrieval, Student Project.

ITSE308 Mobile Operating System 03 Elective ITGS302 +

Introduction to operating systems designed for mobile devices. Topics covered: A comprehensive overview of Mobile operating systems); the opportunities and challenges in designing them; mobile OS architectures( Android, iOS, Windows), mobile OS features (Multitasking, Scheduling, Memory Allocation, File System Interface, Keypad Interface, I/O Interface, Protection and Security , Multimedia) .

ITSE309 Programming Paradigms 03 Elective ITGS211 +

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.

ITSE401 Principles of Games Developments 03 Elective ITMC323 +

This class is designed to cover a number of topics in game design and programming on mobile platforms. Topics covered: Principle of game design on mobile platforms; UI design and algorithms for designing and implementing games; foundations of game design; practical usage of modern game engines, such as Cocoa2D and Unity; User experience design; Access methods; Use of multimedia. Detailed topics include: Complexity handling, resource efficient programming; Memory leak and abnormality testing; Reusability and separation with MVC.

ITSE402 Faculty free elective 03 Compulsory +

Faculty free elective is a course offered by any department of the faculty. Student can choose to take Faculty free elective from within subjects of other departments. The student is permitted to enroll in the course after earning 110 credits.

ITSE403 University free elective 03 Elective +

The university free elective is a subject that a student can study from any faculty at the University of Tripoli, any course from among the courses of other faculties, and the student is permitted to register for this course after earning 110 credits.

ITSE404 Multimedia Systems 03 Elective ITGS226 ITSE413 +

The course is a basic grounding in issue surrounding multimedia design and multimedia data. It enhances the student’s view about graphics and images. The course will cover the following: digital audio, graphics, still images and videos, animation. Also it includes data compression and transmission of media, as well as software tools used for integrating digital media.

ITSE406 Cloud Computing 03 Elective ITGS215 ITSE405 +

Hands-on introduction to cloud computing and developing mobile applications. Topics include: Cloud computing services and infrastructures (virtualization, datacenter networking, wide-area storage/replication, distributed filesystems); development tools (MapReduce, Hadoop, OpenStack); fundamental tradeoffs and algorithms (CAP theorem, NoSQL systems, Paxos) and applications (big-data analysis, real-time data systems, large-scale webservices); iOS and Android programmingto develop mobile applications with backend storage and computing components running on the cloud (Amazon AWS, Microsoft Azure, or Google AppEngine); Accessing cloud services with mobile devices; Extending mobile app with cloud processing and resources; Extending cloud services with the collective power of mobile devices; Partitioning of service functions between mobile devices and clouds; Data management for mobile cloud; Developing mobile cloud services with GAE proxy and Android.

ITSE407 Web Services 03 Elective ITSE412 ITWT320 +

Topics covered in this course include: Apache, TCP/IP, How Does Apache Use TCP/IP; Apache's Flags; Block Directives; Virtual Hosts; HTTP Response Headers; Common Gateway Interface (CGI); Writing and Executing Scripts; Script Directives; Debugging Scripts; Setting Environment Variables; suEXEC on Unix; Handlers; Actions; Authentication; Authentication Protocol Authentication Directives; Passwords Under Unix; Order, Allow, and Deny; Digest Authentication; Anonymous Access; Automatic User Information; Using .htaccess Files; Overrides; MIME, Content and Language Negotiation; Indexing ; Redirection; Proxy Server, Proxy Directives, Caching; Server-Side Includes: Server Status, Server Info, Logging, Authentication; Blocking Access; Counters; Faster CGI Programs; FrontPage from Microsoft; Languages and Internationalization; Server-Side Scripting; Throttling Connections; URL Rewriting; Miscellaneous: MIME Magic, DSO; Security: Apache-SSL, The Apache API, Writing Apache Modules.Laboratory Projects:Students implement a Unix operating system and provide user services, internetwork services and application services to serve external ―client‖ requests.

ITSE408 Web Applications Development 03 Elective ITWT311 +

This course will introduce web application concepts using both Django/Python and J2EEbased technologies, and you will be able to generalize these concepts to other web application technologies and tools.Covered topics include: Web data protocols. HTML, CSS, and Bootstrap. JavaScript. jQuery. Ajax. Web frameworks and design patterns. Cookies. Sessions. Many Django and J2EE applied concepts. Databases and transaction management. ORM tools. Web security. Concurrency. View templating. Web scalability and performance. Cloud services. Principles of UI design.

ITSE303 Modelling of Complex Systems 03 Elective ITMM122 ITSE301 +

This course introduces the student to computational techniques used for modeling and applications of complex real-world systems, and studies their temporal and spatial evolution. This course includes: complex systems; autonomous components; agent based modeling; stochastic simulation; species/activity modeling; use of system investigation tools.

ITSE302 Data Mining/Business Intelligence 03 Elective ITGS228 ITGS301 +

This course will define the notion of Business Intelligence and its components. It will change the way students think about data and its role in business. The goal of the course is to examine how data mining technologies can be used to improve decision-making. The topics will be covered include, Introduction to data mining and data mining process (identify business problem, build mining database, prepare data for modelling, build and evaluate model); Predictive Modelling; Descriptive/ Unsupervised Data Mining; Data Mining for business applications; Data mining and electronic commerce, Data warehousing: concepts and techniques; Data Warehouse Architecture; Data Warehousing to improve decision-making in business. Mini Project.

ITSE409 Social Networking 03 Elective ITMC323 +

Introduction to virtual communities overlay networks and social networking. Topics include architectural principles for heterogeneous social networking platforms, trust and reputation as social concepts, agent-based computing, and extraction of trends and patterns from information exchanged between community members. Course requires supervised and unsupervised lab, and intensive programming as a group project and individual assignment.

ITSE301 Logic Programming 03 Elective ITGS211 +

The course provides an introduction to Logic Programming. Topics Include: the syntax and the semantics of Prolog; Prolog interpreter; problem solving in AI; Prolog database querying, parsing, meta-programming; List Processing; Controlling Backtracking; Definite Clause Grammars; Practical Applications; Semantic Web and Logic Programming.