Course Descriptions for
Computer Science

Course Descriptions


CSCI 100, INTRODUCTION TO COMPUTING, 3 credits
An introduction to the fundamental concepts of computing. Designed to develop the student’s understanding of how the computer works, its capabilities, limitations, and applications. Topics include types of computers, the central processing unit, data representation and storage, operating systems, applications software, and networks. To give life to these concepts, students will be introduced in laboratory sessions to specific applications software for word processing and data storage and manipulation. Prerequisite: None.

CSCI 102, FRESHMAN SEMINAR, 0.5 credits.

This is a seminar course that will provide opportunities to enhance student learning and exposure via invited speakers, discussion groups, demonstrations, laboratory assistance, and outside investigations.

CSCI 104, EXPLORING COMPUTER SCIENCE, 2 credits.

This is a hands-on introductory course for students with a strong interest in computer science. Students will be exposed to the various aspects of both theoretical and applied computer science through laboratory exercises. Course content will illuminate the interplay between logic, mathematics, engineering, and management principles in computer science. Topics will include introductions to computer architecture, operating systems, programming constructs, networks, and distributed systems. Basic mathematical topics such as number representation, algebraic rules, and logic will also be included. Computer-related career options will be explored through an introduction to the various computer science sub-disciplines and applications of computers in science, medicine, industry, and business. Prerequisite: Computer Science major or consent of Instructor.

CSCI 110, INTRODUCTION TO COMPUTER SCIENCE I, 4 credits.
Three hours of lecture and 2 hours lab. This course provides an introduction to the discipline of computing, emphasizing problem-solving techniques, algorithm development, and software design concepts and their realization as computer programs. Topics will include control structures, iteration, recursion, data types, and procedural abstraction and their implementation in a high-level language. Prerequisite: Calculus eligibility. Co-requisite: Math 130. Students should enroll concurrently in the CSCI 110-L section.

CSCI 110-L, INTRODUCTION TO COMPUTER SCIENCE I LABORATORY “Not for credit”
Closely coordinated experiences in a closed, supervised laboratory to accompany CSCI 110, in which the student should enroll concurrently.

CSCI 120, INTRODUCTION TO COMPUTER SCIENCE II, 4 credits
Three hours of lecture and 2 hours lab. Software design techniques needed for solving larger problems are introduced, including abstract data types, requirements and specifications, complexity analysis, and file organizations. The course includes an introduction to basic data structures (stacks, queues, trees, and graphs) and transformations (searching and sorting). The entire problem-solving procedure from design to debugging and validation is described. Prerequisite: Students should enroll concurrently in the CSCI 120-L section.

CSCI 120-L, INTRODUCTION TO COMPUTER SCIENCE II LABORATORY, “Not for credit.”
Closely coordinated experiences in a closed, supervised laboratory to accompany CSCI 120, in which the student should enroll concurrently.

CSCI 201-202, SOPHOMORE SEMINAR, 0.5 credit/semester
The seminar course will provide opportunities to enhance student learning and exposure via invited speakers, discussion groups, demonstrations, laboratory assistance, and outside investigation. To be taken each semester.

CSCI 230, INTRODUCTION TO COMPUTER ARCHITECTURE, 4 credits
Three hours lecture and two hours of lab each week. Emphasizes the fundamentals of computer organization and machine architecture, using a layered approach. Topics include data representation, the machine language execution cycle, microprogramming, addressing modes, and symbolic assembly level of language. Interconnection structures, memory, I/O, and fundamental notions of an operating system. Coordinated laboratory exercises allow students to experiment with program behavior and machine elements at each level. Prerequisites: CSCI 120, Math 120. Students should enroll concurrently in the CSCI 230-L section.

CSCI 241, DATA STRUCTURES AND ALGORITHMS. 4 credits
This course continues the study of data structures and the design and analysis of algorithms. It will include an introduction to algorithm design techniques, including greedy algorithms and divide and conquer. Prerequisites: CSCI 120, Math 115.

CSCI 261, OPERATING SYSTEMS, 4 credits
Introduction to major concepts in the design of operating systems, including process management, storage management, protection and security, and distributed systems. Case studies and team projects are used to develop parts of a modern operating system. Prerequisites: CSCI 230, CSCI 241.

CSCI 282, PROGRAMMING LANGUAGES, 4 credits
Fundamental concepts and principles underlying various programming paradigms will be discussed. Included will be data types, run-time behavior or programs, data control, sequence control, and semantics. The paradigms and their languages include procedural, functional, logic and object-oriented. Prerequisites: CSCI 230, CSCI 241.

CSCI 292, THEORY OF COMPUTATION, 4 credits
Formal models of computation such as finite state automata, pushdown automata, and Turing machines will be studied, along with the corresponding elements of formal languages (including regular expressions, context-free languages, and recursively enumerable languages). These models will provide a mathematical basis for the study of complexity classes, computability, and undecidability. Prerequisites: CSCI 241, Math 115.

CSCI 301-302, JUNIOR SEMINAR, 0.5 credit/semester
The seminar course will provide opportunities to enhance student learning and exposure via invited speakers, discussion groups, demonstrations, laboratory assistance, and outside investigations. To be taken each semester.

CSCI 312, DATABASE MANAGEMENT, 4 credits
Principles, tools, and techniques of database design, with emphasis on concepts and structures necessary to design and implement a database management system. The relational, network, and hierarchical models of database design along with relational algebras, data independence, logical and physical views, directory maintenance, and query languages will be studied. Prerequisite: CSCI 241.

CSCI 320, NUMERICAL ANALYSIS, 4 credits
Programming for numerical calculations. Topics include round-off error, approximation and interpolation, finite differences, numerical differentiation and integration, curve fitting, direct and interactive solution of systems of linear equations, ordinary differential equations and nonlinear equations. Prerequisites: Math 130, CSCI 120.

CSCI 360, COMPUTER NETWORKS AND DISTRIBUTED SYSTEMS, 4 credits
In-depth study of design principles and protocols for computer and communication networks based on the OSI layered model. Transmission of bits on optical fibers and transmission lines, data link protocols, local area networks, Ethernet, addressing, routing, flow control, TCP/IP networks, and network applications. Prerequisite: CSCI 230 or consent of instructor.

CSCI 370, SOFTWARE ENGINEERING, 4 credits
Introduction to the basic concepts and major issues of software engineering. A continued emphasis on problem-solving concepts is integrated with a treatment of the software life cycle, requirements, specification and verification and validation issues. The students working in teams will design, implement, and present a substantial software project. Prerequisite: CSCI 241 and consent of instructor.

CSCI 390, SPECIAL TOPICS, 3-4 credits
Lectures on topics of current interest. Topics vary according to the needs and interests of students and faculty. Suggested topics include Artificial Intelligence, Expert Systems and Robotics, Compiler Design, Networks, and Computer Graphics. Prerequisite: Consent of Instructor. May be taken twice, maximum.

CSCI 398, INDEPENDENT STUDY, 1-4 credits
Independent study is available for motivated students who wish to pursue the study of a topic not covered by the normal course offerings in the University. Arrangements for independent study may be made by means of a written proposal, signed and approved by the instructor, the department chair, and the Provost; to be filed with the Registrar at the time of registration. Topics suggested for independent study include, but are not limited to: UNIX system administration, graph theory, performance evaluation, and network application programming.

CSCI 410, SENIOR SEMINAR, 2 credits
Presentation of student research. Prerequisite: Senior standing or consent of Department Chair.