Bachelor of Science in Software Engineering

Course Description

SWER141: Introduction to Programming (Cr. 3)

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.


SWER 142: Object Oriented Programming (Cr. 3)

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.

Prerequisite: SWER141


SWER 212: Software Construction (Cr. 3)

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.

Prerequisite: SWER141


SWER 241: Data Structures and Algorithms Analysis (Cr. 3)

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.

Prerequisite: SWER 142


SWER 251: Introduction to Computer Systems (Cr. 3)

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 systems.

Prerequisite:  SWER 141


SWER 252: Operating Systems (Cr. 3)

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.

Prerequisite: SWER 251


SWER 253: Computer Networks (Cr. 3)

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; Transmission media, ADSL, Multiplexing error detection and corrections methods, Data link protocols (Stop–and- wait, Sliding windows, and their performances); Medium Access Sublayer: Multiple access protocols, Wireless LANS; Routing algorithms to include routing of wireless network. In addition to this, network security, web technologies and application layer will also be introduced.

Prerequisite: SWER 141


SWER 311: Software Requirements Engineering (Cr. 3)

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.

Prerequisite: SWER 212


SWER 312: Software Testing and Quality Assurance (Cr. 3)

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.

Prerequisite: SWER 342


SWER 313: Service Oriented Architecture (Cr. 3)

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).

Prerequisite: SWER 212


SWER 341: User Experience and Interaction Design (Cr. 3)

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.

Prerequisite: SWER 142


SWER 342: Software Architecture and Design (Cr. 3)

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.

Prerequisite: SWER 142


SWER 348: Advanced Object Oriented Programming(Cr. 3)

This course introduces advanced programming concepts such as streaming, components, threading concepts, network programming, servlets, applets, beans, reflections, annotation, objects serialization and distributed applications.

Prerequisite: SWER 341


SWER 351: Database Management Systems(Cr. 3)

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.

Prerequisite: SWER 212


SWER 353: Web Technologies (Cr. 3)

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.

Prerequisite: SWER 141


SWER 366: Computer Graphics and Multimedia (Cr. 3)

This course concerns the use of multimedia techniques for the integration of video and audio content with web pages and another 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.

Prerequisite: SWER 141


SWER 377: Business Process Management (Cr. 3)

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.

Prerequisite: SWER 212


SWER 380: Advanced Topics in Software Engineering (Cr. 3)

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.

Prerequisite:  4th year standing


SWER 381: Mobile Application Development (Cr. 3)

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.

Prerequisite: SWER 142, SWER 212


SWER 385: Intelligent Systems (Cr. 3)

This course introduces the Artificial Intelligence       as a tool to solving problems by combining symbolic reasoning (usually logic based), and optimized algorithms to provide solutions for complex and computationally difficult problems. The course provides an overview of artificial intelligence, knowledge representation, search, game-playing, logic rule-based systems, AI programming languages, learning, neural networks, evolutionary algorithms, natural language processing, planning and robotics.

Prerequisite: SWER 241


SWER 392: Entrepreneurship (Cr. 3)

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.

Prerequisite: SWER 212


SWER 400: Internship (Cr. 2)

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.

Prerequisite:  3rd year standing


SWER 401: Capstone Project I (Cr. 1)

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.

Prerequisite:  4th year standing


SWER 402: Capstone Project II (Cr. 3)

In this course, students implement their project. Students also test their software to validate that it meets the requirements set in the proposal.

Prerequisite: SWER 401


SWER 411: Software Product Management (Cr. 3)

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.

Prerequisite: SWER 212


SWER 412: Information Security and Risk Management (Cr. 3)

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.

Prerequisite: SWER 253


SWER 415: Software Engineering for the Cloud (Cr. 3)

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.

Prerequisite: SWER 212


SWER 428: Knowledge Representation and Semantic Web Technologies (Cr. 3)

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.

Prerequisite: SWER 385


SWER 432: Data Mining and Big Data (Cr. 3)

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.

Prerequisite: SWER 241 


PHIL 350: Computer Ethics (Cr. 3)  

This course is intended to give students a chance to reflect on the humanitarian, social, and professional impact of computer technology by focusing on ethical issues faced by computing professionals, including those related to networking and the internet, intellectual property, privacy, security, reliability, and liability. The course also focuses on issues raised by the possible emergence in the future of highly intelligent machines.


SCIE 140: Biology and Chemistry Fundamentals for Software Engineers (Cr. 3)

This is a three-credit tailored course for the students enrolled in software engineering program in their first year of study. The course aims at giving students some fundamentals of chemistry and biology sciences that might be useful in this specialization. In the first part, chemistry topics will be covered including: Atoms, molecules, moles, periodic table, properties of elements, electronic structure, and chemical bonding. In the second part biology topics will be covered including:  View of life, atoms and molecules, the chemical basics of life, the chemistry of life, organization of the cell, biological membranes, chromosomes, mitosis, meiosis and DNA: the carrier of genetic information.

Online Catalogs



Bethlehem University Foundation
Email: dc@bethlehem.edu
Phone: +1-202-526-6097
Fax: +1-202-526-6096
Washington, DC USA
Bethlehem University in the Holy Land
E-mail: info@bethlehem.edu
Phone: +972-2-274-1241
Fax: +972-2-274-4440
Bethlehem, Palestine

Follow us

Subscribe to our eNewsletter   Follow us on Facebook   Follow us on Twitter   View our YouTube channel   View our Flickr Photostream