Faculty of Science

Department of Software Engineering

 

 

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

 

 

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