Computer Science (CSCI)

Courses

CSCI 103 - Computer Applications Credit 1

Introduction to computer applications using programs such as Word, Excel or PowerPoint. Note(s): May be taken multiple times for credit with a different topic; may not be counted toward the major; may not be counted towards Core Curriculum requirements. Grade Mode: A.
Restriction(s): Must be Undergraduate Level.
Repeat Limit (after first attempt): 10.

CSCI 104 - The Nature of Computing Credits 3

Fundamental concepts of computers and programming applied to a selected subject from one of the following: computer graphics, computational thinking for statistics, or programming for data science. Focusing on the algorithmic aspect of quantitative reasoning in computer programming. Basic programming skills for writing small programs to accomplish useful tasks for modeling, information processing and problem solving. No prior programming experiences are assumed. Core Curriculum: Approved for Core - Mathematics. Grade Mode: A.
Restriction(s): Must be Undergraduate Level.

CSCI 105 - Introduction to Computer Science Credits 3

Introduction to computer hardware and software, problem solving methods, elementary concepts of algorithm development, and C++ programming. Lecture/Lab Hours: Three hours lecture, one hour lab. Grade Mode: A.
Restriction(s): Must be Undergraduate Level.

CSCI 106 - Data Structures Credits 3

Linear lists, strings, arrays and orthogonal lists; graphs, trees, binary trees, multi-linked structures, searching and sorting techniques, dynamic storage allocation; applications. Lecture/Lab Hours: Three hours lecture, one hour lab. Grade Mode: A.
Prerequisite(s): CSCI 105.
Restriction(s): Must be Undergraduate Level.

CSCI 220 - Computer Organization and Assembly Language Programming Credits 3

Fundamentals of digital logic and the architecture of modern computer systems, machine level representation of data, memory system organization, structure of machine languages, and assembly language programming. Grade Mode: A.
Prerequisite(s): CSCI 105.
Restriction(s): Must be Undergraduate Level.

CSCI 230 - Programming Languages Credits 3

Organization and structure of programming languages; runtime behavior and requirements of programs; introduction to programming language specifications and analysis; and the study of various alternative languages, such as Java, C++ and Python. Grade Mode: A.
Prerequisite(s): CSCI 106.
Restriction(s): Must be Undergraduate Level.

CSCI 305 - Programming for Data Science I Credits 3

Fundamental programming skills for data science applications using a major programming language, such as Python or R in the field. Data analysis and information retrieval through data selection, iterative processing, function composition, abstraction and visualization. Note(s): Course may be repeated if different programming languages are used. Grade Mode: A.
Prerequisite(s): CSCI 105 or PHSC 311.
Restriction(s): Must be Undergraduate Level.
Repeat Limit (after first attempt): 1.

CSCI 306 - Programming for Data Science II Credits 3

Advanced programming skills for data science applications using a major programming language, such as Python or R in the field. Machine learning and advanced data-science applications. Note(s): Course may be repeated if different programming languages are used. Grade Mode: A.
Prerequisite(s): CSCI 305.
Restriction(s): Must be Undergraduate Level.
Repeat Limit (after first attempt): 1.

CSCI 311 - Operating Systems Credits 3

Computer operating systems; topics include time sharing, process communication, memory management, storage allocation, interrelationships between the operating system and the architecture of computer systems. Note(s): Offered in Fall. Grade Mode: A.
Prerequisite(s): CSCI 106, CSCI 220.
Restriction(s): Must be Undergraduate Level.

CSCI 335 - User Interface Design and Programming Credits 3

User interface design, implementation, and evaluation; event-driven programming in GUI applications and web applications; user-centered design methodologies. Grade Mode: A.
Prerequisite(s): CSCI 106.
Restriction(s): Must be Undergraduate Level.

CSCI 400 - Theory of Algorithms Credits 3

Various types of algorithms, analytic techniques for the determination of algorithmic efficiency, NP-complete problems, complexity hierarchies, and intractable problems. Grade Mode: A.
Prerequisite(s): CSCI 106; MATH 203 or MATH 204.
Restriction(s): Must be Undergraduate Level.

CSCI 402 - Database Management Credits 3

Integrated database systems, logical organization, data description language (DDL), data manipulation language (DML), of hierarchical networks and relational databases, overview of selected database management systems (DBMS). Grade Mode: A.
Prerequisite(s): CSCI 230.
Restriction(s): Must be Undergraduate Level.

CSCI 420 - Programming of Autonomous Mobile Robots Credits 3

An introduction to mobile robots and mobile robot programming. Topics covered include mobile robot modeling and kinematics, sensing, control, localization, motion planning and navigation. The course will offer both a theoretical and experimental treatment of those topics through student involvement in programming of autonomous robots. Lecture/Lab Hours: Two hours lecture, three hours laboratory. Grade Mode: A.
Prerequisite(s): CSCI 106, MATH 320, MATH 334.
Restriction(s): Must be Undergraduate Level.
Additional Fee(s): May involve lab fees of up to $130.

CSCI 430 - Computer Communications Credits 3

This course focuses on concepts of computer communications, local area networks, seven layers of communication protocols (with emphasis on the five-layer internet protocol stack), and global networks. Specifics related to wireless and mobile networks are incorporated as well. Also covered will be an overview of network security for the application, transport, network, and link layers. Grade Mode: A.
Prerequisite(s): CSCI 220, CSCI 230.
Restriction(s): Must be Undergraduate Level.

CSCI 440 - Topics in Computer Science Credits 3

Various topics including but not limited to the following: Compilers and Languages: Development of key compiler components based on the theory of automata and formal languages; Systems Programming: Development of utilities and shell scripts for Unix system administration; Computer Graphics: Design and implementation of 3D computer interactive graphics; Artificial Intelligence: Computational frameworks for knowledge representation, automatic reasoning, probabilistic modeling, and machine learning; Information Security: Concepts and techniques about cybersecurity and its implementation; Database Applications with Web and Mobile Interfaces; Machine Learning: Computational models for machine learning; Robotics: Fundamentals of robotics. Note(s): Course may be taken multiple times for credit with different content. Grade Mode: A.
Prerequisite(s): CSCI 230.
Restriction(s): Must be Undergraduate Level.
Repeat Limit (after first attempt): 10.

CSCI 450 - Software Engineering Credits 3

Concepts, principles, techniques, and documents of software engineering. Emphasis on systematic approaches to software engineering and the software life cycle. Team project required. Grade Mode: A.
Prerequisite(s): CSCI 230; CSCI 430 (may be taken concurrently).
Restriction(s): Must be Undergraduate Level.

CSCI 480 - Internship Credits 1-3

Provides for experiential learning activities through an internship on or off campus. May involve participation in special studies in computer science, a Research Experience for Undergraduates (REU), or an internship in the industry if approved by the Department. Note(s): May be taken multiple times for credit. Grade Mode: A.
Restriction(s): Must be Undergraduate Level.
Repeat Limit (total number of credits): 4.

CSCI 490 - Directed Research Credits 1-3

Theoretical or applied research under the supervision of computer science faculty as an opportunity for students to gain relevant research experience in the area of computer science. Outcomes may include novel computer programs, computer organization and systems projects, a research report or paper, or a professional presentation. Note(s): Special approval required; may be repeated multiple times for credit. Grade Mode: A.
Restriction(s): Must be Undergraduate Level.
Repeat Limit (total number of credits): 8.