Undergraduate Catalog 2019-2021


CSCI 3211 Assem Lang & Digital Logic Dsg

Prerequisite: CSCI 1302 with a grade of C or higher. Prerequisite or corequisite: CSCI 2350 with a grade of C or higher. The internal organization of digital computers is introduced through the study of assembly language. Digital logic design, sequential and combinational circuit design and implementation are introduced. Laboratory projects include the implementation of circuits using integrated circuit technology and assembly language programming. This course is non-repeatable.


CSCI 3212 Computer Organization & Archit

Prerequisite: C or better in CSCI 3211. Study of computer architecture. Topics include CPU organization, memory addressing, internal bus organization, and control. Laboratory emphasis is given to design and construction of an operational digital computer system. This course is non-repeatable. Additional special course fee required; see semester course schedule for amount.


CSCI 3341 Operating Systems

Prerequisite: C or better in CSCI 2350 and CSCI 3410. Corequisite: CSCI 3212, which may be taken concurrently. Basic principles, structures, and functions of operating systems. Topics include concurrency, multitasking and process synchronization, multiprogramming, scheduling and Dispatch, memory management, processor management, device management, virtual machine, and security and protection. This course is non-repeatable.


CSCI 3342 Systems & Network Programming

Prerequisite: C or better in CSCI 3341 and CSCI 2350. This course provides a basic concept of the design and development of multitasking systems, client-server organizations, and distributed applications. Computer network design, implementations and protocols are included. This course is non-repeatable.


CSCI 3343 Computer Systems Security

Prerequisite: C or better in CSCI 3341 and CSCI 3342. The course covers principles of computer systems security. We will discuss various attack techniques and how to defend against them. Topics include Network attacks and defenses, Operating system holes, application security (Web, e-mail, databases, viruses, social engineering attacks, privacy, digital rights management, cryptography, access control, and security protocols). Course projects will focus on building reliable code.


CSCI 3350 Linux Programming

Prerequisite: CSCI 2350 with a grade of C or higher and approval of instructor. An introduction to Linux Programming, including Linux system administration, shell programming, Perl system programming, and C system Programming. Linux system calls will be examined and implemented in the system programming.


CSCI 3410 Intro to Data Structures

Prerequisite: C or better in CSCI 1302. Introduction to data structures and their applications. Topics include pointers and references, linked structures, stacks, queues, lists, trees, hashed tables, introductory algorithm analysis, and recursion. Basic implementation and algorithms for manipulating these structures in the context of typical problems are covered.


CSCI 3610 Internet Programming I

Prerequisite: C or better in CSCI 3410 or CSCI 2350. This course includes an overview of the World Wide Web along with an introduction of client side scripting, server side scripting, HTTP protocol, database connectivity, and programming for the Web. Topics include HTML, CSS, JavaScript, DOM, PHP and/or other internet programming languages. The course is non-repeatable.


CSCI 3680 Discrete Structures

Prerequisites: C or better in MATH 1113 (or higher) and CSCI 1302. This course offers an intensive introduction to discrete mathematics as it is used in computer science. Topics include functions, relations, sets, propositional and predicate logic, simple circuit logic, proof techniques, cryptography, discrete probability, graphs and trees, and understand basic Finite-State Machines, Turing Machines, and Formal Languages. This course is non-repeatable.


CSCI 3710 Data Mining & Machine Learning

Prerequisite: CSCI 2350 and CSCI 3410, both with a grade of C or higher, and permission of instructor. An introduction to data mining algorithms and applying the algorithms in machine learning and big data.


CSCI 3711 Data Analysis

Prerequisite: CSCI 3410 with a grade of C or higher. This course explores various software packages frequently used for data analysis. Examples of software packages include numpy, scipy, pandas, scikit-learn, matplotlib, etc. Through rigorous practice, students will be expected to master state-of-the-art data analysis and visualization techniques. The course is non-repeatable.


CSCI 3950 Special Topics

Prerequisite: Permission of instructor. Selected topics not available in other departmental courses.