Computer Science Course Catalog

Grades and Scheduling Codes

CSCI-130 Microcomputer Applications (3) A

An introduction to microcomputer-based applications, including an overview of the history, societal impact, hardware, operating systems, and terminology of computing. Students will gain knowledge of and experience with commercial software including word processing spreadsheets, and databases; coverage will include communications and graphics software. May not count toward a mathematics major or minor.


CSCI-132 Software Applications for the Sciences (2) A

An introduction to microcomputer-based applications in the sciences, including an overview of computer history and the terminology of computing. Emphasis will be placed on the use of spreadsheets and word processing as tools for analyzing scientific data and for writing technical reports. Does not count toward a mathematics major or minor.


CSCI-152 Pascal Programming (3) A

This course provides an introduction to computer programming using the Pascal programming language. Emphasis will be placed upon learning to formulate solutions to problems in terms of Pascal. The student will gain practical experience in program design, coding, debugging, and testing. Fundamental problem solving techniques that are used to solve real-world problems in mathematical/ scientific applications will be explored.


CSCI-155 C/C++ Language Programing (4) SI/D

This course provides an introduction to computer programming, using the C/C++ programming language. A previous course in computer programming will be helpful but is not required. C++ has both structured and object-oriented features, and has many low-level features for a high-level language. These help make the language a popular choice for developing many types of programs. This course will help the student to understand fundamental programming concepts and develop good programming style (methodology). May be taken for credit in either the Mathematics Department or the School of Business. (Cross-listed as CIS-255.)

Prerequisite: MATH-105 or equivalent.


CSCI-156 C/C++ Language Programming II (4) SII/D

This course is a continuation of CSCI-155. Emphasis will be placed on the use of classes and other advanced features of the C++ programming language. Topics include object-oriented system design, inheritance, polymorphism, operator overloading, templates, exception handling, abstract data structures, and the Standard Template Library (STL).

Prerequisite: CSCI-155 or permission of the department.


CSCI-230 Levels of Architecture, Languages, and Applications (4) SI/D

This course will teach the student about the various levels and languages that make up a computer's architecture. A computer's digital logic and micro architecture and operating system levels will be examined. This includes the study of a machine's instruction set and/or assembly language. Students will be required to develop applications, either for a Java Virtual Machine and/or by using an assembly language.

Prerequisites: CSCI-155.


CSCI-240 Data Structures and Algorithms (4) SII/D

This course will teach the student to use the classical abstract data structures (including linked lists, stacks, queues, and trees). These tend to play important roles in almost all large/important software systems. The student will also study sophisticated algorithms, many of which rely heavily on recursion, and learn how to measure and compare their computational complexity. These include, for instance, advanced searching and sorting techniques. Other topics include the role and the use of the containers and algorithms in the Standard Template Library (STL).

Prerequisite: CSCI-156.


CSCI-310 Graphical User Interfaces (4) SII/D

A survey of some of the more modern popular programming languages, libraries, and software development tools that are used to implement programs featuring graphical user interfaces. Fundamental programming skills, and understanding of the object-oriented programming paradigm are prerequisite. Students will design and implement programs in languages that feature object-oriented interface components.

Prerequisite:CSCI-156, or permission of the department.


CSCI-340 Computer Algorithms (4) D

This course is an introduction to the theory of computer algorithms. We will examine different types of computer algorithms, such as divide-and-conquer, greedy, backtracking, and dynamic programming. In addition, we will study the running time and complexity of some computer algorithms.

Prerequisite: CSCI-240 with a grade of C- or better, or permission of the department.


CSCI-350 Programming Languages (4) SI/D

Fundamental topics in this course will include language, syntax, semantics, and software design. This will include the study/ use of state diagrams and BNF grammars. The course will compare and contrast common computers' programming paradigms from this point of view. More emphasis will be placed upon using the object-oriented programming paradigm. Students will construct a large software project.

Prerequisite: CSCI-240.


CSCI-370 Database Systems (4) SII/D

Students will learn the principles of database systems and database design, as well as practical modeling and querying techniques. Emphasis will be placed on the relational approach. Related topics include the E-R Model, schema refinement, SQL programming, Internet databases, file organization and indexing, concurrency, data integrity, and security.

Prerequisite: CSCI-240 or permission of the department.


CSCI-380 Scientific Computing (4) D

This course is an introduction to scientific computing and numerical analysis. It introduces students to interpolation, approximation, and numerical integration. It will present numerical solutions for systems of linear equations, elimination, and iterative methods as well as error analysis. Numerical solutions of initial-value problems for ordinary differential equations also will be examined.

Prerequisite: CSCI-240 with a grade of C- or better, or permission of the department.


CSCI-390 Internet Programming (4) D

The primary focus of this course is Internet Programming. This course will introduce students to different Internet programming languages, such as HTML, Java, and JavaScript, designed for programming on the World Wide Web.

Prerequisite: CSCI-240 with a grade of C- or better, or permission of the department.


CSCI-400 Topics in Computer Science (2-6) D

Special topics in computer science.

Prerequisites and credit hours determined by the instructor/topic.


CSCI-420 Networks and Distributed Computing (4) SII/D

This course is about the design, structure, and use of computer networks. The student will learn about hardware and software used to build computer networks. Topics include parallel computing, messaging, structural alternatives, fault tolerance and reliability, scheduling, communication protocols, and security. Different network architectures will be compared.

Prerequisites: Completion of all 100-, 200-, 300-level courses in the computer science major, or permission of the department.


CSCI-430 Software Engineering (4) D

The student will learn about methods and tools that are commonly used to assist in the development and maintenance of large software systems. Topics include the software life cycle, product documentation, testing methods and strategies, tools (CASE), end-user considerations, software reuse, and project organization. This course involves a major software project in software design, providing a solution(s) to significant problems (posed by corporate partners, if possible). Students, working in teams, will develop system specifications, design documentation, program code, test documentation, and other deliverables.

Prerequisites: Completion of all 100-, 200-, and 300-level courses in the Computer Science major, or permission of the department.


CSCI-450 Computer Graphics (4) SI

This course is an introduction to computer graphics. It will examine two-dimensional graphics methods and transformations. Three-dimensional graphics methods, including transformations, viewing geometry, object modeling, and interactive methods also will be presented.

Prerequisite: CSCI-240 with a grade of C- or better, or permission of the department.


CSCI-460 Artificial Intelligence and Intelligent Systems (4) D

This course is an introduction to artificial intelligence and intelligent systems. The history, definition, and philosophical foundations of the discipline of artificial intelligence will be discussed, and the fundamental concepts in the discipline (such as knowledge representation, searching, and heuristics) will be presented. The myriad uses for artificial intelligence across the Internet and topics including expert systems, active agents, and neural networks also may be explored.

Prerequisite: CSCI-240, or permission of the department.