Skip to main content
Faculty of Science
Department of Software Engineering
Bachelor of Science in Software Engineering
Minor in Computer Information Systems
Course Description
Course Description
CAIS131 - Computer Programming I - 3 credits
This course introduces the fundamentals of procedural programming. Topics include basic concepts of computer organization, data types, control structures, functions, arrays, files, and the mechanics of running, testing, and debugging. The C++ programming language is used in this course.
CAIS222 - Computer Programming II - 3 credits
This course introduces the object-oriented paradigm and programming using Java. It covers Java syntax and language features, compilation, interpretation, execution, class and object usage, graphical interfaces, and the Java API. Programming solving techniques are also covered.
Pre Requisite: CAIS131
CAIS230 - Foundations of Information Systems - 3 credits
This course is meant to introduce students to information systems and demonstrate how these systems are used to create competitive advantage. The main focus of this course will be on the key components of information systems - hardware, software, data, and communication technologies. 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 various types of information systems. Students will gain an understanding of how these systems help in organizational decision making and in increasing the efficiency of business processes.
CAIS231 - Computer Organization & Operation - 3 credits
This course presents basic concepts of computer organization and operating systems. Combinational and sequential digital circuits are studied. Topics will include Boolean algebra, canonical forms of Boolean functions and the concept of a state machine. Typical implementations and applications of digital circuits are discussed. Students are introduced to basic models of a CPU and to data representation and manipulation at the machine instruction level. Operating system concepts include concurrency, process scheduling and dispatch.
Pre Requisite: CAIS131
CAIS232 - Computer Networks - 3 credits
This course studies the theory and operation of computer networks. First it covers the basic concepts of signal analysis and computer communications including the OSI reference model. The course then explores aspects of digital data transmissions such as analog-digital conversion, channel capacity, signal encoding, and transmission media. It offers exposure to the LAN architecture, network layers and network topologies. Other topics include error detection and correction, congestion control and traffic management, data link layer protocols and multiplexing, circuit vs. packet switching.
Pre Requisite: CAIS131
CAIS233 - Systems Analysis & Design - 3 credits
This course is an introduction to systems analysis and design concepts, methodologies, techniques and tools. The topics covered are software life-cycle and process models, software requirements and specifications, software design, fundamental design concepts and principles, software architecture, structured design; object-oriented analysis and design. As a result, this course concentrates on the early phases of systems analysis development and only lightly touches on implementation and maintenance.
Pre Requisite: CAIS131
CAIS234 - Internet, Web & Tcp/Ip - 3 credits
This course covers the architecture of the TCP/IP protocol suite. Specific topics include UDP, FTP, HTTP, ARP, and ICMP protocols, IP classes, IP addressing, subnetting, and subnet masking. Students use common TCP/IP commands and utilities to conduct experiments in static and dynamic routing using the Routing Information Protocol (RIP) and Open Shortest Path First (OSPF). Students also learn to configure Web and FTP servers to enable web development and access to online databases.
Pre Requisite: CAIS232
CAIS252 - Introduction to Data Processing - 2 credits
This is a service course offered for other departments that includes an introduction to computers and data processing the concept of information, bytes and bits, office automation like sending and receiving email, connecting and browsing the Internet, creating a document and processing it, creating a spreadsheet and including formulas and charts. It also includes creating and managing presentations and an introduction to statistical data, collecting data and designing a questionnaire sheet, entering data using a spread sheet and producing frequency tables and cross tabulations in addition to averages.
CAIS322 - Algorithms & Data Structures - 3 credits
This course introduces fundamental concepts of data structures and the algorithms that proceed from them. Topics include the underlying philosophy of object-oriented programming and recursion, the basics of algorithmic analysis including asymptotic analysis of algorithms and the “Big O” notation fundamental data structures including stacks, queues, linked lists, hash tables, trees, and graphs and their applications.
Pre Requisite: CAIS222
CAIS325 - Database Management Systems - 3 credits
This course introduces concepts and techniques of database systems. Topics include: information models, database system components, database system architecture, DBMS functions data independence, relational databases as mapping conceptual schema to a relational schema, relational algebra, relational database design and database query language SQL. Additional topics are: transaction processing, failure and recovery and concurrency control. Student exercises are done in MySQL, Oracle or any other relational DBMS.
Pre Requisite: CAIS233
CAIS326 - Graphics & Multimedia Applications - 3 credits
This course concerns the use of multimedia techniques for the integration of video and audio content with web pages and other media. The course covers the tools used to generate video files, editing and formatting for publishing, image processing, and techniques such as capturing, filtering, enhancing, and handling of large images, digitization, and archiving. The course also covers web site programming with HTML and script coding.i
Pre Requisite: CAIS131
CAIS331 - Operating Systems - 3 credits
This course concerns the principles of operating systems. The topics covered are multi-process programming, resource sharing, deadlocks, memory management, file systems, security and protection, real-time issues, distributed computing and a comparison of popular operating systems. Practical work deals with configuring an OS as an administrator.
Pre Requisite: CAIS231
CAIS335 - Network Programming - 3 credits
This is a continuation of the CAIS 232 Computer Networks. Emphasis is based on system programming, and protocol implementation and handling. Driver and network management, user profiles and controls are also covered. The course has a focus on Windows NT and UNIX programming.
Pre Requisite: ( CAIS232 and CAIS331 )
CAIS351 - Computer Architecture - 3 credits
This course explores more sophisticated aspects of computer organization. Topics covered are: instruction set design, data representation and arithmetic including floating point, MIPS CPU design, instruction pipelining, memory architectures including cache, virtual memory and RAID, interfacing and communications including interrupts and IO programming and parallel computing architectures.
Pre Requisite: CAIS231
CAIS352 - Embedded & Real-Time Systems - 3 credits
This course is about using microprocessors as an integral part of a larger system. In many cases software must perform tasks within strict time constraints. The course starts with a survey of interfacing techniques including interrupts, DMA and analog-digital conversion. Then the choice of architecture is considered: microcontroller, DSP etc. Finally the course covers the programming methods and operating systems used to meet timing constraints as well as power, cost and expandability constraints.
Pre Requisite: CAIS351
CAIS361 - Artificial Intelligence - 3 credits
This course is a survey of approaches used to design machines which imitate human intelligence. Topics include problem solving using search and heuristics, theory of logical inference and the use of inference-base systems, knowledge representation, agents and planning, dealing with uncertainty, machine learning including neural networks and Bayes nets and their application to pattern recognition.
Pre Requisite: ( CAIS131
CAIS362 - Compiler Theory & Design - 3 credits
This course covers the following topics: the basic theory of compilers and linguistics, formal grammar, parsing methods and lexical analysis, code generation, local and global code optimization and dynamic allocation, meta commands, and compiler directives, translators and interpreters.
Pre Requisite: CAIS322 and CAIS351
CAIS371 - Computer Security - 3 credits
This course covers the following topics: the concept of computer security; the definition of security and infringement on security; user and profiles; system and object privileges; optimal performance; synonyms; simple security measures ranging from password protection to user control. Session control parameters. Firewalls and other security techniques; data encryption and coding; and security on levels of operating system and data base applications.
Pre Requisite: CAIS232
CAIS372 - Geographic Information Systems - 3 credits
This course covers the following topics: an introduction to GIS; geographical maps and images in vector as well as bitmap format; layers and their significance; data acquisition, digitization and capture; data integration, projection and registration; the data structures and databases used in GIS; data modeling and an introduction to remote sensing. Application in this course focuses on using GIS software to provide GIS databases for field-related applications.
Pre Requisite: CAIS131
CAIS373 - Electronic Business Strategy - 3 credits
This course focuses on the linkage between organizational strategy and networked information technologies to implement a rich variety of business models in the local and global contexts connecting individuals, businesses, governments, and other organizations to each other. The course provides an introduction to e-business strategy and the development and architecture of e-business solutions and their components.
CAIS375 - Mobile Application Development - 3 credits
In this course students learn to develop mobile applications. This course gives students the opportunity to apply the programming principles, software architecture and user experience considerations that are specific for mobile applications. The course involves implementing a complete mobile application.
Pre Requisite: CAIS233
CAIS400 - Cis Internship - 3 credits
This course is designed to give students the opportunity to use/apply in a real life setting what they have learned during the course of their degree. Moreover, it is intended to develop students’ practical skills and to reflect on their university experience. This course is organized to be offered in the Summer semester. There are no class lectures but rather scheduled weekly meeting with the instructor. There will be no test or exams. A detailed written plan of action will be developed for every student in order to know the type and amount of work that will be expected.
CAIS401 - Senior Practicum - 2 credits
This is a team-based research project to design and implement an information technology solution to a practical problem from science or business. The problem is of sufficient complexity as to require team members to partition and coordinate their efforts for successful completion. The required written and oral reports are evaluated by a team of reviewers.
CAIS421 - Object Oriented Programming - 3 credits
This course covers the principles and concepts of object-oriented programming and OO design. It offers an in-depth overview of classes and objects, template classes and methods, inheritance, polymorphism, and exception handling. Emphasis is placed on windows programming, event handling, graphical user interface design, testing, debugging, and program control.
Pre Requisite: CAIS222
CAIS425 - Management of Information Systems - 3 credits
This course covers the following topics: procedures and protocols for administration of information systems (IS) in business environments; the role of IS as a decision support tool; job descriptions and the interaction of personnel with IS; ensuring information integrity and security; strategies for IS performance evaluation, planning and maintenance; societal and ethical issues related to IS design and use. Case studies are taken from real-life experiences to enable the student to benefit from this course.
Pre Requisite: CAIS233
CAIS429 - Special Topics - 3 credits
This is a senior year advanced level course in subjects that are the current state-of-the-art topics in information technology and computing sciences and engineering. Topics are selected and prepared by the teacher, approved by the department, and announced to the students at the time of registration.
CAIS430 - Advanced Spreadsheets - 3 credits
This course demonstrates how to exploit seldom-used features of Microsoft Excel to create more efficient and sophisticated spreadsheets. The student will design spreadsheets 1) to do complex “what-if” calculations, 2) to summarize data sets conveniently in a variety of ways and 3) to display analytic results for effective visualization.
Pre Requisite: CAIS131 or BUSA227
CAIS432 - Data Mining - 3 credits
This course instructs students how to access and combine information from diverse sources of very large data sets and use this information to create models that are useful gaining new insight into data patterns and for making predictions.
Pre Requisite: CAIS233
CAIS433 - Object-Oriented Systems Design - 3 credits
This course studies object-oriented methods of software systems design and development. Topics included are: the application of modules and sub modules, using object-oriented data bases, and OO programming language methodologies and implementation. This course completes the information studied in CAIS 325, data base management systems, but with direct hands-on application using an Oracle-like environment to design and implement information systems.
Pre Requisite: CAIS222 and CAIS325
CAIS440 - Web Page Development - 3 credits
This course will focus on developing Client and Server Side Web applications. The course introduces the basics of Web programming, dynamic Web pages, and client-side Web programming. The main part is on server-side Web programming. During this part, the student will learn how to program Web pages, using validation controls, accessing data sources (databases and XML data), consuming/creating XML Web services, caching, and securing Web applications. Microsoft ASP.NET is the main server-side technology used in this course.
Pre Requisite: CAIS233
CAIS443 - Web Content Design - 3 credits
This course is an introduction to client and server-side design, creation, and maintenance of web pages and websites. Emphasis is put on web design standards and quality evaluation. The course concludes with a web design project.
Pre Requisite: BUSA227 or CAIS131
CAIS445 - Web Server Design & Implementation - 3 credits
This course covers the following topics: servers and clients; functions and characteristics of Web servers; Web sites and their basics; advanced Web HTML programming; Java programming and Java applets. Embedding Java in Web sites and HTML code and client-server programming in Java. The course also gives an introduction to CGI, HTTP, and XML protocols and discusses dynamic graphics, error handling, session management methodologies, and interfacing to online databases with SQL.
Pre Requisite: CAIS234
SWER141 - Introduction to Programming - 3 credits
This course covers the fundamentals of computer programming and how to use computers to solve analytical problems. Topics include language syntax, data types, program organization, problem solving methods, algorithm design, use of arrays, and logic control structures. Students will be introduced to classes and objects. Upon completion, students should be able to develop ways of thinking about problem solving, and write programs in reasonably efficient manner.
SWER142 - Object Oriented Programming - 3 credits
This course covers object-oriented programming concepts in depth. These concepts include: Inheritance, polymorphism, interfaces. Efficient text processing and exception handling will also be emphasized. Upon completion, students should be able to develop Domain-Driven programs in an object oriented approach.
Pre Requisite: SWER141
SWER212 - Software Construction - 3 credits
This course first covers the systems development life cycle (SDLC) used for large scale projects by explaining in depth its stages (Systems planning, Systems analysis, Systems design, Implementation). The course also covers modern software development methodologies such as Rapid Application Development and Agile Development. Several tools used in software development methodologies will also be covered such as prototyping, CASE tools, use of UML to visualize software design.
Pre Requisite: SWER141
SWER241 - Data Structures & Algorithms Analysis - 3 credits
This course covers the design and analysis of algorithms and data structures. Students will learn how to solve problems by using the appropriate data structure such as linked lists, stacks, queues, directed graphs. Analysis of algorithms including time complexity and Big-O notation are discussed. Trees representations, traversals, recursion, binary search trees will also be covered. Students will also use recursive and iterative sorting and searching techniques to solve problems.
Pre Requisite: SWER142
SWER251 - Introduction to Computer Systems - 3 credits
This course presents basic principles of digital logic and computation structures, and how hardware components and software layers are organized to make a computer system. Organizational concepts that support programming a computer are discussed including System requirements, such as resource management, security, communication and synchronization, and their hardware and/or software implementation. Exploration of multiprocessor and distributed
Pre Requisite: SWER141
SWER252 - Operating Systems - 3 credits
This course concerns the principles of operating systems. The topics covered are multi-process programming, resource sharing, deadlocks, memory management, file systems, security and protection, real-time issues, distributed computing and a comparison of popular operating systems. Practical work deals with using a command-line environment to issue OS commands and modifying multi-threaded programs.
Pre Requisite: SWER251
SWER253 - Computer Networks - 3 credits
This course introduces ISO-7 layers reference model, which includes necessary protocols. Selected layers, such as data link layer, transport layer, network layer will be focused with detail information. It will include a theoretical basis of data communication, guided and unguided.
Pre Requisite: SWER141
SWER301 - Research Methods - 3 credits
This course focuses on research methods in Software engineering. It prepares students for advanced research by examining how to plan, conduct and report on empirical investigations. The course will cover techniques applicable to each of the steps of a research project, including formulating research questions, theory building, data analysis (using both qualitative and quantitative methods), building evidence, assessing validity, and publishing. It will particularly focus on research involving software, developing statistical tools to measure software performance and the ways in which people interact with software tools.
SWER311 - Software Requirements Engineering - 3 credits
Basic concepts and principles of software requirements engineering, its tools and techniques, and methods for modeling software systems. Topics include requirements elicitation, prototyping, functional and nonfunctional requirements, object-oriented techniques, and requirements tracking.
Pre Requisite: SWER212
SWER312 - Software Testing & Quality Assurance - 3 credits
This course covers fundamental software testing techniques. In particular, the important phases of testing will be reviewed, emphasizing the significance of each phase when testing different types of software. The course will also include concepts such as test generation, test oracles, test coverage, regression testing, mutation testing, program analysis (e.g., program-flow and data-flow analysis), and test prioritization. In addition, this course covers the metrics for software quality assurance and the development of appropriate quality assurance strategies via the application of current standards, models and measurement techniques.
Pre Requisite: SWER342
SWER313 - Service Oriented Architecture - 3 credits
Students learn how to design for distributed systems and component-based development, underpinned by cross-platform protocols based largely on XML. Also learn the ability to implement and deploy simple web services using a suitable development platform. They will also learn to define and design applications as combinations of services, and be able to discuss the emergent properties of those compositions. Topics include (Software components: Modularity; reuse; contracts; component-oriented programming; services), Web-services (XML; HTTP; SOAP; WSDL; UDDI, Representational state transfer, Architectural styles of the web; REST; resource-oriented architecture), Composition (Workflow; activity diagrams; BPMN; BPEL)
Pre Requisite: SWER212
SWER341 - User Experience & Interaction Design - 3 credits
In this course, students learn how to design and program interactive designs by using a specific application framework. The course will cover the principles of visual design so students can effectively build human-centered GUIs where information is organized in visually appealing interfaces.
Pre Requisite: SWER142
SWER342 - Software Architecture & Design - 3 credits
In this course, students learn the principals involved in the analysis of large software systems, Topics also include: design patterns, anti-patterns and General Responsibility Assignment Software Patterns (GRASP). Participants also gain hands-on experience using a case tool to draw most of the Unified Modeling Language (UML) diagrams necessary to support object oriented analysis and design activities. Students learn how to verify and validate models by checking consistency of UML models also will be introduced to semantics to understand form semantics for UML.
Pre Requisite: SWER142
SWER348 - Advanced Object Oriented Programming - 3 credits
This course introduces advanced programming concepts such as streaming, components, threading concepts, network programming, servlets, applets, beans, reflections, annotation, objects serialization and distributed applications.
Pre Requisite: SWER341
SWER351 - Database Management Systems - 3 credits
This course covers the fundamentals of database management systems and the techniques for database design and administration. The main focus is on relational databases. Topics include: Data Modeling, Entity-relationship modeling, relational data retrieval and manipulation with SQL, normalization of database tables.
Pre Requisite: SWER212
SWER353 - Web Technologies - 3 credits
This course exposes students to the techniques used in programming web pages for interactive content. The course begins by reviewing basic web technologies (HTML, CSS stylesheets) and exploring the use of event-driven programming in Javascript and AJAX to add interactive elements to web pages. Later, the course will show students how to write their own server-side code to provide dynamic interaction and access to a custom database.
Pre Requisite: SWER141
SWER366 - Computer Graphics & Multimedia - 3 credits
This course concerns the use of multimedia techniques for the integration of video and audio content with web pages and other media. The course covers the tools used to generate video files, editing and formatting for publishing, image processing, and techniques such as capturing, filtering, enhancing, and handling of large images, digitization, and archiving. The course also covers website programming with HTML and script coding.
Pre Requisite: SWER141
SWER377 - Business Process Management - 3 credits
This course introduces ways in which business processes can be analyzed, redesigned, and improved. It will be concerned with the concepts, methods, and techniques that support the design, administration, configuration, enactment, and analysis of business processes.
Pre Requisite: SWER212
SWER380 - Advanced Topics in Software Engineering - 3 credits
The course covers advanced theoretical and technical issues of software engineering. It will focus on some selected topics, such as software requirements, software design, software construction, software testing and management, software engineering management, software engineering process, software engineering tools and methods, and software quality.
SWER381 - Mobile Application Development - 3 credits
In this course, students learn to develop mobile applications. This course gives students the opportunity to apply the programming principles, software architecture and user experience considerations that are specific for mobile applications. The course involves implementing a complete mobile application.
Pre Requisite: SWER142 and SWER212
SWER385 - Intelligent Systems - 3 credits
This course introduces the Artificial Intelligence
Pre Requisite: SWER241
SWER392 - Entrepreneurship - 3 credits
This course is designed to provide students with the necessary business skills successfully operate an entrepreneurial venture and review the challenges and rewards of entrepreneurship. It will cover the characteristics of and types of entrepreneurs, identifying problems and opportunities, creative problem solving, developing a viable business model and entrepreneurial ethics.
Pre Requisite: SWER212
SWER394 - Special Topics - 3 credits
This course provides instruction and experience in timely topics related to the design and development of quality-engineered software. Topics are selected and prepared by the teacher, approved by the department, and announced to the students at the time of registration.
SWER400 - Internship - 2 credits
This course is designed to give students the opportunity to use/apply in a real life setting what they have learned during the course of their degree. Moreover, it is intended to develop students’ practical skills and to reflect on their university experience. This course is organized to be offered in the Summer semester. There are no class lectures but rather scheduled weekly meeting with the instructor. There will be no test or exams. A detailed written plan of action will be developed for every student in order to know the type and amount of work that will be expected.
SWER401 - Capstone Project I - 1 credit
In this course, students plan for their capstone project laying the foundation to implement the project in the next semester. With the approval of the department, the student chooses a topic to work on. An advisor is assigned to every student to guide the student through the project. A student is expected to finish the project proposal and software design document, which contains software components, interfaces, and data necessary for the implementation phase.
SWER402 - Capstone Project II - 3 credits
In this course, students implement their project. Students also test their software to validate that it meets the requirements set in the proposal.
Pre Requisite: SWER401
SWER411 - Software Product Management - 3 credits
In this course, students master agile software management practices in order to lead a team of developers and interact with clients. The course covers the foundations of core Agile practices, such as Extreme Programming and Scrum. The course delves into practical techniques to elicit and express software requirements from client interactions. In addition to the techniques required to break down and map requirements into plans that will ultimately drive software production. Techniques for monitoring software projects, project progress and software quality will also be covered. Continuous Delivery (version control; continuous integration; automated build and release), Refactoring (preserving internal code quality; technical debt; automated refactoring techniques and patterns), Specification by Example (e.g. FIT), Release and Deployment (strategies for frequent and reliable release; case studies), Lean Product Development (the Lean Startup movement; continuous deployment); Estimation techniques
Pre Requisite: SWER212
SWER412 - Information Security & Risk Management - 3 credits
This course introduces security fundamentals: what information security is and what drives the requirements for information security, how to integrate it into the systems design process, and lifecycle security management of information systems. Students will also learn to perform risk management in order to identify, control, and minimize the impact of threats on information systems. To protect information assets, students will learn about information security controls. Software Security will be emphasized so that students understand how to build security into the software development life cycle for example while planning secure software design and writing secure code.
Pre Requisite: SWER253
SWER415 - Software Engineering for the Cloud - 3 credits
This course introduces students to cloud computing definition and services including Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as a Service (SaaS) delivery models. The student will also learn Software as a Service (SaaS) standard requirements (Security, Privacy, Data Governance, Availability, Performance, Interoperability, Compliance). The student will then proceed to technical implementation to learn how to deploy an application in the cloud and understand the advantages of cloud computing such as load balancing.
Pre Requisite: SWER212
SWER428 - Knowledge Representation & Semantic Web - 3 credits
The goal of the course is to provide an introduction to knowledge representation and reasoning, and to focus on the current semantic technologies. Then, the course will introduce the standard semantic Web based on the above knowledge representation formalism, in particular the RDF language, the OWL language, and the RIF language. Students will learn the basic concepts on ontologies and how to build simple ontologies for applications in different domain. Students will also be introduced to description logic and how to perform subsumption and classify statements in description logics
Pre Requisite: SWER385
SWER432 - Data Mining & Big Data - 3 credits
This course instructs students how to access and combine information from diverse sources of very large data sets and use this information to create models that are useful gaining new insight into data patterns and for making predictions.
Pre Requisite: SWER241
Online Catalogs
Undergraduate Catalog 2019
Undergraduate Catalog 2017
Undergraduate Catalog 2016
Undergraduate Catalog 2015
Undergraduate Catalog 2014
Catalog 2019/2020
History of Bethlehem University
General Objectives
Characteristics of the Graduates
Academic Programs
Admissions
Enrollment
Application Procedures for Freshmen
Criteria
Procedures for Transfer Students
Procedures for Second Bachelor’s Degree
Policy Regarding Second Major
Academic Regulations
Student Classification
Identification
Degree Requirements
University Requirements
Registration
Student Obligations
Grades
Change of Major
Change of Minor
Repeating Courses
Acceptance to Major
Completion of a Minor
Withdrawal
Probation
Graduation
Dismissal
Readmission
Independent Study
Miscellaneous
Student Rights
-Faculty of Arts
-Shucri Ibrahim Dabdoub Faculty of Business Administration
-Faculty of Education
-Tarek Juffali Faculty of Nursing & Health Sciences
-Faculty of Science
-Institute of Hotel Management and Tourism
Follow us