Course Descriptions

COURSES PRIMARILY FOR UNDERGRADUATE STUDENTS IN COMPUTER SCIENCE

CSCI 0100. INTRODUCTION TO COMPUTER CONCEPTS AND APPLICATIONS.  1st and 2nd Semesters, Summer.  Lect. 3, 3 credits.   Instruction and tutoring in basic computer skills, designed for students with little or no background in Computer Science.  An overview of computer applications including word processors, spreadsheets, databases, and other popular software.  This course includes hands-on experience with microcomputers.   This course cannot be used as a CSCI elective for CSCI majors.  Prerequisites: None.

CSCI 0110. BASIC PROGRAMMING.  1st and 2nd Semesters, Summer.  Lect. 3, 3 credits.   An introduction to computer programming on microcomputers using a programming language such as a modern version of BASIC, Visual Basic, or Quick Basic.  This course cannot be used as a CSCI elective for CSCI majors.  Prerequisites: None

CSCI 0150. INTRODUCTION TO COMPUTER SCIENCE.  1st and 2nd Semesters, Summers.  Lect. 3, Lab 2, 3 credits.   This course is designed to introduce students to fundamentals of computer science and technologies. Topics include history of computer, operating system, computer structure, data storage, database, computer network, and other areas in computing. Problem solving skills, algorithms, and programming concepts are also covered. Co-Prerequisites: MATH 0107 or Departmental Approval.

CSCI 0205. FORTRAN PROGRAMMING. 1st and 2nd Semesters. Lect. 3, 3 credits. Introduction to structured programming and problem solving through the use of FORTRAN.  Engineering and scientific applications will be stressed.  Topics will include sequencing and control structures, subprograms, files, arrays, algorithmic development, debugging and documentation.  Programming projects will be assigned.  This course cannot be used as a CSCI elective for CSCI majors.  Prerequisite: Math 0107 or Departmental Approval.

CSCI 0210. PROGRAMMING I.  1st and 2nd Semesters.  Lect. 3, Lab 2, 3 credits.   This course will cultivate analytical skills by presenting Computer Science as a problem solving discipline with emphasis on the logic, functions, algorithmic problems, and computerization of algorithms. Programming projects will be required.  Prerequisites: CSCI 0150 and MATH 0107 or Departmental Approval.

CSCI 0212. VISUAL BASIC. 2nd Semester. Lect. 3, 3 credits. This course introduces event-driven computer programming using the Visual BASIC programming language. Topics include input/output operations, syntax, program structure, module and form level events, procedures, variables, and constants, arithmetical operations, functions, loops, conditional statements, object-oriented programming, interface design, controls, decisions, creating menus and dialog boxes, looping, arrays,  accessing database files, and other related topics. On-screen components such as command buttons, text boxes, option buttons, check boxes, list boxes and forms are also discussed. The course will also have students work with Visual Basic for Applications to program Microsoft applications such as Excel, Access, and Word. Prerequisites: CSCI 0210 or Departmental Approval.

CSCI 0220. PROGRAMMING II.  1st and 2nd Semesters.  Lect. 3, Lab 2, 3 credits.   This course is designed to introduce students to design and develop medium size programs through different types of applications. The disciplines of software engineering will be used for program development. Essentially, this course covers the use of object-oriented programming to implement software solutions. Students will learn how to design a solution to a problem by reusing existing components, and by creating new components using inheritance. Other topics include: pointers, exception handling, standard template library and recursion. Prerequisites: CSCI 0210 or Departmental Approval.

CSCI 0225.  COMPUTER ORGANIZATION AND ASSEMBLY LANGUAGE.  1st and 2nd Semesters.  Lect. 3, 3 credits.  Number systems, Computer function and interconnection, Fundamental of digital logic,  Memory technology and organization, Input and output, Fundamental of digital logic, Registers and arithmetic and logic unit, and Computer arithmetic. Prerequisites:  CSCI 0210 and MATH 0108 or Departmental Approval.

CSCI 0227. PROGRAMMING LANGUAGES.  1st Semester.  Lect. 3.  Features of several languages.  Principles of programming language design.  Study and comparison of different programming languages and their implementations.  Appropriate assignments covering several languages.  Prerequisites:  CSCI 0220 or Departmental Approval.

CSCI 0229. C++ FOR ENGINEERING. 1st and 2nd Semesters. Lect. 3, Lab 0, 3 credits. To provide students with the fundamentals of structured programming for science and engineering problems using the C++ programming language. Contents such as, but not limited to C++, classes and objects, arrays, pointers and references, operators and friends, inheritance, derived classes, polymorphism, and virtual functions will be introduced. Prerequisites: MATH 0108 or Departmental Approval.

CSCI 0230. DATA STRUCTURES.  1st and 2nd Semesters.  Lect. 3, 3 credits. This course is designed to introduce students to the description, properties and storage (array and pointer based) of abstract data structures including stacks, queues, lists and trees. Introduce algorithms for efficient searching, insertion and deletion in data structures stored in internal memory. Analysis of algorithms for sorting, and hashing is also discussed. Prerequisites: CSCI 0220; Co-requisite: CSCI 0300 or Departmental Approval.

CSCI 0235. COMPUTER DESIGN, AND ARCHITECTURE.  1st and 2nd Semester.  Lect. 3, 3 credits.  Digital logic gates and Boolean algebra.  Function minimization and K-maps. Design of combinational logic modules: adders, decoders, multiplexers, PLAs, etc.   Design of control unit, arithmetic and logic unit, instruction set, instruction formats, addressing modes, microprogramming.  Introduction to parallel and distributed computer systems. Prerequisites: CSCI 0225 or Departmental Approval.

CSCI 0281. ETHICAL AND SOCIAL ISSUES IN COMPUTING. 2nd Semester.  Lect. 3, 3. To provide students with an introduction to the social, ethical, and legal affects of computing on society and its users.  Ethical concepts, professional codes of ethics, and the influence of computing on individuals, organizations, and the global economy will be addressed. Prerequisites: CSCI 0210 or Departmental Approval.

CSCI 0300. DISCRETE MATHEMATICAL STRUCTURES.  1st and 2nd Semester.  Lect. 3, 3 credits.   Topics include sets, relations, functions, propositional and predicate logic, graph theory and applications, proof techniques, permutations and combinations, and recurrence relations.  Prerequisite: CSCI 0220 or Departmental Approval.

CSCI 0315. FILE ORGANIZATION AND MANAGEMENT.  1st Semester.  Lect. 3, 3 credits.  This course is designed to introduce students to the design, management, and organization of fast and flexible file structures on mass storage with emphasis on file structure design concepts and mass storage constraints. Concepts of organization and processing of files, physical characteristics of storage media, sequential file creation and update, direct file processing techniques, indexing structures and hashed files are discussed.  Prerequisites:  CSCI 0220 or Departmental Approval.

CSCI 0335. COMPUTER ARCHITECTURE.  2nd Semester.  Lect. 3, 3 credits.   Organization of central processing unit, memory, and input/output devices.  Design of control unit, arithmetic and logic unit, instruction set, instruction formats, addressing modes, microprogramming.  Introduction to parallel and distributed computer systems.  Prerequisites: CSCI 0235 or Departmental Approval.

CSCI 0340. DATA BASE MANAGEMENT SYSTEMS.  2nd Semester.  Lect. 3, 3 credits.  This course is designed to provide an understanding of database environments, basic technical concepts and system resources for data, data models, database management systems, database design, and use, management, and administration of databases. Students who successfully complete this course will be able to use the entity-relationship data model to represent business data requirements, to translate that model into a relational schema, and to build and use a relational database that implements the schema. Students will develop software to interact with a database using SQL statements. Prerequisite: CSCI 0230 or Departmental Approval.

CSCI 0345. BUSINESS DATABASE MANAGEMENT SYSTEMS. 1st Semester. Lect.3, 3 credits. Involves the study of generalized database management systems. The study will include logical data base models and physical base models based primarily on the relational model. The students will create a database utilizing an established database management system. The focus is on issues and principles of managing organizational data. Students will get extensive experience in developing data models, creating relational databases, and formulating and executing queries based on business applications. Prerequisites: Junior Standing or Departmental Approval

CSCI 0350. DESIGN AND ANALYSIS OF ALGORITHMS.  2nd Semester.  Lect. 3, 3 credits.  Algorithm development using Pseudo Languages; Classification of Algorithms, e.g., Recursive, Divide and Conquer, Greedy, etc., Dynamic programming.  Branch-and-bound techniques.  Basic search methods and back-tracking.  Complexity issues and NP-Complete problems.  Introduction to Parallel algorithms.  Prerequisites: CSCI 0230 and CSCI 0300 or Departmental Approval.

CSCI 0355. E-BUSINESS. 2nd Semester. Lect. 3, 3 credits. The course is designed as an introduction to e-business and related concepts. Social and business aspects of e-business will be discussed and e-marketing, e-commerce and e-operations concepts will be explained. Electronic business systems will be described and legal and ethical issues in the context of e-Business will be discussed. This course will examine four major topic areas: Design and infrastructure of online business website, eBusiness design, comprehensive business plan, social and ethical issues in eBusiness. Prerequisites: Junior Standing or Departmental Approval

CSCI 0360. APPLIED STATISTICS AND STATISTICAL COMPUTING. 1st Semester. Lect. 3, 3 credits. Fundamental concepts of data representation and organization, measure of central tendency, elementary probability theory, frequency distributions, basic sampling theory, hypothesis testing, correlation and regression, Chi-square test and t-test. Students may use currently available software to analyze data. Prerequisites: CSCI 0210 and MATH 0108 or Departmental Approval.

CSCI 0365. E-BUSINESS SYSTEMS DEVELOPMENT.  2nd Semester. Lect. 3, 3 credits. This course focuses on using high-tech computer technology to develop systems for conducting and supporting business through the Internet.  Students will learn the foundation concepts of e-Business and how to design, develop, implement, and maintain business systems used to support the e-Business strategies of an organization.  Students will develop e-Business enabled web sites using web-based technologies. Prerequisites: CSCI 0345 and CSCI 0355 or Departmental Approval.

CSCI 0370. COMPUTER NETWORKS. 1st Semester. Lect. 3, 3 credits. Data Communications and Networks Overview, Protocol Architecture, Circuit and Packet switching, ATM, Routing, Congestion control, Wireless networks, Cellular Wireless Networks, Security services and mechanisms in ISO Reference Model. Prerequisites: CSCI 0220 and CSCI 0225 or Departmental Approval.

CSCI 0380. INFORMATION SECURITY. 1st Semester. Lect. 3, 3 credits. This is an introductory course in information security which presents the students an overview of the fundamental principles, the security problems, risk analysis, and policies.  Topics include basic concepts, access control, security policies, authentication, assurance and trust, information flow, vulnerabilities analysis, incident response, and legal and ethical issues. Prerequisites: CSCI 0220 or Departmental Approval.

CSCI 0385. SECURITY ENGINEERING.  2nd Semester. Lect. 3, 3 credits. . This course fills the gap between the theories of secure systems and the skill based training of System Administrators. The focus is on the security technologies used to implement security policies. Topics covered include Introduction to Security Engineering concepts, Security Protocols, Access Control, Cryptography, Multilevel Security, Multilateral Security, Biometrics, Network Attack and Defense, Security in Banking, Emission Security, Telecom Security, Monitoring and Metering, Security Printing and Seals, Physical Tamper Resistance, System Security Engineering Capability Maturity Model(SSE-CMM), Security Requirements &  Risk Analysis, FMEA, FTA, CC. Prerequisites: Junior Standing and Departmental approval.

CSCI 0390. COMPUTER FORENSICS. 1st Semester. Lect. 3, 3 credits. This course introduces fundamentals of computer forensics and cyber-crime scene analysis including laws, regulations, and international standards. It takes a detailed, hands-on approach to the investigation of incidents in which computers or computer technology play a significant or interesting role. Students completing this course will be familiar with the core computer science theory and practical skills necessary to perform rudimentary computer forensic investigations, understand the role of technology in investigating computer-based crime, and be prepared to deal with investigative bodies at a rudimentary level. Prerequisites: CSCI 0220 or Departmental Approval
 
CSCI 0402. VISUAL BASIC FOR ENGINEERS. 1st and 2nd Semester. Lect. 3, 3 credits. Introduction to visual programming on microcomputers using Visual Basic. Programming applications include graphics control, mouse event, keyboard event, interfacing with windows, accessing files, file-system controls, accessing multimedia, displaying, and printing. Prerequisites: CSCI 0229 or Departmental Approval

CSCI 0405. SYSTEMS ANALYSIS AND DESIGN.  2nd Semester.  Lect. 3, 3 credits.   Survey of tools and techniques for systems analysis and design used by systems analysts.  Documentation of analysis and design outcomes using CASE tools.  Input and output designs.  Other useful skills required for the systems analyst: project management, cost-benefit analysis, fact-finding, and communications.  Case studies.  This course cannot be used as a CSCI elective for CSCI (general) majors.  Prerequisites: CSCI 0415 or Departmental Approval.

CSCI 0410. INDEPENDENT STUDY.  1st and 2nd Semesters.  1-3 credits.   Designed to provide an opportunity for outstanding Computer Science majors to study advanced topics not covered in required courses.  The student is expected to do most of the work on his own under the supervision and with the assistance of a member of the staff.  Prerequisite: Departmental Approval.

CSCI 0412. VISUAL C++.  2nd Semester.  Lect. 3, 3 credits. This course teaches the student how to develop state of the art windows applications by using the visual C++ programming language. This course covers controls, properties, events, object linking and embedding (OLE) controls, menus, dialog boxes, graphics, and single-document interface (SDI) applications. Prerequisites: CSCI 0229 or Departmental Approval.

CSCI 0415. MANAGEMENT INFORMATION SYSTEMS.  1st Semester.  Lect. 3, 3 credits.  Understanding the values and uses of information and information technology for management of complex organizations.  Transaction processing trends.  Decision support systems and Expert systems.  Office automation technology.  Information Technology for strategic advantage, planning, and control.  International and ethical issues.  Case studies of real-world problems.  This  course  cannot  be  used  as  a  CSCI  elective  for  CSCI  (general)  majors.  Prerequisites: CSCI 0230 or Departmental Approval.

CSCI 0420. DISCRETE SYSTEM SIMULATION.  1st Semester.  Lect. 3, 3 credits.   Fundamental concepts of computer simulation, discrete system modeling, Monte Carlo simulations, random number generation, data collection and validation, analysis of simulation output using statistics, selection of probability distribution, and event generation.  Students will complete a simulation project.  Prerequisites: CSCI 0230 and MATH 0507/ECON 300 or Departmental Approval.

CSCI 0421. INFORMATION ASSURANCE MANAGEMENT.  2nd Semester.  Lect. 3, 3 credits. Students learn how to operate an information system at a specified level of trust.  Further, they learn how to analyze and judge the information for validity and reliability to ensure the system will operate at the proposed level of trust.  The course contents include understanding of information system architecture, system security measures, systems operations policy, system security management plan, legal and ethical considerations and provision for system operator and end user training.  This is a multi-discipline computer security course. Prerequisites: Math 0208/0227 and departmental approval.

CSCI 0425. SYSTEMS PROGRAMMING.  1st Semester.  Lect. 3, 3 credits.   Fundamentals of assembler design.  Design of loaders and linkers.  Microprocessor design.  Overview of compilers.  A major programming project is required.  Prerequisites: CSCI 0225 and CSCI 0230 or Departmental Approval.

CSCI 0429. JAVA FOR ENGINEERS.  2nd Semester.  Lect. 3, 3 credits. Introduction to Java Programming language. This course covers structure of the Java language, programming with Java, create applications and applets using Java run-time class libraries, introduction to different features of Abstract Windowing Toolkit (AWT), use standard Java classes and incorporating applets into Web pages.  Prerequisites: CSCI 0229 or Departmental Approval.

CSCI 0430. SOFTWARE ENGINEERING.  1st Semester.  Lect. 3, 3 credits.  An Engineering approach to software design and development.  Concepts discussed are software life cycle, software requirements and specifications, object-oriented design, detailed modular design, validation and verification, proving program correctness, software testing, software quality assurance, and project management.  Students are required to develop a large scale project implementation in JAVA, C, or C++ programming languages.  Prerequisites: CSCI 0230 and CSCI 0300, or Departmental Approval.

CSCI 0431. SOFTWARE SECURITY.  2nd Semester.  Lect. 3, 3 credits. Most reported security incidents are the result of defects that are unintentionally introduced during the design and development of the application.  To reduce software vulnerabilities, the occurrence of flaws and the threat of attack on applications, the defect content of software needs to be significantly reduced.  The purpose of the course, secure software development, is to address the issues of security practices within the software development lifecycle.  Software Security is the study of various security practices within the context of the software development lifecycle.  The course will address security practices that can be used to reduce defects in software as well as reduce the vulnerabilities in software.  The course will also expose students to current research topics in the field. Prerequisites: CSCI 0230 and CSCI 0300, or Departmental Approval.

CSCI 0435. OPERATING SYSTEMS.  2nd Semester.  Lect. 3, 3 credits.  Principles and design of operating systems.  The notion of a process, inter-process communication and synchronization, file systems, memory management, multiprocessor and distributed operating systems.  A major programming project is required.  Prerequisites: CSCI 0225 and CSCI 0230 or Departmental Approval.

CSCI 0445. THEORY OF COMPUTATION.  2nd Semester.  Lect. 3, 3 credits.   Mathematical models for algorithmic processes and finite automata.  Theory of automata, decidability, formal languages, Turing machines, computational complexity, and NP-completeness.  Application of theoretical approaches to practical problems.  Prerequisites: CSCI 0230 and CSCI 0300 or Departmental Approval.

CSCI 0450. COMPUTER GRAPHICS.  1st Semester.  Lect. 3, 3 credits.   Hardware and Software components of Computer Graphics Systems.  Display files, two and three-dimensional transformations.  Clipping and windowing perspective, hidden-line elimination, and shading.  Interactive graphics, and survey of applications.  Prerequisites: CSCI 0230, CSCI 0300 and Math 407 or Departmental Approval.

CSCI 0451. COMPUTER SCIENCE SEMINAR PART 1.  1st and 2nd Semester. Lect. 1, 1 credit, Required for all CSCI majors. The first semester of a student's senior year the student identifies a subject area, does background reading on the subject, does extensive research or  designs a substantial software project related to a Computer Science topic. Students are expected to participate in the faculty and visiting lecturer series. Prerequisites: Departmental Approval.

CSCI 0452. COMPUTER SCIENCE SEMINAR PART 2.  1st and 2nd Semester. Lect. 1, 1 credit, Required for all CSCI majors.  The last semester of a student's senior year, the student continues the project started in CSCI 0451. The student, working with a mentor, will complete design (and/or research) and project implementation. Students are expected to participate in the faculty and visiting lecturer series. The student will write a paper on the materials collected during the research of the Computer Science topic and present the findings to the department faculty for evaluation. Prerequisites: CSCI 0451 or Department Approval.

CSCI 0455. COMPILER DESIGN AND CONSTRUCTION.  2nd Semester.  Lect. 3, 3 credits.  Review of language structures; symbol tables; scanning; object code generation; diagnostics; code optimization, and compiler writing languages.  The student will be assigned projects involving the implementation of some parts of the compiler.  Prerequisites: CSCI 0225, CSCI 0230 and CSCI 0300, or Departmental Approval.

CSCI 0459. INTRODUCTION TO COMPUTER SECURITY. Lect.  3, 3 credits. Introduction to the basics of security policies, models, and the mechanisms for secrecy, integrity and availability. Topics include threats and attacks, security policies, access control models, cryptograph, E-Commerce, network security, risk management, and ethical issues. This is a multi-discipline computer security course. Prerequisites: Math 0208/0227 or departmental approval.

CSCI 0463. INTRODUCTION TO COMPUTER GAMING.  1st Semester. Lect. 3, 3 credits. This course discusses the process of game development. It examines the roles of different participants in the development process and how the technical development and the artistic development proceed in computer gaming development platform.  It also studies the use of the computer to model and graphically render two- and three-dimensional structures used in computer gaming.  Topics include computer gaming, graphics devices and languages, 2- and 3-D object representations, and various aspects of rendering realistic images. Students will be expected to implement programs which span all stages of the 3-D graphics pipeline, including clipping, projection, arbitrary viewing, hidden surface removal and shading.  Group work is emphasized, especially the importance of collaboration between technical and artistic efforts. Prerequisites:  CSCI 0230 or Departmental Approval.

CSCI 0480. ADVANCED COMPUTER NETWORKS. 2nd Semester, Lect 3,3 credits. Local Area Networks Overview. High-speed LANs, Wireless LANs, Internet Protocols and Operations, Transport protocols, Internet and LAN Security, Wireless Security, Distributed Applications, Network Management protocols. Prerequisites: CSCI 0370 or Department Approval.

CSCI 0483. NETWORK SECURITY. 2nd Semesters.  Lect. 3, 3 credits. This course introduces the fundamentals of network security, security vulnerabilities, attack methods, and mitigation approaches. A comprehensive list of security issues related to networking design and development will be discussed. Topics include ethics in network security, basic cryptography, Firewalls, threats and security measures at different TCP/IP layers. SSH protocol, E-mail security, and Web security. Prerequisites: CSCI 0370 or Departmental approval.

CSCI 0485. ARTIFICIAL INTELLIGENCE.  1st Semester.  Lect. 3, 3 credits.  Introduction to basic concepts and techniques of artificial intelligence and intelligent systems.  Topics include:  facts representation, variables and quiers with emphasis on backtracking, definitions and inferences, arithmetic and list processing in Prolog, LISP, Scheme, etc.  Rule based systems, machine intelligence, heuristic programming, and natural languages.  Prerequisite: CSCI 0230 and CSCI 0300 or Departmental Approval.

CSCI 0487. INFORMATION WARFARE. 1st Semester.  Lect. 3, 3 credits.   This course introduces students the nature of information warfare, security threats, and the countermeasures.  Students will gain an understanding of information warfare principles and technologies, including vulnerabilities, computer break-ins, denial-of-service, and other network attacks. They will learn about the countermeasures, such as authentication, encryption, auditing, monitoring, intrusion detection, and firewalls, and the limitations of those countermeasures. In addition to cyber security, ethics, and legal considerations are also addressed during the course. Prerequisites: CSCI 0370 or Departmental Approval.

CSCI 0490. INTRODUCTION TO ROBOTICS.  2nd Semester.  Lect. 2, Lab 2,  3 credits.   Early image processing; images and shapes; motion understanding from images; shape representation, model based vision system; signal processing; feature extraction, recognition systems; kinematics and dynamics; trajectory and task planning; control; robot programming; locomotion.  Prerequisites: CSCI 0230, or Departmental Approval.

CSCI 0495. VLSI SYSTEMS.  2nd Semester.  Lect. 2, Lab 2, 3 credits.   VLSI technology, NMOS, CMOS; fabrication and design of chips; logic design; Design techniques for computer hardware; clocked and self timed systems; hardware synchronization circuits; finite state machines.  Prerequisites:  CSCI 0335 or Departmental Approval.

CSCI 0499. SPECIAL TOPICS.  1st Semester.  Lect. 3, 3 credits.   Topics are selected to supplement and enrich existing courses and lead to the development of new courses.  Prerequisites:  Departmental Approval.

CSCI 0505. DATABASE DESIGN.  1st Semester. 3 credits.   Goals of DBMS relationships, logical, and physical organizations, schema and subschema, hierarchical, network, and relational models; first, second, and third normal forms of data relations.  Canonical schema.  Data independence; forms, applications, examples, design strategies; relational algebra, relational calculus, data structures for establishing relations.  Query functions.  Design and translation strategies.  Prerequisites: CSCI 0340 or Departmental Approval.

CSCI 0530. PARALLEL PROCESSING.  1st Semester. Lect. 3, 3 credits.   Hardware and software elements of multiprocessors, multi-computers, pipeline and array machines, data flow architecture; design principles related to machine structures, control software and hardware, data storage and access, parallel programming languages, and algorithm development as well as implementation for various science and engineering applications using parallel programming systems such as C-Linda, PVM, MPI, etc.  Prerequisites: CSCI 0335 or Departmental Approval.

CSCI 0533. INTRODUCTION TO CRYPTOGRAPHY: 1st Semester. Lect. 3, 3 credits.  This course is intended for senior and graduate students in science, engineering, mathematics and computer science.  Prerequisites: CSCI 0300 or Department Approval.