Academic Catalog

Computer Science (CSCI)

CSCI-COMP  Senior Comprehensive Exam  
(NULL credits)  (Spring Semester)  

Senior Comprehensive

CSCI-1010  Computer Science Fundamentals  
(3 credits)  (Fall Semester)  

Computer Science Fundamentals (3) (F) This course provides an introduction to computer science and programming fundamentals for students who have had no previous programming experience. Topics include hardware, networks, databases, artificial intelligence, operating systems, and the Internet. The students will use a high-level programming language to learn about variables, conditional execution, user interaction, looping, and functions. There is an integral laboratory component.

CSCI-1050  Web Programming  
(3 credits)  (Discretion of Department)  

This course serves as an introductory programming course with a focus on using JavaScript to create interactive web pages. The topics covered include: virtual machines; web servers; server-side and client-side programming models; fundamental programming techniques; fundamental HTML; interactive HTML forms; cookies; and working with the browser's object models.

CSCI-1140  Introduction to Computer Science I  
(4 credits)  (Both Fall & Spring Semesters)  

Introduction to Computer Science I (4) (B) This course introduces the fundamental concepts of computer programming from an object-oriented perspective. Topics covered include simple data types and some simple data structures, message passing, subclasses, inheritance, polymorphism, and conditional and iterative control structures. Through study of object design, this course also introduces the basics of software engineering. A closed lab is an integral part of this course.

Prerequisite(s): Ready to take Pre-calculus or higher.  
CSCI-2000  Programming Short Course  
(2 credits)  (Discretion of Department)  

Programming Short Course (2) (D) This course is designed to provide the student with a working knowledge of a particular programming language. Students write programs of moderate complexity in the given language. May be taken more than once if the programming language is different.

Prerequisite(s): Permission of instructor.  
CSCI-2150  Introduction to Computer Science II  
(4 credits)  (Spring Semester)  

Introduction to Computer Science II (4) (S) This course continues the introduction of object-oriented programming begun in CSCI-1140, with an emphasis on algorithms, data structures, software engineering, and the social context of computing. A closed lab is an integral part of the course.

Prerequisite(s): CSCI-1140.  
CSCI-2300  Programming for Scientists & Engineers  
(3 credits)  (Spring Semester)  

Programming for Scientists and Engineers (3) (S) This course introduces the fundamentals of computer programming using C++. The focus of the course is programming for scientific and engineering needs. Topics include basic data types and data structures, pointers, expressions, iterative and conditional control structures, visualization, and object-oriented programming. Students who have received credit for CSCI-2150 may not take this course without permission of instructor.

Corequisite(s): MATH-1300.  
CSCI-2560  Discrete Mathematical Structures II  
(3 credits)  (Spring Semester)  

Discrete Mathematical Structures II (3) (S) This course continues the discussion of discrete mathematical structures introduced in MATH-2550, focusing particularly on topics that contribute to further study of computer science as a discipline. Topics include relations, matrices, computational complexity, elementary computability, discrete probability, recurrence relations, and a continuation of the study of graph theory begun in the previous course.

Prerequisite(s): MATH-2550 and CSCI-1140.  
CSCI-3100  Database Systems  
(4 credits)  (Fall Semester)  

Database Systems (4) (F) This course uses the idea of information as a unifying theme to investigate a range of issues focusing on database systems design and management. Topics include ER modeling, relational algebra and calculus, SQL, functional dependency theory, normalization techniques, query processing and optimization, and other issues such as concurrency and security. A closed lab is an integral part of the course.

Prerequisite(s): CSCI-2150 and MATH-2550.  
CSCI-3500  Algorithm Design & Analysis  
(4 credits)  (Spring Semester)  

Algorithm Design and Analysis (4) (S) This course introduces formal techniques to support the design and analysis of algorithms, focusing on both the underlying mathematics theory and practical considerations of efficiency. Topics include asymptotic complexity bounds, techniques of analysis, and algorithmic strategies. A closed lab is an integral part of the course.

Prerequisite(s): CSCI-2150 and CSCI-2560.  
CSCI-3570  Theory of Automata  
(3 credits)  (Fall Semester)  

Theory of Automata (3) (F, Odd years) This course covers computer science theory through the study of formal languages and their corresponding automata, including: regular languages and finite-state automata, context-free languages and pushdown autom- ata, and recursively enumerable languages and Turing Machines. The relationship between these languages/ automata and the classes P, NP, and NP-complete are also studied.

Prerequisite(s): CSCI-2150 and CSCI-2560.  
CSCI-3600  Concepts of Programming Languages  
(4 credits)  (Fall Semester)  

Concepts of Programming Languages (4) (F) Syntax and semantics of programming languages. Grammars, parsing, data types, control flow, parameter passing, run-time storage management, binding times, data abstraction, scripting, concurrency, exception handling, language design and evaluation. Programming paradigms to be studied include object-oriented, imperative (procedural), functional, and logic-based.

Prerequisite(s): CSCI-2150.  
CSCI-3800  Artificial Intelligence  
(4 credits)  (Discretion of Department)  

Artificial Intelligence (4) (D) This course provides an investigation into how to model and implement intelligent behavior using computers. Topics include search algorithms, reasoning, heuristics, game trees, knowledge representation and machine learning. A closed lab is an integral part of the course.

Prerequisite(s): CSCI-2150.  
CSCI-3920  Directed Software Projects  
(3 credits)  (Both Fall & Spring Semesters)  

Directed Software Projects (3) (B) This course provides student experience in the development or maintenance/enhancement of one or more software projects of a size and scope smaller to those encountered in the senior capstone. Pre-req: Permission of Instructor

CSCI-4200  Computer Architecture  
(4 credits)  (Fall Semester)  

Computer Architecture (4) (F) This course introduces students to the organization and architecture of computer systems, beginning with the standard von Neumann model and then moving forward to more recent architectural concepts. Topics include digital logic, data representations, as well as multiprocessors and alternate and contemporary architectures. A closed lab is an integral part of the course.

Prerequisite(s): CSCI-2150 and MATH-2550.  
CSCI-4400  Operating Systems & Networking  
(4 credits)  (Spring Semester)  

Operating Systems and Networking (4) (S) This course introduces the fundamentals of operating systems together with the basics of networking and communications. The main topics include basic operating systems principles, concurrency, scheduling, memory management, security, and basics of networking and communications including World Wide Web technologies. A closed lab is an integral part of the course.

Prerequisite(s): CSCI-2150 and MATH-2550.  
CSCI-4790  Computer Science Internship  
(1 credit)  (Both Fall & Spring Semesters)  

Internship in Computer Science (B) (3) This program offers the student an opportunity for hands-on experience. It involves practical application of course work on a project in a computer science discipline. This is usually done off campus. The student will have a qualified supervisor at the site of the experience in addition to a faculty advisor.

Prerequisite(s): Permission of chair of the department.  
CSCI-4920  Software Engineering  
(3 credits)  (Fall Semester)  

Software Engineering (3) (F) This course combines a range of topics integral to the design, implementation, and testing of a medium-scale software system with the practical experience of implementing such a project as a member of a programming team. This course also treats material on professionalism and ethical responsibilities in software development and human-computer interaction.

Prerequisite(s): Senior computer science major and two upper-division computer science courses.  
CSCI-4930  Computer Science Senior Capstone  
(2 credits)  (Spring Semester)  

Senior Capstone (2) (S) This course, a continuation of CSCI-4920, provides a structured opportunity for the students to complete the software project they designed and began implementing in CSCI-4920. Formal presentations, both oral and written, of the students' work are integral components. (OC, VC, WC)

Prerequisite(s): CSCI-4920.  
General Education Categories: Oral Communication, Visual Communication, Written Communication