Course Descriptions and Syllabi

CSIS 101 Computer Skills and Emerging Technologies (3) [T]
This course introduces students to different computing skills, such as: word processing, spreadsheets and Powerpoint presentations. This course also explains different emerging technologies, such as: information systems and social media and their use in organizations. Students will have extensive hands-on training during supervised laboratory sessions.
CSIS 110 Foundations of Information Systems (3) [T]
Information systems are an integral part of all business activities and careers. This course is designed to introduce students to contemporary information systems and demonstrate how these systems are used throughout global organizations. The focus of this course will be on the key components of information systems - people, software, hardware, data, and communication technologies, and how these components can be integrated and managed to create competitive advantage. Through the knowledge of how IS provides a competitive advantage, students will gain an understanding of how information is used in organizations and how IT enables improvement in quality, speed, and agility. This course also provides an introduction to system and development concepts, technology acquisition, and various types of application software that have become prevalent or are emerging in modern organizations and society.
CSIS 120 Computer Programming I (4) [T]
This course introduces computer programing fundamentals and problem solving using Java programming language. Topics covered include but not limited to: data types, variables, operators, expressions and statements, input and output facilities, selection and conditional constructs, iterative control structures, methods, arrays and arraylists.
CSIS 130 Computer Programming II (4) [T]
This course continues with the Java language and builds upon the fundamental material covered in CSIS 120 by focusing on the Object Oriented aspects of the language. Topics include but not limited to: Objects and Classes, inheritance and polymorphism, exception handling, Collections, File I/O, testing and Recursion. Prerequisite: CSIS 120.
CSIS 150 Professional and Ethical Issues in CSIS (3)
This course is designed to introduce students to critical issues in ethics in the context of computing. The focus will be on legal, ethical, privacy, and security issues in computer usage. Students learn how to evaluate real professional cases in the context of ethics and law. Case studies relating to computer ethics will be discussed. Professional code of ethics best practices (ACM and IEEE) will be introduced and evaluated. Prerequisites: CSIS 110 or CSIS 120.
CSIS 210 Data Structures and Algorithms (3)
This course is designed to introduce students to basic data structures. The course discusses appropriate use of built-in data structures and common applications for each of the following data structures; stack, queue, priority queue, trees, graphs and lists. The course includes a compare and contrast analysis of the costs and benefits of dynamic and static data structure implementations. Basic algorithm analysis issues are introduced. Recursion applications are introduced and analyzed. Prerequisite: CSIS 130 and MATH 110. Concurrent: MATH 213.
CSIS 220 Computer Architecture and Assembly Language (3)
An introduction to digital computer hardware architecture and organization. Topics include digital logic, processor design, instruction sets, and system architecture. Programs written in assembly language will be used to gain hands-on experience with the underlying system architecture. Prerequisite: CSIS 130.
CSIS 230 Programming in a Second Language (3)
CSIS students are expected to have a depth in the Java language; CSIS students are also expected to have a breadth view of other languages. This course is one of those courses where students gain a breadth in another language such as Python. Topics include but not limited to: data types, variables, operators, expressions and statements, input and output facilities, selection and conditional constructs, iterative control structures, functions, lists & Dictionaries, File I/O, Objects & Classes. Prerequisite: CSIS 130.
CSIS 250 Database Systems (3)
This course provides the students with an introduction to the core concepts in data and information management. It is centered around the core skills of identifying organizational information requirements, modeling them using conceptual data modeling techniques, converting the conceptual data models into relational data models and verifying its structural characteristics with normalization techniques, and implementing and utilizing a relational database using an industrial-strength database management system. The course will also include coverage of basic database administration tasks and key concepts of data quality and data security. Prerequisite: CSIS 130.
CSIS 255 Web Technologies (3)
This course provides students with basic knowledge and technical aspects and skills needed to build web applications. It covers a range of topics including but not limited to: basic concepts of the internet and internet programming, fundamentals of website design, websites building tools and languages, basics of XHTML, scripting and scripting languages (e.g., Java Script), web Servers and web application servers, client-side programming, server-side programming, database connectivity to the web applications, adding dynamic content to web applications, programming the user interface for the web applications. Students are expected to complete a project in the development and maintenance of web sites. Prerequisite: CSIS 130.
CSIS 260 System Analysis, Design, and Acquisition (3)
This course discusses the processes, methods, techniques and tools used by organizations to determine how they should conduct their business with a particular focus on how computer-based technologies can most effectively contribute to the way business is organized. The course covers a systematic methodology for analyzing a business problem or opportunity, modelling it using a formal technique, determining what role, if any, computer-based technologies can play in addressing the business need, articulating business requirements for the technology solution, specifying alternative approaches to acquiring the technology capabilities needed to address the business requirements, and specifying the requirements for the information systems solution in particular, in-house development, development from third-party providers, or purchased commercial-off-the-shelf (COTS) packages. Prerequisite: CSIS 130.
CSIS 300 E-Commerce (3)
This course focuses on the evolution of electronic commerce where business is conducted between organizations and individuals relying primarily on digital media and transmission. Participants investigate the opportunities and challenges of exchanging goods and services over communications networks as well as the manner in which relationships are being reshaped. New forms of business arrangements are also examined. Course activities are designed to provide both managerial and entrepreneurial assessments of anticipated advances in information technology with respect to business systems and electronic markets. Sophomore standing or permission of instructor. Prerequisite: CSIS 130.

CSIS 302

IT Infrastructure

This course provides an introduction to IT infrastructure issues. It covers topics related to both computer and systems architecture and organization. This course gives students the ability to focus on hardware and systems software technology for designing organizational processes and software solutions that require in-depth understanding of the IT infrastructure capabilities and limitations. The course focuses strongly on core computing systems architecture concepts and structures, operating systems, data centers, security of IT infrastructure, cloud computing and computing as a service. Prerequisite: CSIS 210.
CSIS 310 Introduction to Operating Systems (3)
This course introduces students to the study of supervisory programs. The course will, start with a brief historical perspective of the evolution of operating systems and then cover the major components of the most operating systems such as process management (processed, threads, CPU scheduling, synchronization, and deadlock), memory management (segmentation, paging, swapping), files systems; and operating system support for distributed systems. This course will allow students to have an opportunity to learn a lot of practical information about how programming languages, such as: Java, C and C++, operating system, and architectures interact and how to use each effectively. Students will also gain an experience on how to use Linux as an operating system. Prerequisite: CSIS 210.
CSIS 320 Theory and Implementation of Programming Languages (3)
This course covers fundamentals of computing theory and programming languages which mainly include: deterministic finite automata (DFA), non-deterministic automata (NFA), regular expression (RE), context free grammar (CFG), push-down automata (PDA), Turing machines, evaluation criteria, evolution of languages, language paradigms, formal methods for syntax and semantics (EBNF) and main constructs of languages. This course is majorly theoretical by its nature since it does not cover a specific programming language but rather the underlying concepts of computing theory and programming languages. Prerequisite: CSIS 210.
CSIS 322 Computer Networks and Data Communication (3)
This course introduces the fundamentals of networking infrastructure, different types of networks and network hardware and software. The course focuses on data transmission, switches, routers topology. wiring and physical topology protocol, layering LAN, WAN and internetworking. Prerequisite: CSIS 210 and MATH 213.
CSIS 329 Introduction to Parallel and Distributed Computing (3)
This course covers a foundation of parallel and distributed computing. Topics include: cloud computing, grid computing, cluster computing, supercomputing. Some detailed topics include asynchronous/synchronous, computation concurrency, fault tolerance, interconnection topologies, load balancing, memory consistency model, memory hierarchies, message passing interfaces, multithreaded programming, parallel algorithms & architectures, scalability and performance studies, scheduling, storage systems. Prerequisite: CSIS 210.
CSIS 330 Software Engineering (3)
This course is designed to introduce students to basic concepts of software engineering development cycles. Students learn techniques for collecting requirements, modeling design and best practices for documenting software projects. Students also use professional modeling tools throughout the development of their projects. The course places special emphasis on object-oriented modeling using UML. Students are expected to complete a medium scale software project and work professionally within a group. Prerequisite: CSIS 210.
CSIS 369 Short Course (1-3)
Topic varies by semester. Classes are taught by a guest lecturer or lecturers. Can be repeated for credit with a different topic. Permission of instructor.
CSIS 370 Computer Graphics (3)
This course provides students with the basic concepts, technical and mathematical knowledge and skills required to design and implement computer graphics. Topics to be covered include but not limited to: graphics hardware, software utilities, two and three dimensional transformation and viewing, graphics arts and animations. Students are expected to perform practical assignments to design programs using programming graphics tools and libraries (e.g., Java Applet, Java 2D and 3D API). Prerequisite: CSIS 210 and MATH 201.
CSIS 388 Independent Study (1-4)
Can be repeated for credit with a different topic. Permission of instructor.
CSIS 389 Special Topics in Computer Science (3)
Can be repeated for credit with a different topic. Permission of instructor.
CSIS 390 Special Topics in Information Systems (3)
Can be repeated for credit with a different topic. Permission of instructor.
CSIS 395 Enterprise Systems (3)
This course discusses the key aspects relating to the selection, implementation, adoption, diffusion and management of Enterprise Resource Planning (ERP) Systems (also known as Enterprise Systems (ES). An ERP System is an off-the-shelf package that provides an integrated suite of applications which provide transaction processing and management information systems for the common core of business processes. Enterprise Systems also provide comprehensive administrative systems and help to automate and streamline business processes. ERP systems have been widely implemented worldwide, particularly in larger organizations. It is reported that ERP market exceeded USD$78 billion in 2004 and it has been one of the largest, fastest-growing application software industries in the world. While organizations invest substantial amount of resources in acquiring ERP systems from vendors such as SAP and Oracle, presumably expecting positive impacts to the organization and its functions, some ERP system projects have reported nil or detrimental impacts to the organizations and its functions. Junior standing or permission of instructor.
CSIS 401 Mobile Computing (3)
This course provides an introduction to mobile computing and mobile application development. Students will have a hands-on experience with the technologies, tools, and techniques used to develop mobile software solutions for business or entertainment. Junior standing. Prerequisite: CSIS 130.
CSIS 405 Analysis of Algorithms (3)
This course is designed to introduce students to algorithm analysis and strategies. The course explains different strategies used for solving problems (brute-force, greedy, divide- and-conquer, decrease-and-conquer, transform- and conquer, and dynamic programming). The course introduces comparison of the runtime efficiency of solutions using different strategies. Space and time efficiency are discussed, compared and analyzed for different types of applications. Prerequisite: CSIS 210 and MATH 201.
CSIS 415 Artificial Intelligence (3)
This course provides students with the basic concepts, knowledge and skills required in utilizing Artificial Intelligence techniques in solving practical problems. Topics to be covered include but not limited to: knowledge representation methods like propositional logic and predicate calculus, blind search strategies (breadth-first and depth-first), heuristic search strategies (hill-climbing, best-first and A*), backward and forward reasoning, applications; expert systems, natural language processing, pattern recognition, image processing, and planning. The practical part of the course involves programming exercises and case studies related to the topics covered. Prerequisite: CSIS 210 and MATH 213.
CSIS 417 Intelligent Systems (3)
This course provides students with an understanding of the principles of decision making in organizations, an appreciation of the concepts of intelligent systems (IS) and decision support systems (DSS) across various disciplinary areas, and the acquisition of skills in the identification, verification and construction of DSS/IS. Prerequisite: CSIS 210.
CSIS 425 Advanced Software Engineering (3)
This course is deigned to introduce students to advanced and contemporary software engineering topics. Advanced Object Oriented software engineering topics will be covered including: design patterns, testing, project management, and metrics to measure quality of code. In addition, the course will also introduce the challenges of distributed software development. Students have to develop a small framework, document it and use it to develop at least one application. Prerequisite: CSIS 330.
CSIS 440 Software Project Management (3)
This course discusses the processes, methods, techniques and tools that organizations use to manage their software projects. The course covers a systematic methodology for initiating, planning, executing, controlling, and closing projects. This course assumes that project management in the modern organization is a complex team-based activity, where various types of technologies (including project management software as well as software to support group collaboration) are an inherent part of the project management process. This course also acknowledges that project management involves both the use of resources from within the firm, as well as contracted from outside the organization. Junior standing or permission of instructor. Prerequisite: CSIS 330.
CSIS 470 Practicum in Computing & Information Systems (1-3)
This course is deigned to introduce students to an internship experience. Students are encouraged to find a related placement in the field of IT in a local/international organization. A supervisor from AUK and the placement organization are required to coordinate and validate the internship activities. Students write a report summarizing what the internship job added to his or her knowledge of computer science. Students normally enroll in an internship in their senior year to guarantee having enough background to function properly in a professional environment. This is a pass/fail course. Permission of instructor.
CSIS 475 Compiler Construction (3)
Principles and practices in the design of compilers. Introduction to formal languages. Lexical analysis and syntax analysis. Top-down and bottom-up parsing. Syntax directed translation and syntax trees. Intermediate forms, symbol tables, and code generation. Junior standing or permission of instructor. Prerequisite: CSIS 320.
CSIS 476 Computer Security and Information Assurance (3)
This course provides an introduction to fundamental computer security issues. The course covers theory and practice of computer security and information assurance. Students will have hands-on experience with using security tools. Security threats and countermeasures against them will be discussed. Prerequisite:CSIS 302 or CSIS 310.
CSIS 480 Business Process Management (3)
Business process management (BPM) is concerned with the concepts, methods, and techniques that support the design, administration, configuration, enactment, analysis and automation of business processes. In this course students will be introduced (1) to key concepts and approaches to business process management and improvement, (2) to the way in which information technology can be used to manage, transform, and improve business processes. The main focus of this course is both understanding and designing business processes within an IS environment. Students will learn how to identify, document, model, asses, and improve core business processes within that environment. Prerequisite: CSIS 260 or CSIS 330.
CSIS 490 Computer Science and Information Systems Capstone I (3)
This course integrates core topics of the computer science or information systems body of knowledge, teamwork, and professional practices through the implementation of a large- scale project. Senior standing.
CSIS 491 Computer Science and Information Systems Capstone II (3)
This course integrates core topics of the computer science or information Systems body of knowledge, teamwork, and professional practices through the implementation of a large scale project. The development phases included in the course are design and implementation of a fully functioning project. Senior standing. Prerequisite: CSIS 490.