Computer Science (CSCI)

CSCI 1003. Introduction To Technology. (2 Credits)

An introduction to trends in technology including computers and peripheral devices, functional units, operating systems, computer language, computer applications, hardware, software, mouse, LCD panels, CD-ROMS, scanners and categories of printers. (Optional course).

CSCI 1101. Introduction To Computers. (3 Credits)

This course covers the general computer concepts. This includes computer hardware and software, peripheral devices, the internet and electronic mail. Application software packages such as word- processing, spreadsheet, web page and development will be included. Prerequisite: none .

CSCI 1150. Computer Programming in Visual Basic. (3 Credits)

This is a course which presents the fundamentals of programming with Visual Basic. Topics covered will include problem solving, program development, data types, subroutines, control structures for selection and loops, file processing, arrays, functions, strings and graphics. Prerequisite: MATH 1001, MATH 1111 or consent of Division Dean. Offered: All semesters.

CSCI 1201. Introduction to Computer Science. (3 Credits)

The course covers an introduction to the field of Computer Science. Topics to be covered include data representation, hardware, software, problem solving and algorithm design, an overview of operating systems, and web page design.

CSCI 1300. Introduction to Computer Science. (3 Credits)

This class provides a foundation in major computing topics such as (but not limited to) computer architecture and operating systems, networks including the Internet, numbering systems, data representation, file structures and software engineering. An introduction to systems analysis, design and implementation is included via hands-on programming projects. Prerequisite: MATH 1001 or higher, or consent of Division Dean. Corequisite: None. Offered: On demand.

CSCI 1301. Computer Science I. (4 Credits)

This course is an overview of computers and programming; problem- solving and algorithm development; simple data types; arithmetic and logical operators; selection structures; text files; arrays; procedural abstraction and software design; modular programming. A high level programming language (currently Java) will be used. Prerequisites: CSCI 1201.

CSCI 1302. Computer Science II. (4 Credits)

This course is an overview of abstract data types; multi- dimensional arrays and records; sets and strings; binary searching and sorting; introductory algorithm analysis; recursion; pointers and linked lists; software engineering concepts; dynamic data structures. A high level programming (currently JAVA) will be used. Prerequisite: CSCI 1301.

CSCI 1321. Introduction to Programming in R and Python. (3 Credits)

This is an introductory programming course for Non-CS majors. Fundamental concepts of programming including Object Orientation, Variables, Data Types, Conditional Statements, Loops, Functions and recursion are introduced and implemented using a variety of examples in both Python and R.

CSCI 1371. Computer for Engineers. (3 Credits)

Foundations of computing with an introduction to design ana anlysis of algorithm and an introduction to design and construction of programs for engineering problem-solving. Prerequisites: MATH 1113 Pre-Calculus or consent of Division Dean.

CSCI 2200. Internet Technologies. (3 Credits)

The course provides a comprehensive introduction to the tools and skills required for both client and server side programming, teaching students how to develop platform independent sites using current Web development technology. Essential programming exercises are presented using a manageable progression. Corequisites: None. Prerequisite: Completion or exemption of all learning support requirements. Offered: On demand.

CSCI 2211. Visual BASIC Programming. (3 Credits)

This course covers the fundamentals of Visual BASIC controls, object types, events, and methods. Topics include creating user interface, setting properties, designing class modules, introduction of Visual BASIC front-end applications for database. Prerequisite: CSCI 1301.

CSCI 2235. Information System & Web Security. (3 Credits)

This course covers the broad field of Information Security Principles and Practices. This course introduces the student to information security principles, governance, risk management, physical and operational security as well as network and software development security, disaster recovery planning, backup and emergency destruction procedures.

CSCI 2300. Computational Informatics I. (3 Credits)

This course offers an introduction to computational informatics science of how information is represented and transmitted in biological systems. Students will learn Biological Technical Scenes, Patterns and Downloading Datasets (Protein Databanks, SWISS-PROT, EMBL and GenBank), Database Management (Pharmacogenomics and Aggression), Search Engines Algorithms (Intelligent Agents and User Interface Tools Programming with PERL Database), Data Mining (Statistics and Sampling), Web Technologies (Internet Sequence Retrieval System) and Data Visualization (Animation and Visualization Tools) Prerequisite: BIOL 1111 or permission of instructor .

CSCI 2311. Advanced Visual Basic Programm. (3 Credits)

Advanced Visual Basic will incorporate the basic concepts of programming and the design techniques of an object oriented language. It covers advanced internet and user interface features and applications; error handling; graphics, database, and XML applications. A second course is needed to cover the database concepts, web applications and advanced programming techniques. The general elective credit hours will increase and the institution's overall degree requirement will not be affected.

CSCI 2400. Secure Script Programming. (3 Credits)

This course covers the design and implementation of secure Windows/Unix/Web-based applications with .NET/Java Framework, C#, C++, Java, PHP, ASP, .NET, and SQL. The course emphasizes training in secure and error-free programming techniques in order to block potential programming loopholes that can be exploited by hackers or malware.

CSCI 3000. Cryptography & Computer Security. (3 Credits)

This course is used as an introduction to the basic theory and practice of cryptographic techniques used in computer security. The course covers topics such as encryption (secret-key and public-key), message integrity, digital signatures, user authentication, key management, cryptographic hashing, network security protocols (SSL, IPsec), public-key infrastructure, digital rights management, and elements zero-knowledge protocols.

CSCI 3111. Discrete Structures. (3 Credits)

This course includes topics such as logic, sets, relations, functions, counting techniques, mathematical induction, graphs representation, combinatorial problems, elementary graph theory, network work flow, recursion and finite state machine. Prerequisite: CSCI 1301 .

CSCI 3122. Data Structures. (3 Credits)

This course is a study of the basic concepts and the representation of data using the language C++, such as static and dynamic allocations, trees, and graphs, storage systems and structures, searching and sorting techniques. Prerequisite: CSCI 1302 or permission of instructor.

CSCI 3132. Database Management. (3 Credits)

This course concentrates on defining and designing database systems. It covers such types as data modeling, management algorithms, query language, record insertion and deletion, sorting, creation of indexes, updating the database, and implementing the database. Prerequisite: CSCI 1302.

CSCI 3200. Design & Analysis of Algorithm. (3 Credits)

This course is about the systematic study of the design and analysis of algorithms. The course covers the fundamental techniques used to design efficient algorithms with the analysis of the efficiency. It covers several group of algorithms, such as graph, search, computational, genetic, sorting, heuristic and approximate algorithms. Prerequisite: CSCI 3122 .

CSCI 3211. Computer Organization and Architecture I. (3 Credits)

This course is the study of hardware and software concepts of digital computer systems, with emphasis on fundamental system software and details of hardware operation. Topics include virtual machines, system organization, digital logic and assembly language programming. Prerequisite: CSCI 1301 .

CSCI 3212. Computer Organization and Architecture II. (3 Credits)

This course is the continuation of Computer Organization I. Topics include instruction and data formats, addressing modes, instruction types, flow of control, micro-programming, and advanced computer architecture, including RISC machines and parallel architecture. Prerequisite: CSCI 3211 .

CSCI 3300. High Performance Computing. (3 Credits)

In parallel computing several processors cooperate to solve a problem, which reduces computing time because several operations can be carried out simultaneously. From the computation point of view, this provides sufficient justification to investigate the concept of parallel processing. In this course, we are intended to investigate four steps that are involved in performing a computational problem in parallel. The first step is to investigate the nature of parallel computing with respect to architectures. The second step involves designing parallel algorithms or parallelizing the existing sequential algorithms. The third step is to map the problem into a suitable parallel computer, and the last step involves writing a parallel program utilizing an applicable parallel programming approach. An important reason to utilize high performance computing can be illustrated by the applications. The applications are representative of a host of situations in which the probability of success in performing a computational task is increased through the use of parallel processing. This course will be considered as a major elective course, so the inclusion of this course in our list of course offerings will not increase the required number of credit hours for computer science majors.

CSCI 3335. Risk Analysis & Information Infra-Structure Security. (3 Credits)

This course examines the security of information in computer and communications networks within infrastructure sectors critical to national security. These includes the sectors of banking, securities and commodities markets, industrial supply chain, electrical/smart grid, energy production, transportation systems, communications, water supply, and health. Special attention is paid to the risk management of information in critical infrastructure environments through an analysis and synthesis of assets, threats, vulnerabilities, impacts, and countermeasures. Students learn the importance of interconnection reliability and methods for observing, measuring, and testing negative impacts. Critical consideration is paid to the key role of Supervisory Control and Data Acquisition (SCADA) systems in the flow of resources such as electricity, water, and fuel. Students learn how to develop an improved security posture for different segments of the nation's critical information infrastructure.

CSCI 3350. Introduction to Data Science with R and Watson. (3 Credits)

This Course is an Introduction to Data Science with R and Watson. This course deals with the study and extraction of many and varied data. Topics studied include: introduction to data Science, inferential statistics, probability distributions, statistical modeling and fitting of data, various methods of data collection, analysis and interpretation using R, Watson, other forms of statistical packages, machine learning algorithms, visualization, and predictive modeling.

CSCI 4113. Operating Systems. (3 Credits)

This course involves the operating system architecture and the manner in which computer operating systems interact with machine hardware to provide a total system. The study of operating systems by combining a careful examination of theoretical issues with real-world, hands-on problems and examples. The implementation examples are drawn from the commercial operating systems. Prerequisite : CSCI 3122 .

CSCI 4123. Computer Networks. (3 Credits)

This course is the study of Network Planning and Network Design, Understanding Networks by understanding their components and their functions, and defining different Network Operating Systems. This course provides insight into new technologies, such as ATM, ISDN, and wireless networks. The implantation examples are drawn from the commercial network operating systems. Prerequisite: CSCI 4113.

CSCI 4151. Systems Simulation. (3 Credits)

An introduction to problem solving using simulation methods and tools. Topics include construction of deterministic and stochastic models, identification of system parameters, correlation of models and systems. Prerequisite: CSCI 3122.

CSCI 4211. Systems Analysis I. (3 Credits)

This course provides the students with an introduction to technical and management issues in systems analysis and design. The course covers various issues in the Systems Development Life Circle (SDLC) model, CASE tools and their impact on SDLC, the systems analyst and the different roles of a systems analyst in an organization. It introduces students to various information gathering techniques, tools for project management, issues and models for sampling data sources, ER diagrams, data flow diagrams and data dictionaries. It includes an in-depth treatment of prototyping. It also covers issues in decision-making, process specification techniques and principles of structured design. Prerequisite: CSCI 1302 .

CSCI 4212. Systems Analysis II. (3 Credits)

This course is a continuation of the introductory course in systems analysis and design. The course provides an in-depth treatment of objected-oriented analysis and design concepts as applied to systems development. It introduces the students to various tools used in design and analysis of large software systems. It covers various issues in designing effective inputs and outputs, data-entry procedures, designing user interfaces and a comprehensive overview of the different types of dialogues and queries for interface design. Related issues in quality assurance, user training and evaluation techniques are also discussed. Prerequisites: CSCI 4211 .

CSCI 4221. Software Engineering. (3 Credits)

This course provides an introduction to software engineering methodologies, addressing each phase in the life cycle of software. Topics include system and software analysis, design, implementation and maintenance, software system development and management. CASE tools will be discussed also. Prerequisite: CSCI 3122 .

CSCI 4311. Computer Graphics. (3 Credits)

This course will provide students with the basic knowledge and experience necessary to use computers to create graphics and to process images. The hardware and software components of graphics systems are examined with a major emphasis on methods for design of 2-D and 3-D graphics. Algorithms for creating and manipulating graphics displays and techniques for implementing the algorithm are introduced. Prerequisite: CSCI 3122 .

CSCI 4319. Introduction to Machine Learning. (3 Credits)

This is an Introductory Course in Machine Learning and its applications. The main topics covered include Supervised Learning, Unsupervised Learning, Reinforced Learning, Neural Networks and Deep Learning. The course covers such methods as Regression Analysis, Support Vector Machines, Bayesian Decision Theory, Classification Algorithms, Clustering Analysis, Frequency Analysis, Nearest Neighbor Algorithms, Neural Network and Markov Models.

CSCI 4338. Network & Operating Systems Security. (3 Credits)

This course examines network and operating systems security in modern networks, which include local area networks, wide area networks, the internet, wireless networks, and mobile networks. Special emphasis is paid to the security and privacy of cloud-based data networks, which are coming under heavy attacks by hackers and malware.

CSCI 4340. Wireless & Mobile Security. (3 Credits)

This course provides an overview to the secure planning, designing, and configuring of wireless LANs, as well as both the theory and practice of embedded network security. The course will offer in-depth coverage of wireless networks, implementation, design, security, and troubleshooting. The course also provides a comprehensive overview of building and maintaining firewalls in a business environment designed for the student and network administrator to learn the basics of network firewall security.

CSCI 4344. Computer Forensics. (3 Credits)

This course trains the student to properly conduct a computer forensics examination and provides an understanding of the process of electronic discovery. The students will learn the skills and techniques necessary to conduct a thorough digital forensics examination. The training will also teach the students how to compile and present the results of their digital forensics examination in a format suitable for presentation in a court of law or other competent government or administrative authority.

CSCI 4392. Introduction to Blockchain Technology. (3 Credits)

This course is an introduction to Blockchain. The major topics covered are: Basic Linux, Introduction to GIT, JavaScript Basics, Go Lang Basics, and Introduction to Blockchain Technology, the History of Blockchain and Bitcoin, the Emergency of Cryptocurreencies, multi-facets of Blockchain technology. Ethereum Blockchain, Hyperledger Blockchain, Introduction to Hyperledger Fabric and Composer, Setting up and Installing local Hyperledger Fabric, Composer and Playground, Hyperledger in IBM mix, Working with Hyperledger in Linux One, Hyperledger Blockchain Use cases, Developing your first application in Hyperledger Fabric, using chain codes. Integration of Hyperledger Blockchain networks with existing systems.

CSCI 4411. Artificial Intelligence. (3 Credits)

This course covers the basic concepts of artificial intelligence including production systems, knowledge representation, pattern matching, heuristic search, and logical and probabilistic reasoning. The social, cultural, and economic impact of artificial intelligence are discussed. Prerequisite: CSCI 3111 .

CSCI 4911. Special Topics in Computer Science & Computer Information Systems. (3 Credits)

This course covers current topics in Computer Science and Computer Information Systems of special interest to faculty and students. Prerequisite: Permission of instructor.

CSCI 4915. Web Design and Development. (3 Credits)

This course will cover the fundamental concepts of web development. The study of the theory and languages related to Web Design and Development will also be discussed. Topics include client/server architecture, W3C HTML 4 specifications, CSS, DHTML, XML, VB and Java Scripts, Active Serve Page and PHP: Hypertext Preprocessor. Prerequisite(s): CSCI 3122 and CSCI 2211.

CSCI 4921. Senior Project I. (1 Credit)

Students will broaden their educational experience by reading and understanding technical literature in the areas of mathematics and computer science, organizing and writing a professional-level proposal, attending seminars and preparing a professional-level presentation. Students will draw upon and synthesize knowledge from their previous course work. Through revision of both the proposal and the oral presentation, students will improve their ability to communicate the main ideas.

CSCI 4922. Senior Project II. (2 Credits)

Students will broaden their educational experience by reading and understanding technical literature in the areas of mathematics and computer science, organizing and writing a professional-level paper, project implementation and coding, attending seminars and preparing a professional-level presentation. Project implementation should satisfy all requirements mentioned in the approved proposal accomplished during the course CSCI 4921. Students will draw upon and synthesize knowledge from their previous course work and educational experiences.