Department Course
Introduction To Programming (CSBP112)
This course covers introductory concepts in computer programming using C++. There isan emphasis on both the concepts and practice of computer programming. This coursecovers principles of problem solving. Topics include program development process,variables, data types, expressions, selection and repetition structures, functions, textfiles, and arrays.
Credit Hours : 3
Course Learning Outcomes
At the end of the course, students will be able to :- Identify the different phases to develop a program to solve a problem.
- Analyze simple problems and design algorithms and represent them in pseudo-code or flowcharts.
- Develop, test, and debug computer programs.
- Apply the concepts of variables, data types, input, output, expressions, assignment, the processes of decision-making and repetition
- Write computer programs using functions/subprograms
Algorithms and Problem Solving (CSBP119)
Introduction to problem-solving methods and program development including: the role of algorithms in the problem-solving process, implementation strategies for algorithms, the concept and properties of algorithms, and basic algorithms. Program design strategies including implementation using a programming language which supports modular design and includes: I/O, events, control structures, arrays, functions.
Credit Hours : 3
Course Learning Outcomes
At the end of the course, students will be able to :- Translate a problem expressed in English, mathematics or a diagram to a computer program.
- Implement algorithms using programming constructs (variables, control structures, methods).
- Solve problems using suitable data structures.
- Implement searching, summing and selecting algorithms.
Programming Lab I (CSBP121)
This lab based course consists of a set of laboratory assignments and projects to engage students in the process of understanding and implementing basic structured programming concepts. Key topics include problem solving, simple data type and structure data types such String and Arrays, basic statements such as assignment, input and output; selection statement, repetition statement, and methods.
Credit Hours : 1
Corequisites
- CSBP119 with a minimum grade D
Course Learning Outcomes
At the end of the course, students will be able to :- Design and implement algorithm to solve simple problems.
- Choose suitable data type to represent the information.
- Apply sequence, selection and repetition structures to solve problems.
- Design and implement programs containing many methods.
- Manipulate one-dimension and two-dimension arrays.
Introduction to Programming (CSBP123)
This course covers introductory concepts of problem-solving and basic program development using Python. Students will be introduced to the role of algorithms design in the problem-solving process and to the process of writing programs via hands-on experience. Topics include data types, input/output, conditional and iteration control structures, lists, dictionaries, and functions.
Credit Hours : 4
Course Learning Outcomes
At the end of the course, students will be able to :- Translate a problem expressed in English, mathematics, or a diagram to a computer program
- Implement algorithms using Python programming constructs (variables, control structures, functions)
- Solve problems using simple data structures
- Implement programs for data storage and manipulation
Object Oriented Programming (CSBP219)
Object-oriented design, encapsulation and information hiding, separation of behavior and implementation, classes and subclasses, inheritance (overriding, dynamic dispatch), polymorphism (subtype polymorphism vs. inheritance), class hierarchies, collection classes and iteration, Primitive Data Structures and Application (Array, String, and String Manipulation), Programming Practice using an IDE (modularity, testing, and documentation.
Credit Hours : 3
Prerequisites
- CSBP119 with a minimum grade D
Course Learning Outcomes
At the end of the course, students will be able to :- Implement algorithms using programming constructs and classes.
- Identify OO paradigm and basic concepts
- Apply class compositions
- Construct class hierarchies
- Utilize simple data structures for processing lists of objects.
Programming Lab II (CSBP221)
This lab-based course consists of a set of laboratory assignments and projects to engage students in the process of understanding and implementing programming language concepts. It provides hands-on experience with object-oriented programming. Key topics include objects, classes, subclasses, inheritance, polymorphism, and graphical user interface.
Credit Hours : 1
Prerequisites
- CSBP219 with a minimum grade D
Corequisites
- CSBP319 with a minimum grade D
Course Learning Outcomes
At the end of the course, students will be able to :- Implement algorithms using programming constructs and classes.
- Apply class compositions
- Build programs with graphical user interface components
- Manipulate collections of objects.
- Apply class hierarchies
Introduction to Data Science (CSBP224)
The course is an introductory overview of methodologies, processes and tools for working with data. Topics to be covered are introduction to management of a data science project, preparation of data, modeling data, evaluation of a model, building a data pipeline, the three types of analytics: descriptive, predictive and prescriptive; as well as business intelligence fundamentals. Professional skills, such as communication, presentation, and storytelling with data, are also covered. Students will acquire a working knowledge of data science through hands-on projects and case studies in various domains. Bias in training data, bias in AI and current collaborative data science working methodologies and tools are also highlighted.
Credit Hours : 3
Prerequisites
- CSBP119 with a minimum grade D
Course Learning Outcomes
At the end of the course, students will be able to :- Explain the different types of analytics
- Produce a predictive model
- Asses the statistical significance of a model
- Explain the diverse data science specific project management methodologies
Artificial Intelligence (CSBP301)
Artificial Intelligence (AI) technology is increasingly prevalent in our everyday lives. It has uses in a variety of industries from gaming, to finance, robotics and medical diagnosis. Topics include the basics and applications of AI, machine learning, probabilistic reasoning, robotics, computer vision, natural language processing and how AI impacts society. This course incorporates hands-on exercises and projects.
Credit Hours : 3
Prerequisites
Course Learning Outcomes
At the end of the course, students will be able to :- Explain how AI impacts society
- Apply AI methods to perform practical tasks
- Synthesize a simple AI system
- Evaluate different AI approaches to solve a problem
Operating Systems Fundamentals (CSBP315)
Operating systems examples; Criteria to select, deploy, integrate and administer platforms or components to support the organization’s IT infrastructure; Fundamentals of hardware and software and how they integrate to form essential components of IT systems; Operating system principles; File systems; Real-time and embedded systems; Fault tolerance; Operating system maintenance, administration and user support.
Credit Hours : 3
Prerequisites
- CENG205 with a minimum grade D
Course Learning Outcomes
At the end of the course, students will be able to :- Explain the logical progression of operating system development.
- Explain the necessary components and structures of an operating system.
- Install and customize an operating system.
- Write simple shell scripts in operating systems
- Evaluate various methods for process scheduling and inter-process communication.
- Explain file-system concepts and operations.
Human Computer Interaction (CSBP316)
Human-Computer Interaction (HCI) is the discipline of studying the use of computers by humans and the creation of interactive systems and software that are useful, usable, and enjoyable for the people who use them. The HCI course provides a comprehensive introduction and deep drive into the following topics: principles of user interface design; interface prototyping; user psychology and cognitive science; user interface development; user centered design; styles of interaction; usability testing; human interaction evaluation techniques; web based user interfaces. HCI students have opportunities to work in a medium-size HCI project where they develop a GUI by following a user centered design process.
Credit Hours : 3
Prerequisites
- CSBP219 with a minimum grade D
Course Learning Outcomes
At the end of the course, students will be able to :- Discuss issues related to the process of user-centered design.
- Select appropriate interaction styles.
- Apply usability principles and guidelines.
- Build effective prototypes of user interfaces.
- Evaluate user interfaces given design goals, user goals, and usability principles.
Data Structures (CSBP319)
Techniques for developing, testing and debugging moderate size programs; Arrays, strings and string processing; Linked structures; Exception handling; Knowledge, implementation, and use of files, lists, stacks, queues, trees, heaps and graphs; Strategies for choosing the right data structure; Recursion.
Credit Hours : 3
Prerequisites
- CSBP219 with a minimum grade D
- Pre/Co CSBP221 with a minimum grade D
Course Learning Outcomes
At the end of the course, students will be able to :- Apply recursion to solve problems.
- Use APIs for implementing moderate size programs with data structures.
- Design and implement linear data structures.
- Design and implement tree data structures.
- Model and Solve problems using graphs.
Data Mining (CSBP320)
This course introduces the concepts, issues, tasks and techniques of data mining process. Topics include data preparation and feature selection, association rules, classification, clustering, evaluation and validation, and sequence mining, and data mining applications. The course mainly focuses on data mining issues such as data selection and cleaning, machine learning techniques to ``learn" knowledge that is ``hidden" in data, and the reporting and visualization of the resulting knowledge. The course illustrates data mining process by examples of practical applications from the life sciences, computer science, and commerce. Several machine learning topics including classification, prediction, and clustering will be covered.
Credit Hours : 3
Prerequisites
- STAT210 with a minimum grade D
Course Learning Outcomes
At the end of the course, students will be able to :- Explain the basic principles of the data mining process.
- Prepare data for mining and exploration.
- Use data mining techniques and modern tools to discover trends and patterns in realistic datasets.
- Evaluate different data mining models/techniques with respect to their performance accuracy.
- Function on teams and communicate effectively in written and oral forms.
Data Structures and Algorithms (CSBP323)
This course covers data structures’ topics: Arrays, strings and string processing, Recursion; linked structures, stacks, queues, trees, binary search trees, heaps, hashing and graphs.
Credit Hours : 3
Prerequisites
- CSBP219 with a minimum grade D
Course Learning Outcomes
At the end of the course, students will be able to :- Apply recursion to solve problems
- Design and implement linear data structures.
- Design and implement tree data structures.
- Formulate and solve problems using graphs.
Data Visualization (CSBP325)
With its foundations rooted in statistics, psychology, and computer science, practitioners in almost every field use visualization to explore, understand and present data. In this course the students learn about different types of graphical representations of the data, transform the data into knowledge, present the knowledge visually, clear evidence and findings to your intended audience, and tell engaging stories that clearly depict the points you want to make all through data graphics. The skills learned in this course offer enormous value for creatives, educators, entrepreneurs, and IT consultants.
Credit Hours : 3
Prerequisites
Course Learning Outcomes
At the end of the course, students will be able to :- Explain the various data visualization principles, methods and tools available
- Create infographics and charts that display information effectively
- Design charts and scientific plots using data visualization software tools
- Construct compelling narratives using data analytics storytelling techniques
Database Systems (CSBP340)
The objective of this course is to give a thorough introduction to the concepts for organizing, querying and managing databases. This course introduces the concepts relating to information systems in organizational usage, focusing on the analysis and modelling of data. It covers the fundamentals of databases, the process of database design, including data modelling, and in particular the Entity Relationship. Students will gain a sound practical understanding of the SQL relational query language. They will also develop deep technical knowledge in a relational DBMS and a sense of professionalism and team work discipline.
Credit Hours : 3
Prerequisites
Course Learning Outcomes
At the end of the course, students will be able to :- Describe the main concepts of a database system.
- Compare a database system approach to a file-based system approach.
- Design a database using the entity-relationship diagram (ERD).
- Use Relational Algebra to perform various operations on relations.
- Apply normalization to database tables.
- Function effectively as a team to create and query a database.
Data Management and Organization (CSBP341)
The course covers the role of data, information, and knowledge in data science applications. The course then focuses on the role of databases and database management systems, covering topics such as algebra and the relational database, logical and physical design of databases, and the use of SQL. This includes programming in SQL, from the perspective of a user querying or modifying an existing database, by a database designer, and by an application programmer invoking SQL from a host language. Further, the student learns to query NoSQL databases, and contrast them to the relational model.
Credit Hours : 3
Prerequisites
Course Learning Outcomes
At the end of the course, students will be able to :- Explain the differences between data, information and knowledge
- Build a data model (entity-relationship model)
- Use Relational Algebra to perform various operations on relations
- Create database tables, and formulate database queries in SQL
- Explain the ideas of distributed and NoSQL databases, and contrast them to the relational model
Modeling & Simulation (CSBP400)
Introduction to system modeling and decision-making using computer simulation; Discrete-event simulation and popular modeling paradigms; Continuous and hybrid simulations: Input modeling, Output analysis and random numbers; Application areas and tools for simulation.
Credit Hours : 3
Prerequisites
- STAT210 with a minimum grade D
Course Learning Outcomes
At the end of the course, students will be able to :- Explain techniques of mathematical models.
- Design models for simple and complex problems.
- Model discrete event systems.
- Use simulation software to solve complicated problems.
- Evaluate the performance of different systems using simulation techniques.
Machine Learning (CSBP411)
This course introduces the fundamental concepts of machine learning. Topics include extracting and identifying useful features that best represent the data. Pre-processing methods such as replacing missing entries, feature selection, discretization and popular supervised and unsupervised learning algorithms such as linear regression, decision trees, k-nearest neighbor, Bayesian learning, support vector machines, neural networks and k-means are also covered in the course. Topics related to evaluating what is learned include evaluation strategies, cross-validation, Leave-one-out, Bootstrap prediction probabilities. Applications covered in the course include text and web mining, document classification, bioinformatics. The course is accompanied by hands-on problem solving using some of the popular machine learning toolboxes and programming languages.
Credit Hours : 3
Prerequisites
- CSBP301 with a minimum grade D
Course Learning Outcomes
At the end of the course, students will be able to :- Describe the main components of a machine learning system.
- Design training sets and testing sets for machine learning tasks.
- Apply machine learning techniques to discover trends and patterns in realistic datasets.
- Evaluate different machine learning techniques in terms of their applicability to different Machine Learning problems.
Smart Computer Graphics (CSBP421)
This course covers fundamental techniques in computer graphics and mathematical foundations. Topics include graphic tools, geometric transformations, basic and advanced rendering techniques, computer animation in film, gaming and simulation.
Credit Hours : 3
Prerequisites
- CSBP319 with a minimum grade D
Course Learning Outcomes
At the end of the course, students will be able to :- Explain formalisms and operations of computer graphics
- Use graphic software tools and methods to produce computer graphics
- Compare methods and tools used in computer graphics
- Develop a simple computer animation
Bioinformatics (CSBP431)
Overview of molecular biology as related to bioinformatics. Bioinformatics and the relationship between computer science and biology in the field of bioinformatics. Algorithms in general and specifically those often used in bioinformatics. Computing tools used in bioinformatics. Databases available for bioinformatics work. Scientific method and how bioinformatics applications apply. Models of successful collaborations between biologists and computer scientists. Computational models of biological processes and their role in scientific discovery.
Credit Hours : 3
Prerequisites
- SWEB450 with a minimum grade D
Course Learning Outcomes
At the end of the course, students will be able to :- Describe the impact of bioinformatics in exploring, analyzing and understanding genetic data.
- Analyze biological sequences.
- Design an algorithm to solve biology related problem.
- Compare bioinformatics data types including sequences, structures, and expression data
Applied Computer Vision (CSBP441)
Computer Vision is a key element in many products such as cameras, medical image processing and diagnosis, and home and industrial robotics. This course covers the fundamentals of computer vision, simple pattern recognition techniques for face recognition and optical character recognition (OpenCV), image labeling techniques, and simultaneous localization and mapping navigation systems (SLAM) for navigation of autonomous vehicles.
Credit Hours : 3
Prerequisites
- CSBP301 with a minimum grade D
Course Learning Outcomes
At the end of the course, students will be able to :- Apply Pattern Recognition Techniques To Classify Objects In A Scene
- Compare Different Computer Vision Methods
- Develop A Simple Computer Vision Application
- Explain The Theoretical And Practical Aspects Of Computer Vision
Internet Computing (CSBP461)
The Internet is increasingly used as a large interconnection network for deploying distributed applications to solve challenging problems in diverse areas. This course covers the basic principles and practices of Web application development (client-side and server-side programming) and distributed computing over the Internet. It focuses on the Internet as a domain for sharing resources using distributed computing with client/server programming, Web services and Service-Oriented Computing. In this course students will learn the basic foundations of Internet computing and use Web technologies (HTML, HTTP, XML, Java Servlets Java Server Pages, and Web services) to develop Internet-based applications.
Credit Hours : 3
Prerequisites
- CSBP340 with a minimum grade D
Course Learning Outcomes
At the end of the course, students will be able to :- Explain the evolution of Internet technologies and Web applications concepts and architectures.
- Develop Internet-based applications using client-side and server-side programming.
- Write and parse XML documents.
- Develop Internet-based applications using Web Services technology.
- Work on a team to build Internet-based applications.
Advanced topics in Data Science (CSBP475)
Special topics in Data Science is a unique course. The topics are selected from recent developments and trends in Data Science. The course may introduce new or emerging aspects in the field, contemporary applications and theory in Data Science, or assesses the state-of-the-art through readings, discussions, and critiquing current literature.
Credit Hours : 3
Prerequisites
Course Learning Outcomes
At the end of the course, students will be able to :- Evaluate the feasibility and applications of the specialized topic.
- Recognize the methods, techniques, and skills specific to the topics.
- Apply the specialized methods, techniques, and skills in data science.
Robotics and Intelligent Systems (CSBP476)
This course provides students with a working knowledge of methods for design and analysis of robotic and intelligent systems. Particular attention is given to modeling dynamic autonomous robot systems, measuring and controlling their behavior, and making decisions about future actions. The objective of this course is to provide the basic concepts and algorithms required to develop intelligent robots that act in complex environments. The intent is to motivate and prepare students to conduct research projects in the field of robotics and intelligent systems.
Credit Hours : 3
Prerequisites
- CSBP301 with a minimum grade D
Course Learning Outcomes
At the end of the course, students will be able to :- Discuss the basic concepts of intelligent systems.
- Analyze current applications and limitations of intelligent robots.
- Create mobile robots.
- Develop software required to control intelligent robots
Natural Language Processing (CSBP477)
This course introduces the concepts of text analysis and statistical Natural Language Processing (NLP) with a focus on practical applications. Topics include basic text processing, language models, natural language generation, text classification, sentiment analysis, part-of-speech tagging, parsing, vector semantics, and Information extraction. The course combines NLP theory with hands-on applications using Python toolkits.
Credit Hours : 3
Prerequisites
Course Learning Outcomes
At the end of the course, students will be able to :- Explain fundamental principles of natural language processing.
- Describe practical applications of NLP technologies.
- Apply text processing and analysis
- Develop NLP models to extract information from raw text data
- Work in teams and communicate effectively in written and oral forms.
Mobile Web Content and Development (CSBP483)
This course introduces students to the basics of contemporary mobile application development. The main requirement of the course is to build a functioning application on smart devices. Students explore mobile architecture and environment setup. Students learn different components, views, and controls that comprise UI, as well as, UI layout, constraints, and event handlers. The course covers extended/advanced topics that include data access, data binding, and SQLight. The course is project oriented in which students must finish and demonstrate a working web application. Code design and architecture are emphasized.
Credit Hours : 3
Prerequisites
- CSBP340 with a minimum grade D
Course Learning Outcomes
At the end of the course, students will be able to :- Design mobile user interface (views, layout, controls, etc.)
- Explain the key technological principles and methods for delivering and maintaining mobile applications
- Apply Model-View-View-Model (MVVM) design principle and its variants
- Develop a complete project/application for smart devices
Computer Animation and Visualization (CSBP487)
This course will cover advanced topics in computer graphics. The emphasis will be on scientific visualization, animation, procedural modeling, and procedural texturing by using industry standard tools and methodologies.
Credit Hours : 3
Prerequisites
- CSBP319 with a minimum grade D
Course Learning Outcomes
At the end of the course, students will be able to :- Apply computer graphics techniques to visualize different types of data
- Compare different types of animations
- Demonstrate knowledge of scientific data visualization methods
- Create a computer graphic animation using industry standard tools
Computational Intelligence for Data Management (CSBP491)
This course provides students advanced knowledge on computational intelligence methods related to various aspects of data analysis. Rather than treating computational intelligence and data analysis separately, the course allows students to examine the integration of these two disciplines. The emphasis is on how to apply computational intelligence methods to various data analysis aspects.
Credit Hours : 3
Prerequisites
Course Learning Outcomes
At the end of the course, students will be able to :- Explain The Main Aspects Of Data Analysis Process.
- Demonstrate an understanding of basic techniques for intelligent data analysis.
- Evaluate and analyze data-driven projects.
- Apply computational intelligence techniques for data analysis.
- Function effectively on teams for the successful completion of a project
Internship (CSBP495)
Students are required to spend one full semester as interns in an approved internship program. The internship provides students with practical experience, which allows them to integrate theory with “real world” situations. During the internship students work under the supervision of a qualified professional in industry or government fulfill various assignments to acquire first-hand knowledge of a working environment. In addition to this professional supervision, each student is assigned an academic advisor to ensure that an appropriate level of support from and contact with the university is given to the student during the training period. Students are required to write a final formal report, that documents and details the technical aspects of the work undertaken during their internship, and give a final presentation at the end of the internship period.
Credit Hours : 6
Course Learning Outcomes
At the end of the course, students will be able to :- Apply It Knowledge In The Workplace
- Communicate Effectively And Technically Orally And In Writing
- Function Effectively, Professionally And Ethically On Teams
- Identify The Structure And Operations Of The Workplace
- Recognize The Employee Rights And Responsibilities
- Recognize The Need For Continuing Professional Development
Special Topics in Computer Science (CSBP499)
Special topics in Computer Science is a unique course. The topics are selected from recent developments and trends in Computer Science. The course may introduce new or emerging aspects in the field, contemporary applications and theory in computer science, or assesses the state-of-the-art through readings, discussions, and critiquing current literature.
Credit Hours : 3
Prerequisites
- STAT210 with a minimum grade D
Course Learning Outcomes
At the end of the course, students will be able to :- Assess the feasibility and applications of the specialized topic
- Recognize The Methods, Techniques, And Skills Specific To The Topics.
- Apply the specialized methods, techniques, and skills in computer science
Advanced Design and Analysis of Algorithms (CSPG701)
The course starts by reviewing asymptotic notations and growth of Functions (, O, notations), recursion and recurrences. Study of various algorithm design paradigms (divide & conquer, greedy, and dynamic programming); Advanced data structures (B-Trees; Binomial Heaps; Fibonacci Heaps; Data Structures for Disjoint Sets). Complexity Analysis (Polynomial Time; Polynomial Time Verification; NP-Completeness and Reducibility; NP-Completeness Proofs; NP-Complete Problems); Study of some advanced algorithms (selected from the following: Sorting Networks; Algorithms for Parallel Computers; Matrix Operations; Polynomials and FFT; Number-Theoretic Algorithms; String Matching; Computational Geometry; Approximation Algorithms).
Credit Hours : 3
Course Learning Outcomes
At the end of the course, students will be able to :- Compare different algorithmic design strategies.
- Prove correctness of a given algorithm.
- Analyze the complexity of a given algorithm
- Compare different algorithms and Data Structures options for a given application.
- Design efficient algorithms for new situations.
Data Mining for Advanced Analytics (CSPG730)
Data mining (DM) tools and techniques can be used to predict future trends and behaviors, allowing individuals and organizations to make proactive and data-driven decisions. Topics include data exploration and preprocessing, data quality verification, data warehouses, data analytics and machine learning techniques for model and knowledge creation, Statistical learning theories, classification, association and clustering, ensemble learning, model building and evaluation, interpretation of patterns in large collections of data, data visualization, and important research issues relevant to advanced mining applications.
Credit Hours : 3
Course Learning Outcomes
At the end of the course, students will be able to :- Apply proper preprocessing statistical methods and DM techniques for clustering, association, and classification.
- Develop a data-mining and statistical learning based solution using realistic datasets and modern tools.
- Evaluate different DM models.
- Create a scientific report
Distributed and Parallel Computing (CSPG731)
The course starts by discussing the need for distributed and parallel computing. Covers the design and implementation of parallel and distributed systems. Topics include Cluster Computing, Grid Computing, Cloud Computing, supercomputing, Many-core Computing, Graphics Processing Unit (GPU) architecture and parallel computing. Parallel algorithm design and implementation issues for such systems. We will cover topics such as synchronous and asynchronous communication, and multithreading implementation, and discuss the challenges therein and corresponding solutions. In addition, we will also study parallel models of computation such as dataflow, and demand-driven computation; message passing and Message Passing Interface (MPI) programming; embarrassingly parallel problems; decomposition and load balancing; shared memory and Open Multi-Processing (OpenMP) programming.
Credit Hours : 3
Course Learning Outcomes
At the end of the course, students will be able to :- Discuss distributed and parallel models for cluster, grid, cloud and multi-core computing applications.
- Develop parallel and distributed-based solutions for different types of applications.
- Analyze parallel, distributed and performance evaluation results.
- Apply appropriate distributed and parallel programing models to real world problems and data sets.
Software Engineering (CSPG751)
This course covers advanced concepts in software engineering. It starts by eliciting the core concepts and principles underlying the methodologies and techniques required to develop sound software systems. Topics include fundamental software engineering principles and theory, software life cycles, requirement engineering, system specification, system modeling, system architecture, system implementation, system testing, software maintenance, as well as project management. Study of the importance of problem specification, programming style, periodic reviews, documentation, thorough testing, and ease of maintenance.
Credit Hours : 3
Course Learning Outcomes
At the end of the course, students will be able to :- Develop solutions to complex problems
- Discuss modern software engineering principles and automated techniques.
- Compare testing techniques and code review strategies.
- Create scientific reports.
Software Engineering Fundamentals (SWEB300)
The course covers the basics of software engineering. It introduces the phases of Software Development Life Cycle (SLC), namely, requirements gathering and analysis, design approaches and modeling, and testing. The course discusses also the main software development models and focuses on the object-oriented paradigm, its concepts, its characteristics, and its design principles. The course concludes with a brief introduction to the wide area of Computer Aided Software Engineering (CASE).
Credit Hours : 3
Prerequisites
- CSBP219 with a minimum grade D
Course Learning Outcomes
At the end of the course, students will be able to :- Explain the main concepts of software engineering.
- Identify the software design methodologies.
- Outline the fundamentals of software requirements.
- Produce a working software prototype.
- Use case tools for design and implementation.
- Use Different Testing Methods.
Analysis of Algorithms (SWEB450)
Asymptotic analysis of upper and average complexity bounds; Identifying differences among best, average, and worst case behaviors; Big oh, little oh, omega, and theta notation; Standard complexity classes; Empirical measurements of performance; Time and space trade-offs in algorithms; Using recurrence relations to analyze recursive algorithms; Algorithmic strategies including brute-force, greedy, divide-and-conquer, backtracking, branch-and-bound, and pattern matching; Introduction to P and NP.
Credit Hours : 3
Prerequisites
- CSBP319 with a minimum grade D
Course Learning Outcomes
At the end of the course, students will be able to :- Demonstrate familiarity with major algorithmic problem-solving paradigms.
- Analyze the time and space complexities of algorithms.
- Develop efficient algorithms to solve computational problems.
- Examine the limitations of algorithmic problem-solving techniques.
Game Development (SWEB451)
Theoretical and practical issues in the development of video games; fundamental elements of game development; game history and genres; game analysis; game architecture; game engine evaluation; game worlds and their dimensions; character archetypes; character behavior and animation; intelligent behavior; logical and physical game laws; societal and cultural issues.
Credit Hours : 3
Prerequisites
- CSBP319 with a minimum grade D
Course Learning Outcomes
At the end of the course, students will be able to :- Analyze the mechanics of games.
- Develop a complete game design based on a game design template.
- Explain the various dimensions of a game.
- Implement a novel game.
- Work effectively as members of a term project.
Application and Service Development for the IoT (SWEB645)
This course introduces students to the fundamentals and basics of contemporary mobile application development. In particular, the course focuses on mobile architecture, mobile UI design, and environment setup. Students learn different UI aspects such as controls, layouts, constraints, and event handlers. The course covers advanced topics that include sensor data, multimedia, Cloud databases, and Google Maps. The course is project oriented in which students must finish and demonstrate a mid-size working mobile application. Code design, data capturing, and architecture are emphasized.
Credit Hours : 3
Course Learning Outcomes
At the end of the course, students will be able to :- Discuss fundamental mobile development principles.
- Design cross-platform mobile Application.
- Identify the key technological principles for IoT devices and applications.
- Develop a complete project/application for smart devices and sensors.
Software Construction (SWEB651)
The course focuses on Agile process, quality issues and software engineering lifecycle, theoretical basis, such as Abstract Data Types, advanced object-oriented mechanisms, techniques and principles for producing reusable components, reuse issues, multithreading design, inter-process communication, architectural patterns, service-oriented architecture. The course offers the students the opportunity to develop a project following the software engineering lifecycle, including debugging, testing, demonstration and presentation.
Credit Hours : 3
Course Learning Outcomes
At the end of the course, students will be able to :- Analyze Various Software Construction Tools
- Apply Software Engineering Principles In All Software Construction Phases.
- Apply Several Forms Of Abstraction Techniques To Construct Small, Medium And Large-Scale Computer Programs.
- Define The Software Engineering Mission And Main Activities For Software Construction
- Explain And Use Agile Development Methodology
Requirements Engineering (SWEB652)
This course provides the knowledge and skills necessary to translate user needs and priorities into system requirements, which form the starting point for engineering software systems. Techniques for translating user needs and priorities into specific functional and performance requirements are presented. Topics include Goal Oriented RE, scenario oriented RE, elicitation techniques, Validation and Verification, and specifying requirements using informal/semi-formal/formal techniques. To acquire practical and research experience, students participate in groups to develop software requirements specifications (SRS) and summarize/present research papers. Case studies and tools will be introduced.
Credit Hours : 3
Course Learning Outcomes
At the end of the course, students will be able to :- Apply Software Requirements Validation Techniques To Meet User’S Needs.
- Develop Software Requirements Specifications (Srs) Using Various Software Requirements Models
- Elicit Users’ And Stakeholders' Needs
- Model The Problem Context For Large-Scale Systems
Software Testing & Quality Assurance (SWEB653)
This course emphasizes the importance of software testing. It introduces the main concepts and techniques of testing in order to assure software system quality. In particular, the course covers software testing at the unit and module levels. New ways of testing are introduced by this course. They consist in modeling the software into logical structure, syntactic structure, graphic structure, or input space characterization, and then covering the model elements. Based on the new style of testing different techniques are presented in order to manually and automatically generate high quality test data. In addition, the course covers emergent trends of software testing such as, testing web sites, web services, mobile applications, and testing for safety and security. This course covers also topics on software quality and quality assurance.
Credit Hours : 3
Course Learning Outcomes
At the end of the course, students will be able to :- Analyze Testing Objectives And Choose Appropriate Strategy Of Testing.
- Design And Generate Test Cases And Scenarios.
- Evaluate Emergent Trends Of Software Testing And Carry Out Researches On Testing Problem.
- Understand The Quality Of A Software And Evaluate Its Characteristics
- Use New Software Testing Styles And Techniques.
HCI and Usability (SWEB654)
The course explores the concepts of human computer interaction and focuses on HCI usability. It covers theory, models and principles of human-computer interaction design, development methods for interfaces. The course defends the User Centered Design philosophy and covers several techniques to implement it such as prototyping, UX learning, Agile UX and usability testing. To acquire practical and research experience, students participate in groups to study, design and implement HCI as part of a term project and write research papers.
Credit Hours : 3
Course Learning Outcomes
At the end of the course, students will be able to :- Apply Principle Of Design To Produce High Usability Prototypes Of Hcis.
- Apply Usability Principles And Guidelines To Produce And Evaluate Interactions.
- Evaluate Hcis And Their Usability By Using Advanced Techniques Of Evaluation
- Explain The User-Centered Design Philosophy.
Web Applications (SWEB655)
The course focuses on technologies and industry standards for accessing and manipulating information and services via Web applications. This course aims at building core competencies in web design and development. It includes introductions to XHTML, eXtensible Markup Language (XML), Cascading Style Sheets (CSS), Asynchronous JavaScript And Xml (AJAX) with XML and JavaScript Object Notation (JSON) as primary means to transfer data from client, and server and server-side languages, such as ASP.NET or Java 2 platform (JEE). Course topics also include: HTTP Protocol, Application server vs. Web server, Model View Controller (MVC) architecture and Java beans.
Credit Hours : 3
Course Learning Outcomes
At the end of the course, students will be able to :- Apply Software Engineering Concepts And Principles In Web Development
- Compare Various Web Application Approaches.
- Develop Web Applications
- Evaluate New And Rapidly Evolving Web Technologies And Their Applications
Special Topics in Software Engineering (SWEB656)
Software Engineering is a highly evolving field and new approaches and methods are developed continuously. This special topic course focuses on a major research trend in Software Engineering and assesses the state-of-the-art through readings, discussions, critiquing current literature, and elaborating a technical paper addressing the challenges in software engineering. Research strategies, effective presentations, and technical writing are emphasized throughout the course.
Credit Hours : 3
Course Learning Outcomes
At the end of the course, students will be able to :- Analyze Research Activities In Advanced Topics Of Software Engineering.
- Develop Novel Software Engineering Systems And Methods.
- Evaluate New And Rapidly Evolving Technologies And Their Applications.
- Write A Research Paper.
Embedded Software (SWEB657)
This course covers fundamental principles and techniques for embedded software engineering. Continuous, discrete, and concurrent behavior modeling methods are introduced with a focus on the component-based development approach for designing, implementing, and analyzing embedded software. Formal models for reachability analysis and model checking, as well as approaches to quantitative analysis, are covered. To acquire practical and research experience, students participate in groups to develop implementation projects and write research papers.
Credit Hours : 3
Course Learning Outcomes
At the end of the course, students will be able to :- Analyze The Behavior Of Embedded Systems Using Quantitative Measures.
- Develop An Embedded System Using Software Engineering Processes In A Term Project.
- Evaluate Embedded Systems Models.
- Write A Group-Based Research Paper
عفوا
لايوجد محتوى عربي لهذه الصفحة
عفوا
يوجد مشكلة في الصفحة التي تحاول الوصول إليها