Columbus State University Print Logo

TSYS School of Computer Science

TSYS School of Computer Science

Course Descriptions

CPSC 1105. Introduction to Information Technology (3-0-3) This course provides an introduction to computer and information technologies. It discusses the nature of information, computer hardware, software, communications technology, and computer-based information systems. The theory is complemented by practical work aimed at gaining basic proficiency with different types of widely used application software. (Course fee required.)

CPSC 1301. Computer Science 1 (3-0-3) Co-requisite: CPSC 1301L. This course includes an overview of computers and programming; problem solving and algorithm development; simple data types; arithmetic and logic operators; selection structures; repetition structures; text files; arrays (one-and-two-dimensional); procedural abstraction and software design; modular programming (including sub-programs or the equivalent).

CPSC 1301L. Computer Science 1 Lab (0-3-1) Corequisite: CPSC 1301. This course provides a hands-on experience for the students in the area of programming as a realization of the concepts presented in Computer Science 1. The students will complete programming projects using one or more program development environments. The lab projects will apply and reinforce the topics covered in Computer Science 1.

CPSC 1302. Computer Science 2 (3-0-3) Prerequisites: CPSC 1301 and CPSC 1301L with grades of "C" or better. A continuation of CPSC 1301. This course emphasizes programming using object-oriented methods. The fundamentals used in designing, developing and using classes, encapsulation, inheritance mechanisms, polymorphism and dynamic binding.

CPSC 2105. Computer Organization (3-0-3) Prerequisites: CPSC 1301 and CPSC 1301L with grades of "C" or better. Overview of basic computer organization. Representation of data in computers. Introduction of Boolean Algebra and logic gates used to implement Boolean functions. Introduction to flip-flops and sequential logic. Methods to reduce the complexity of Boolean functions-algebraic and K-Maps. Overview of computer arithmetic. Instruction set architecture of a sample computer. Interaction of the machine and computer languages including discussion of the compilation, assembly, and loading process.

CPSC 2106. Information Security (3-0-3) Prerequisite: CPSC 1301 and CPSC 1301L or permission of instructor. This course introduces the main hardware and software components of a modern computer system, investigates the vulnerabilities and threats associated with each component, and suggests prudent measures to defend against these threats.

CPSC 2108. Data Structures (3-0-3) Prerequisite: CPSC 1302 with a grade of "C" or better. This course extends the concepts of primitive data types by teaching the student a set of data structures that pervades both the theoretical and practical domains of computer science.

CPSC 2125. Internet Programming (3-0-3) Prerequisites: CPSC 1301 and CPSC 1301L with grades of "C" or better. This course is an introduction to Internet programming and Web application development. Subjects covered include basic Web page development and an introduction to dynamic Web page development using client-side scripting, server-side scripting, and database connectivity.

CPSC 2555. Selected Topics in Computer Science (1-0-1) Prerequisite; CPSC 1302 with a grade of "C" or better. Study of topics of special interest, independent study, or directed experience in the field of computing. Course may be taken three times. A maximum of three credit hours may be applied to the degree program.

CPSC 3105. Digital Multimedia Development (3-0-3) Prerequisite: CPSC 2125 with a grade of "C" or better. This course teaches the student digital design principles and techniques. Students will learn how to create digital multimedia that can be used in software applications and Web sites. As part of this, students will develop an understanding of digital image theories, develop an understanding of how to create digital multimedia, analyze the needs associated with creating this multimedia, become familiar with the digital multimedia development process and available tools, and then implement this process while applying their knowledge to create a working, digital multimedia application or Web site.

CPSC 3106. Information Security Risk Assessment (3-0-3) Prerequisite: CPSC 2106 with a grade of "C" or better. This course introduces risk analysis techniques that can be used to identify and quantify both accidental and malicious threats to computer systems within an organization. Introduction to issues associated with physical site security. This includes an introduction to standard risk analysis tools.

CPSC 3108. Defensive Programming (3-0-3) Prerequisite: CPSC 2106 and CPSC 2108 with a grade of "C" or better. This course provides a study of basic security practices in hardening a system and programming through hands-on activities. The course emphasizes secure design principles and applying additional controls and measures to prevent development of vulnerable systems and code.

CPSC 3111. Structured Programming with COBOL 1 (3-0-3) Prerequisites: CPSC 1301 and CPSC 1301L with a grade of "C" or better. Introduction to programming in COBOL. Emphasis on structured design techniques. Computer assignments required.

CPSC 3112. Structured Programming with COBOL 2 (3-0-3) Prerequisite: CPSC 3111 with a grade of "C" or better. A continuation of CPSC 3111. This course will include a presentation of the IBM data access methods, methods to access and maintain VSAM files, and an introduction to Object Oriented COBOL.

CPSC 3116. Mainframe Basics and JCL (3-0-3) Prerequisites: CPSC 1301/1301L with a grade of C or better. This course presents an overview of IBM mainframe operating systems currently in use in the area. It includes common terminology, the most used JCL features, and an introduction to the scripting language REXX and its variants.

CPSC 3118. Graphical User Interface Development (3-0-3) Prerequisite: CPSC 1302 with a grade of C or better. The primary purpose of this course is to provide experience and skills in designing and programming event-driven Windows applications using a visual development environment and tools. This course highlights the use of Visual Basic.NET to create graphical user interfaces. Extensive lab work and programming required.

CPSC 3119. Fundamentals of Computer Forensics (3-0-3) Prerequisite: CPSC 1105 or CSPC 1301, and CPSC 1301L. An introduction to various Computer Forensics tools and analysis methodologies in a variety of standalone and networked computer environments with Windows Operating System.

CPSC 3121. Assembly Language Programming 1 (3-0-3) Prerequisite: CPSC 2105 with a grade of "C" or better. An introduction to assembly language for mainframes or PC's. Topics include machine architecture (registers, memory, instruction formats), character data processing, decimal arithmetic, binary arithmetic, subroutine and program linkage.

CPSC 3122. Assembly Language Programming 2 (3-0-3) Prerequisite: CPSC 3121 with a grade of "C" or better. As a continuation of CPSC 3121, the topics include CSECTs, multiple-CSECT programming, DSECTs, Multi-DSECT programs, and VSAM processing. This course also covers HLASM, the new IBM High Level Assembler, the HLASM toolkit, and cross-language support with uses of DLLs.

CPSC 3125. Operating Systems (3-0-3) Prerequisites: CPSC 2105 and CPSC 2108, both with grades of "C" or better. An introduction to basic operating system level software concepts. Course topics include processes, threads, symmetric multi-processing, thread synchronization and memory management techniques.

CPSC 3131. Database Systems 1 (3-0-3) Prerequisite: CPSC 1302 with a grade of "C" or better. The course covers the fundamentals of database systems. Topics to be covered include the following: file systems and database concepts, database models, relational database model, introduction to SQL, database design and implementation, database integrity, and normalization of database tables. Implementation techniques using commercial DBMS will be considered. The course includes lab work and individual database application programming projects.

CPSC 3132. Database Systems 2 (3-0-3) Prerequisite: CPSC 3131 with a grade of "C" or better. A continuation of CPSC 3131 Database Systems 1. Focus will be on the larger database systems, such as DB2 and IMS, used on enterprise computers. Use of COBOL programs to manage and access such databases. Database architecture and administration.

CPSC 3156. Transaction Processing (3-0-3) Prerequisite: CPSC 3111 with a grade of "C" or better. An introduction to interactive processing in a transaction-based computer system. Topics include multitasking, multi threading, maps, pseudo conversational programming and large system design. Standard tools, such as CICS and REXX for CICS will be discussed. The course will include an introduction to SOA (Service Oriented Architecture).

CPSC 3165. Professionalism in Computing (3-0-3) Prerequisite: Junior or Senior Standing. The social impact, implications and effects of computers on society, and the responsibilities of computer professionals in directing the emerging technology. Includes the examinations of reliable, risk-free technologies, and systems which provide user friendly processes. Specific topics include an overview of the history of computing, computer applications and their impact, the computing profession, and the legal and ethical responsibilities of professionals.

CPSC 3175. Object-Oriented Design (3-0-3) Prerequisite: CPSC 2108 with a grade of "C" or better. An introduction to designing windows applications using object-oriented and component technologies. The emphasis of this course is in event-driven programming using controls and components to develop desktop windows applications. The primary focus of the course is on the full usage of the Object-Oriented Paradigm for problem-solving and software development using an object-oriented programming language and the Standard Object Modeling Language (UML).

CPSC 3415. Information Technology (IT) Practicum (0-5-1) The course is intended for Information Technology(IT) majors to provide an opportunity to develop IT skills through hands-on practical experiences in UITS (University Information Technology Services). The student will work in a designated IT unit for a total of 75 hours. The course can be repeated up to two times for credit, but should be in different IT units.

CPSC 3555. Selected Topics in Computer Science (1-0-1) Prerequisite: CPSC 2108 with a grade of "C" or better. Study of topics of special interest, independent study, or directed experience in the field of computing. Course may be taken three times. A maximum of three credit hours may be applied to the degree program.

CPSC 4000. Baccalaureate Survey (0-0-0) Satisfactory grade in this course indicates completion of the Field Test. Survey can be taken more than once. (S/U grading.)

CPSC 4111. Game Programming I (3-0-3) Prerequisites: CPSC 3118 and CPSC 3175 with grades of "C" or better. This course introduces the student to Game Programming using 2D principles. The student will be exposed to many aspects of the process of game programming. The course will concentrate on aspects of 2D game programming taking a tour of all aspects of the creation of games including game production; language and architecture; mathematics, collision detection and physics; graphics, textures, artificial intelligence, audio and networking. The student will create a 2D game with a game engine.

CPSC 4112. Game Programming II (3-0-3) Prerequisite: CPSC 4111 with a grade of "C" or better; Co-requisite: CPSC 4113. This course continues the introduction to Game Programming using 3D principles. The student will continue to delve deeper in the concepts introduced in the first Game Programming course. The student will be exposed to more advanced topics in game programming such as Multiplayer games and Massively Multiplayer Online Games (MMOGs). The student will create a 3D game with a game engine .

CPSC 4113. Game Jam (0-3-1) Prerequisite: CPSC 4111 with a grade of "C" or better. This course is intended for students about to start CPSC 4112 to work in teams to create a video game. It is carried out in a period of 48 hours. The objective is to create a game prototype from a theme given at the start of class.

CPSC 4121. Robotics Programming I (3-0-3) Prerequisites: CPSC 1302 with a grade of "C" or better. In this course the basic principles of Robotics programming will be introduced. Various types of robots will be programmed to accomplish a series of tasks. Topics include: Design and construction of robotic bases, Design and construction of attachments for specific tasks, Microcontroller architecture and programming, and Programming of robots to carry out assigned tasks.

CPSC 4122. Robotics Programming II (3-0-3) Prerequisites: CPSC 4121 with a grade of "C" or better. More advanced principles of Robotics programming will be utilized. A variety of robots will be programmed to accomplish a series of tasks. Topics include: Design and construction of attachments for advanced tasks, Servo architecture and programming, Remote control of robot from Windows, Mac or Smart Phone platforms, Programming of robot to carry out assigned tasks.

CPSC 4125. Server-Side Web Development (3-0-3) Prerequisites: CPSC 2125 and CPSC 3131 with grades of "C" or better. This course is a continuation of CPSC 2125. Topics include: server-side scripting languages, interfacing web applications with databases, advanced topics in hypertext markup languages and client-side scripting. Modern software tools for the server-side web application development will be introduced. Students will develop a functional web site that makes use of database connectivity.

CPSC 4130. Mobile Computing (3-0-3) Prerequisites: CPSC 2108 and CPSC 3175 with a grade of "C" or better. This course introduces students to mobile computing and mobile application development. The course presents an overview of various mobile computing applications, technologies and wireless communication. Additional topics include mobile application frameworks and development environments; mobile security; and mobile user interface, user experience and application development guidelines. Students will be expected to learn at least one mobile application development framework and use it to implement course assignments.

CPSC 4160. Applied Cryptography (3-0-3) Prerequisites: CPSC 2106, CPSC 2108, and MATH 2125 with a grade of "C" or better or permission of the instructor. This course features a rigorous introduction to modern cryptography, with an emphasis on the fundamental cryptographic primitives of symmetric and public-key encryption, basic cryptanalysis, hash functions, and digital signatures.

CPSC 4166. Intrusion Detection and Prevention (3-0-3) Prerequisites: CPSC 5127 with a grade of "C" or better. The capstone course delivers the tenets of intrusion detection and prevention, specifically focus on stepping-stone intrusion detection and prevention. Intrusion detection focuses on the methods to detect attempts (attacks or intrusions) to compromise the confidentiality, integrity or availability of an information system. Intrusion prevention focuses on the techniques to block such intrusions. It includes host-based intrusion detection, network-based intrusion detection, network traffic sniffing tools, stepping-stone intrusion detection, packet round-trip time, detection performance management, hackers’ evasion techniques, and attacks via The Onion Router (TOR).

CPSC 4175. Software Engineering (3-0-3) Prerequisites: CPSC 3175 with a grade of "C" or better. In this course, students are introduced to the basic principles of software engineering. The course focuses on the issues, methods and tools applied at every phase of the iterative development life cycle spanning from the conception of the actual requirements, through the analysis, design, development, testing, deployment and maintenance of the software product. Other subjects include project management and quality assurance. Students must complete a significant software project.

CPSC 4176. Senior Software Engineering Project (3-0-3) Prerequisite: CPSC 4175 with a "C" or better. The course encompasses a practical application of knowledge and skills mastered in the Computer Science curriculum through the development of a significant project. Students will apply a software engineering methodology in a team environment to develop a complex real-world application with an external customer under the guidance of instructor. Team members are involved in all phases of the software development life cycle.

CPSC 4205. Senior Project & Portfolio (0-0-3) Prerequisite: Senior standing. A capstone course for BSIT majors that includes completion of a digital portfolio, an electronic resume representing skills acquired and projects completed. The skills to create the portfolio will be introduced in an earlier course and students will be expected to add selected assignments to the portfolio during their last few semesters. Faculty will include Portfolio comments and students will be expected to record reflections on accomplishments. Finally, in cooperation with the IT industry, students will be expected to secure an internship or equivalent work arranged with a faculty member, and document internship hours, objectives and supervisor evaluations in the Portfolio, and to present a summary of their experiences in the course to interested faculty and fellow students at the completion of the course.

CPSC 4505. Undergraduate Research (0-0-1) Prerequisite: CPC 2108 with a grade of "C" or better and consent of the head of the School of Computer Science. Students work in conjunction with a faculty member to select a research topic, complete a written research proposal and execute a research plan. Students will prepare both written and oral presentations of their work and present their work at one or more local, regional or professional meetings, or submit their work for publication. (Course fee required.)

CPSC 4698. Internship (0-0-1) Prerequisite: Junior Standing. Work experience on an approved project supervised by a faculty member. May be repeated for a maximum of three credit hours. (S/U grading.) (Course fee required.)

CPSC 4899. Independent Study (3-0-3) Prerequisite: Junior Standing. Course project approved and supervised by a faculty member. May be taken only once for credit. (Course fee required.)

CPSC 5115. Algorithm Analysis and Design (3-0-3) Prerequisites: CPSC 2108 and MATH 5125, both with grades of "C" or better. This course emphasizes the understanding of data structures and algorithms from an analytical perspective rather than from an implementation standpoint. The concepts developed allow discussion of the efficiency of an algorithm and the comparison of two or more algorithms with respect to space and run-time requirements. Analytical methods are used to describe theoretical bounds as well as practical ones. In general, this course addresses the constraints that affect problem solvability.

CPSC 5125. Computer Graphics (3-0-3) Prerequisites: CPSC 2108 and CPSC 3175 with a grade of "C" or better. Introduction to the input, construction, storage, retrieval, manipulation, alternations, and analysis of computer graphics objects. Graphics computer hardware, graphics primitives, two-dimensional and three-dimensional viewing and transformations, basic modeling.

CPSC 5127. Computer and Network Security (3-0-3) Prerequisite: CPSC 2106 and MISM 3145 with a grade of "C" or better. This course is a basic introduction to the issues of software security with a focus on raising the students' awareness of the difficulties of maintaining a secure software environment. It reviews traditional security techniques and discusses the vulnerabilities of such methods. The course emphasizes well-written software as a prerequisite to network security and highlights security implications of common programming mistakes.

CPSC 5128. Theory of Computation (3-0-3) Prerequisites: CPSC 5115 and MATH 5125, both with grades of "C" or better. This course provides an introduction to the theoretical foundations of computer science and formal models of computation. Topics will include basic set theory, a review of graph theory, formal languages, finite automata, computability, and undecidability. Computational complexity will be introduced and intuitively described.

CPSC 5135. Programming Languages (3-0-3) Prerequisite: CPSC 2108 and CPSC 3175 with a grade of "C" or better. Emphasizes the run-time behavior of programs. Languages are studied from two points of view: (1) the fundamental elements of languages and their inclusion in commercially available systems; and, (2) the difference between implementations of common elements in languages.

CPSC 5138. Advanced Database Systems (3-0-3) Prerequisite: CPSC 3131 with a grade of "C" or better. This course is intended for computer science students and professionals who have already acquired a basic background on databases. The objective of the course is to introduce the students to the most advanced concepts and recent issues in several areas of database technology, including the following: advanced database design and implementation, transaction management and concurrency control, distributed database management systems, object-oriented databases, client/server systems. The course includes lab work and individual database application projects.

CPSC 5155. Computer Architecture (3-0-3) Prerequisite: CPSC 3121 with a grade of "C" or better. This course introduces the fundamentals of computer architecture. It covers a wide range of computer hardware, system software and data concepts from a security perspective. The course starts with combinational and sequential logic and circuit simulations, and is then followed with FPGA, RFID, NFC, TPM and PUF technologies. The course also covers Instruction set architecture, RISC processors, pipelining, virtualization, networks, and cryptographic hardware. It is essential for computer science and security professionals to understand both hardware and software security solutions to survive in the workplace.

CPSC 5157. Computer Networks (3-0-3) Prerequisite: CPSC 2108 with a minimum grade of C. Local area networks, wide area networks, and internets. Protocols and the ISO Open Systems Interconnect reference model. Design, analysis, and performance evaluation. Emphasis on data link, network, and transport protocols.

CPSC 5165. Web Development Projects (3-0-3) Prerequisite: CPSC 4125 with a grade of "C" or better. This course is a continuation of CPSC 4125, Introduction to Server-Side Web Development. This is a project-based class. Teams consisting of 3-4 students will develop working prototypes of large-scale web applications. Teams and their individual members will be required to make presentations reflecting progress through each stage of the project development: task formulation, analysis, prototyping and design, coding, debugging and testing. The final report will include a demonstration of the fully functional project.

CPSC 5185. Artificial Intelligence and Machine Learning (3-0-3) Prerequisite: CPSC 2108 with a grade of "C" or better. This course provides an introduction to the field of artificial intelligence with an emphasis on intelligent system methodologies for real-life problem solving. Topics are selected from the following: rule-based systems, search techniques, supervised and unsupervised machine learning, fuzzy systems, genetic algorithms, intelligent agents, game AI, natural language processing and computer vision.

CPSC 5555. Selected Topics in Computer Science (3-0-3) Prerequisite: Senior standing. Study of topics of special interest in computer science, or directed experience in computer science by means of lecture, discussion, seminar, and research. May be taken for a maximum of nine hours.

CPSC 6000. Graduate Exit Examination (0-0-0) This is a zero credit hour course that should be taken in the last semester prior to graduation. It is designed to prepare computer science students for graduation. (S/U grading).

CPSC 6103. Computer Science Principles for Teachers (3-0-3) This course introduces the AP Computer Science Principles (AP CSP) framework as well as tools and methods to teach such curriculum. Students will be exposed to the seven Computational Thinking Practices, the 6 big ideas as delineated by the framework, assessment methodology and tools to teach this curriculum. Topics include Computational Thinking practices, Creativity, Abstraction, Data and Information, Algorithms, Programming (using block-based programming languages), the Internet, and Global Impact.

CPSC 6104. Networks, Web, and Internet Security (3-0-3) Prerequisite: CPSC 6103 with a grade of "C" or better. This course introduces the fundamental problems in computer networking, the web and its applications, and the security issues that arise primarily from the Internet. Topics include network definition, types and uses; network models: TCP/IP; Ethernet LANs; wireless and mobile networks; multimedia networks; HTTP and the World Wide Web; web development; service authentication; IP address spoofing; HTTP session hijacking attack; and web application security.

CPSC 6105. Fundamental Principles of Computer Science. (3-0-3) Overview of basic concepts in computer science ranging from computer hardware components, interconnection network structures and communication protocols, analysis of computer algorithms to software systems and applications. May not be applied to a degree program. Need a B or better to show proficiency.

CPSC 6106. Fundamentals of Computer Programming and Data Structures. (3-0-3) Computer programming, declaration of variables, definition of abstract data types, data manipulation, conditional statements, loops, functions and routines, standard input/output control, file manipulation, object-oriented programming, and data structures. May not be applied to a degree program. Need a "B" or better to show proficiency.

CPSC 6107. Survey of Modeling and Simulation. (3-0-3) Prerequisite: Courses in Calculus and Statistics. This course introduces the discipline of Modeling and Simulation by surveying its paradigms and methodologies as well as important and related disciplines. The Monte Carlo, continuous, and discrete event simulations are introduced as a foundation. Topics such as humans in simulations, verification and validation, distributed simulations, and interoperability are among the methodologies. Probability and Statistics, Modeling and Visualization are also introduced with particular attention to their importance as related to Modeling and Simulation.

CPSC 6109. Advanced Algorithms (3-0-3) The need for efficient algorithms arises in nearly every area of computer science. This course covers the modern theory of algorithms, focusing on the themes of efficient algorithms and intractable problems. The course introduces many of the techniques that apply broadly in the design of efficient algorithms, and study their application in a wide range of application domains and computational models. Topics include Basic Data Structuring Problems, Recursion, Computational Complexity, Graph Algorithms, Greedy Algorithms, Dynamic Data Structures, Hashing, Approximation Algorithms, Linear programming, Parallel Algorithms and Novel Approaches to NP-Complete Problems. The course requires familiarity with Java Programming Language.

CPSC 6118. Human-Computer Interface Development (3-0-3) Examines the software development techniques used in the design of graphical user interfaces. Particular emphasis is placed on available software development tools for such interfaces. The course will focus on issues in HCI (Human Computer Interaction).

CPSC 6119. Object-Oriented Development (3-0-3) This course teaches object-oriented developing techniques and how to create advanced applications using classes, components, and objects. Fundamentals of developing client applications that include database access using server-level components. Topics include creating and managing objects, creating data services, testing, deploying and maintaining a component based solution.

CPSC 6125. Advanced Operating Systems (3-0-3) Issues in the design and functioning of operating systems. Emphasis on synchronization of concurrent activity in both centralized and distributed systems. Deadlock, scheduling, performance analysis, operation system design, and memory systems including distributed file systems.

CPSC 6126. Introduction to Cybersecurity (3-0-3) This course focuses on the protection of information systems against cyber threats whether data is in transit, at rest, or in processing. Topics include an overview of cyber threats, measures necessary to detect, assess, and counter such threats, network security basics, symmetric and public key encryption, basic cryptologic analysis, access control, authentication, malware, vulnerability assessment, digital forensics, security policies, privacy, and ethics. This course builds knowledge, skills and abilities (KSAs) of principles and practices in cybersecurity.

CPSC 6127. Contemporary Issues in Database Management Systems (3-0-3) This course provides an overview of modern database management systems and issues relating to these systems. Topics include developing a logical model, deriving the physical design, creating data services, creating a physical database, and maintaining a database in a variety of environments.

CPSC 6128. Network Security (3-0-3) Prerequisite: CPSC 6126 with a minimum grade of "C". This course examines the fundamentals of security issues arising from computer networks. Topics include intrusion detection, firewalls, threats and vulnerabilities, denial of service attacks, viruses and worms, use and effectiveness of encryption, secure transactions and e-commerce, and network exploits.

CPSC 6129. Advanced Programming Languages (3-0-3) Prerequisite: Working knowledge of data structures and discrete mathematics or permission of instructor. A study of the principles, concepts, and mechanisms of computer programming languages-their syntax, semantics, and pragmatics; the processing and interpretation of computer programs; programming paradigms; and language design. Additional topics will include language design principles and models of language implementation.

CPSC 6136. Human Aspects of Cybersecurity (3-0-3) Prerequisite: CPSC 6126 with a grade of "C" or better. This course examines the ethical and human aspects of cybersecurity, with focus on the human element of cyber incidents. The course surveys topics such as ethics, insider threats, usable privacy and security, laws, human training, policies, standards, cybercrime and the social, psychological and cultural aspects of cybercrime.

CPSC 6138. Mobile Systems and Applications (3-0-3) Prerequisite: CPSC 6119 with a grade of "C" or better. This course explores the post-desktop model of computing that makes use of mobile systems. Topics include wireless communication protocols, mobile data and power management, context awareness, privacy and security, mobile gaming, and the mobile application development process.

CPSC 6142. System Simulation (3-0-3) Prerequisite: CPSC 6107 with a grade of "B" or better. System simulation is a problem solving interdisciplinary methodology for analysis and optimization of real systems or planned systems using computer models. The main course topics include input analysis, system model validation and verification, output analysis, and modeling of variety of systems. Simulation software for developing and analysis of computer simulation models will be introduced. Simulation models of real systems in manufacturing, logistics, communication, transportation, military, and health area will be studied.

CPSC 6143. Simulation Project (3-0-3) Prerequisite: CPSC 6142 with a grade of "C" or better. This is a project-based course. Teams consisting of 3-5 students will develop working prototypes of large-scale simulations of real world or fictional systems. Teams and their individual members will be required to make presentations reflecting progress through each stage of the project development: problem analysis and information collection, data collection, model construction, model verification, model validation, design and implementation of simulation experiments, output analysis, and final recommendations. The final report will include a demonstration of the fully functional project.

CPSC 6147. Computer Graphics and Visualization (3-0-3) The large amount of data that is generated in modern systems offers an opportunity to use computer based visualization for analysis. Simulations can generate these data as well as measurements from sensors in a system. This course presents the principles of computer graphics and computer-based visualization including data representation, scalar, and vector visualization as well as image, volume and information visualization.

CPSC 6148. Simulation and Gaming (3-0-3) Prerequisite: CPSC 6142 with a grade of "C" or better. This course will explore the use of simulation in gaming. The history of gaming will be reviewed and the theory of gaming will be examined together with the various methodologies for building and evaluating gaming models. In addition, students will examine case studies of how simulation has been implemented in various disciplines including economics, political science, psychology and business management, and the military.

CPSC 6155. Advanced Computer Architecture (3-0-3) Prerequisite: Working knowledge of data structures and discrete mathematics or permission of instructor. A comparative study of the architecture and organization of several types of computers currently in production. Issues in the design of the ISA (Instruction Set Architecture) and the control units used to implement them, including cost and performance trade-offs. Study of methods currently in use to improve CPU performance. Some attention will be paid to super-computers, parallel-execution engines, and other high-performance units.

CPSC 6157. Network and Cloud Management (3-0-3) This course is specifically designed to focus on the protocols, skills and tools needed to support the development and delivery of advanced network and cloud services over the Internet. This graduate-level course is also focused on mastering technical details in a number of areas of advanced networking through reading and hands-on activities of important research topics in the field. The topics covered in this course include 1) network and cloud basics; 2) protocols; 3) network and cloud security; 4) mobile computing; 5) software-defined networking; 6) network and cloud management; 7) data center management; 8) big data analytics and cloud.

CPSC 6159. Cybersecurity Investigations and Crisis Management (3-0-3) Prerequisite: CPSC 6126 with a grade of "C" or better. The course focuses on the role of computer forensics and the methods used in the investigation of computer crimes. The course explains the need for proper investigation and illustrates the process of locating, handling, and processing computer evidence. A detailed explanation of how to effectively handle crisis will be covered.

CPSC 6167. Cybersecurity Risk Management (3-0-3) Prerequisite: CPSC 6126 with a grade of "C" or better. This course focuses on the risk analysis component of cybersecurity management. It provides detailed coverage of contemporary frameworks and processes related to managing risk. Also, it involves enumerating organization's resources and prioritizing their protection based on probability of threat and subsequent damage. Reporting security breaches to management, and providing steps to mitigate threats and implement future controls will be an integral part of this course.

CPSC 6175. Web Engineering and Technologies (3-0-3) This course teaches the fundamentals of Web technologies and Web site development. This course covers many open technologies including XML and its related standards.

CPSC 6177. Advanced Software Design (3-0-3) Examines software requirements and design methodologies. Studies defining software requirements: interacting with end-users to determine system requirements and identifying functional, performance, and other requirements. Examines techniques to support requirements including prototyping, modeling, and simulation; the relation of requirements to design; design in the system life cycle; and hardware versus software trade-offs. Discusses subsystem definition and design and covers principles of design, including abstraction, information hiding, modularity, and reuse. Uses examples of design paradigms.

CPSC 6178. Software Testing and Quality Assurance (3-0-3) This course examines the relationship between software testing and quality assurance with an emphasis on the role of testing in the software development life cycle. It covers commonly used software testing strategies and test design techniques. The issues of test management, test support tools, and automated testing are also discussed.

CPSC 6179. Software Project Planning and Management (3-0-3) Centers on the concept of a software engineering process and includes discussion of life-cycle models for software development. Addresses issues associated with the successful management of software development including planning, scheduling, tracking, cost and size, estimating, risk management, configuration, management quality, and engineering and process improvement. Includes the SEI software process Capability Maturity Model (CMM) and other process standards.

CPSC 6180. Software Estimation and Measurement (3-0-3) Study of software measurement and estimation with an introduction to financial measurements. Students will learn to measure and predict the size, complexity, and quality of software development projects by a variety of methods. Commercially available tools are used, as well as engineering rules, benchmarks, and a variety of predictive/estimation methodologies. Topics include but are not limited to: Develop estimates for software development and maintenance projects, how to communicate the estimates to others, and how to best represent the estimates in a formal contract, cognitive biases and administrative behaviors that affect the estimation process, use of parametric models and counting methods, Delphi, paired comparisons, functional sizing methods, quantifying and incorporating uncertainty, cost behaviors, cost objects, fixed, variable, mixed and step costs, calculating total budget, how measurement is used, applying software measurement, s/w measurement definition, process definition techniques, measuring quality, measurement and CMM, performance management measurement, statistical process control etc.

CPSC 6185. Intelligent Systems (3-0-3) This course introduces students to the field of Artificial Intelligence (AI) with emphasis on its use to solve real world problems for which solutions are difficult to express using the traditional algorithmic approach. It explores the essential theory behind methodologies for developing systems that demonstrate intelligent behavior including dealing with uncertainty, learning from experience and following problem solving strategies found in nature.

CPSC 6190. Applied Cryptography (3-0-3) Prerequisite: CPSC 6106. This course features a rigorous introduction to modern cryptography, with an emphasis on the fundamental cryptographic primitives of symmetric and public-key encryption, basic cryptanalysis, hash functions, and digital signatures. This course requires familiarity with discrete mathematics and algorithm analysis.

CPSC 6555. Selected Topics in Computer Science (3-0-3) Study of topics of special interest in the field of computing. May be repeated for credit.

CPSC 6698. Graduate Internship in Computer Science (3-0-3) Prerequisites: Unconditional admission to the Computer Science graduate program, full-time student with an overall GPA of 3.0. This course provides an opportunity to graduate students to apply knowledge gained in academic courses to the real world. Internships serve the dual purposes of developing hands-on technical skills and interpersonal skills for the student. In addition to being remunerated by the place at which the internship is conducted, the student also obtains course credit. Work undertaken during an internship must be relevant to the student's course of study. May be repeated once for credit. (Course fee required.)

CPSC 6899. Independent Study (3-0-3) Course project approved and supervised by an appropriate member of the graduate faculty. May be taken twice for credit. (Course fee required.)

CPSC 6985. Research and Thesis (0-0-1) This course is required by all students completing the thesis option of the MS in Applied Computer Science. It involves completion of a research project and defense of the project thesis in adherence to the School of Computer Science MS thesis policy. The project is to be designed in consultation with a thesis advisor who is a member of the graduate faculty of the School of Computer Science. The course must be taken over two or more semesters for a total of four credit hours. The exact number of credit hours taken each semester is to be decided in consultation with the thesis advisor. (S/U grading)

CPSC 6986. Thesis Defense (0-0-0) Department approval required. A satisfactory grade in the course indicates a successful oral defense of the thesis, the completion of edits and approval by the advisor or committee, and submission to the library. Degree candidates must be enrolled during the semester of their defense. S/U grading.

WBIT 1100. Introduction to Information Technology (3-0-3) This course is an introductory course in information technology. Topics include foundations in hardware, software, data and an overview of the use of information technology in organizations. Additional topics include structured programming techniques, systems development, database design and networking, with an emphasis on appropriate business ethics, interpersonal skills and team building.

WBIT 1310. Programming and Problem Solving I (3-0-3) Prerequisite: "C" or better in Area A mathematics course and in WBIT 1100. This course helps students to develop basic problem-solving skills using the Java programming language. Students are introduced to fundamentals of Java programming language with emphasis on primitive data types, control structures, methods, arrays, classes, objects, abstraction, inheritance and polymorphism. Students learn basic techniques of good programming style, design, coding, debugging, and documentation. Students are able to create programs to solve basic practical problems.

WBIT 2000. The Enterprise and IT (3-0-3) Prerequisite: WBIT 1100 with a grade of C or better. Classes may be taken concurrently. This course will look at the structure and management of an information technology infrastructure. From the management aspect the course will touch on principles and practices of managing both people and technology to support an organization. The course will emphasize how to make an information technology infrastructure effective, efficient, and productive. The management of hardware, software, data, networks and other supporting IT functions will be studied.

WBIT 2300. Discrete Math for IT (3-0-3) Prerequisite: MATH 1113 or MATH 1125 with a grade of C or better. Discrete (as opposed to continuous) mathematics is of direct importance to the fields of Computer Science and Information Technology. This branch of mathematics includes studying areas such as set theory, logic, relations, graph theory, and analysis of algorithms. This course is intended to provide students with an understanding of these areas and their use in the fields of Computer Science and Information Technology.

WBIT 2311. Programming and Problem Solving II (3-0-3) Prerequisites: WBIT 1310 and WBIT 2300 with a grade of "C" or better. The emphasis of this course is on advanced programming techniques in Java including GUI's, software reuse through component libraries, recursion, event-driven programming, database processing, file processing, and exception handling. Students are able to create event-driven, graphical programs or text-based programs solving practical problems incorporating databases and external files.

WBIT 3010. Technical Communication (3-0-3) Prerequisite: ENGL 1102 with a grade of "C" or better. This course covers workplace communication at the intermediate level. Topics include audience analysis, research proposal and report writing, document and visual design, editing and presentation design.

WBIT 3110. Systems Analysis and Design (3-0-3) Prerequisites: WBIT 1310 and WBIT 2000 with a grade of "C" or better. This course introduces the fundamental principles of the design and analysis of IT applications. In this course, students will learn to apply the tools and techniques commonly used by systems analysts to build and document IT applications. Classical and structured tools for describing data flow, data structure, process flow, file design, input and output design, and program specification will be studied, as will object-oriented techniques.

WBIT 3111. Information Technology Project Management (3-0-3) Prerequisites: WBIT 3010, WBIT 3110, and STAT 1127 with a grade of C or better. Project management techniques and tools as applied to information systems projects including resource and personnel management and allocation, product testing, scheduling, and project management software. Students will study examples of both successful and unsuccessful projects and apply lessons learned to a class project.

WBIT 3200. Database Design, Development and Deployment (3-0-3) Prerequisite: WBIT 2311 with a grade of C or better. Classes may be taken concurrently. This is an advanced course in database design, development and deployment. Course emphasizes database design drawing distinctions between data modeling and process modeling using various modeling techniques including Entity-Relationship Modeling, Object Modeling and Data Flow Diagramming; database development using the relational model, normalization, and SQL; database deployment including control mechanisms, forms, reports, menus and web interfaces. Additional topics include procedures, functions, packages and triggers. Students will design, create and process a database to demonstrate competency in the course content.

WBIT 3400. Introduction to Digital Media (3-0-3) Prerequisite: WBIT 1100 with a grade of C or better. This course covers the basic design principles and tools for creating and editing digital media elements. Examples of these elements include graphics, animation, audio, video, virtual space and simulation.

WBIT 3410. Web Applications Development (3-0-3) Prerequisite: WBIT 1310 with a grade of "C" or better. This course provides a survey of techniques and tools for developing basic web pages for delivery of text and graphic information; focus on page markup languages, client-side scripting, page design principles, page layout techniques, markup language syntax, and page styling methods.

WBIT 3500. Architecture and Operating Systems (3-0-3) Prerequisite: WBIT 1310 with a grade of C or better. This course introduces students to the architectures of computer systems and the operating systems that run on them. It explores and gives experience with some common computer designs and operating systems. Topics include basic computer architecture, instruction set architecture, memory, memory management, processes, and file systems.

WBIT 3510. Data Communications and Networking (3-0-3) Prerequisite: WBIT 3500 with a grade of "C" or better. This course covers computer network and communications concepts, principles, components, and practices; coverage of common networking standards, topologies, architectures, and protocols; design and operational issues surrounding network planning, configuration, monitoring, troubleshooting, and management.

WBIT 3600. Introduction to E-Commerce (3-0-3) Prerequisites: WBIT 3110 and WBIT 3410 with a grade of C or better. The emphasis of this course is on basic principles and practices of E-business and E-commerce. Topics include infrastructures and applications of Ecommerce, E-Tailing, E-Marketing, advertisement, B2B, B2C, C2C, E-Government, M-Commerce, E-Learning, electronic payment systems, security, and legal issues. Students also learn to build simple dynamic E-commerce sites using server-side scripting.

WBIT 4020. Professional Practices and Ethics (3-0-3) This course covers historical, social, economic and legal considerations of information technology. It includes studies of professional codes of ethical conduct, philosophy of ethics, risk analysis, liability, responsibility, security, privacy, intellectual property, the internet and various laws that affect an information technology infrastructure. This course is only offered to students with senior standing.

WBIT 4030. Senior Project (3-0-3) A capstone course for WebBSIT majors, students will be expected to complete a final team or individual project. The project may be an approved industry, internship or a project developed and designed by faculty of the WebBSIT. Students will apply skills and knowledge from previous WebBSIT courses in project management, system design and development, digital media development, eCommerce, database design, and system integration.

WBIT 4112. Systems Acquisition, Integration and Implementation (3-0-3) Prerequisites: WBIT 3110, WBIT 3200, and WBIT 4520 with a grade of C or better. Most IT applications used by organizations are configured from components that have been purchased from third-party vendors. This includes both hardware components and, increasingly, software components. In this course, students will study the component acquisition process, and methods and techniques for integrating these components into an existing IT infrastructure.

WBIT 4120. Human-Computer Interaction (3-0-3) Prerequisites: WBIT 2311 and WBIT 3400 with a grade of C or better. The emphasis of this course is on fundamentals of human-machine interfaces, both cognitive and physical. Learning styles and effects of short-term memory on cognition and reaction will affect hardware and software development. Students will design a prototype interface.

WBIT 4520. Information Assurance and Security (3-0-3) Prerequisite: WBIT 3510 with a grade of C or better. Classes may be taken concurrently. This course is an introduction to information assurance and security in computing. Topics include computer, network (distributed) system and cyber security, digital assets protection, data backup and disaster recovery, encryption, cryptography, computer virus, firewalls, terrorism and cyber crimes, legal, ethical and professional issues, risk management, information security design, implementation and maintenance.

WBIT 4601. Customer Relationship Management (3-0-3) Prerequisites: WBIT 3200 and WBIT 3600 with a grade of C or better. The use of IT applications has allowed many organizations to collect large amounts of data on their clients and to use such data to improve the relationships with their customers. In this course, students will study customer relationship management systems, including the reasons for their emergence, the functionalities that they provide and the issues one would have to face to successfully introduce a Customer Relationship Management System into an organization.

WBIT 4602. IT Seminar (3-0-3) Prerequisites: WBIT 3111, WBIT 3200, WBIT 3600, and WBIT 4120 with a grade of C or better. Students will participate in research and discussion on a topic of current interest. A term paper on the topic (or related subtopic) is required. A designated faculty member will select the topic in advance based on his/her expertise and lead the seminar.

WBIT 4610. IT Policy and Law (3-0-3) Prerequisite: WBIT 3600 with a grade of C or better. This course will focus on the legal implications of conducting business in the information technology age. Topics will include current understanding of Internet contracts, copyright, trademark and patent law. Further, this course will examine cutting-edge cases relating to security, e-commerce, and emerging ethical issues and trends.