Computer Science Course Descriptions

CSCI 1044: Programming I
Introduction to the fundamental concepts of programming using an object-oriented language. Topics include: selection, repetition, methods, and problem-solving; introduction to arrays, strings, and simple class design. Includes a laboratory component. Prerequisite: 23 on Math subscore of the ACT or a C or better in MATH 1003. Fall.
CSCI 1064: Programming II
Continues the introduction from CSCI 1044. Concentrates on object-oriented development (encapsulation, aggregation, inheritance, polymorphism, interfaces) and elementary data structures (resizable arrays, linked lists, stacks, queues). Also includes introductions to recursion, algorithm analysis, searching, and sorting. Includes a laboratory component. Prerequisite: CSCI 1044. Spring.
CSCI 2103: Data Structures
Study of ADTs and their common implementations: searchable collections (BSTs and self-balancing trees), priority queues (heaps), maps (hash tables), graphs (adjacency list/matrix). Emphasis on choosing an implementation based on algorithmic analysis and properties of a particular application. Also includes generics, recursion, and advanced sorting. Prerequisite: CSCI 1064, MATH 2073. Fall.
CSCI 2113: Internet Development
This course surveys the many technologies that are used to program multi-tiered, client/server, database-intensive, Web-based applications. Prerequisite: CSCI 1044. Spring of odd-numbered years.
CSCI 2123: Current Languages
Introduces students to a recent new language not already covered in the curriculum. May only be taken once for credit. Prerequisite: CSCI 1064. Fall of even-numbered years.
CSCI 2423: Human Computer Interaction
Evaluation of user interfaces, usability engineering, and prototyping. Design of windows, menus, and commands. Response time and feedback. Color, icons, and sound. Internationalization and localization. user interface architectures and APIs. Prerequisite: CSCI 1044. Spring of even-numbered years.
CSCI 3053: Computer Networks
Introduces the structure, implementation, and theoretical underpinnings of computer networking and the applications that have been enabled by that technology. Prerequisite: CSCI 1064 or CSCI 1044 and Junior standing. Spring of odd-numbered years.
CSCI 3093: Computer Organization
Introduces the concept of a computer beginning with the hardware. Topics covered include: microprocessor architecture, memory, busses, interrupts, interface adapters, controllers, direct memory access, and serial communication. Includes the use of assembly language to reinforce topics. Prerequisite: CSCI 1064. Spring of even-numbered years.
CSCI 3463: Software Engineering
Study of the methods used in the design, development, implementation, testing and maintenance of software systems. Students will utilize the team approach in the development and management of software projects and will make use of modern tools to achive these tasks. Prerequisite: CSCI 2103. Fall.
CSCI 3801-3893: Special Studies in Computer Science
Continuation of courses offered on a regular basis or areas of computer science not covered in the regular curriculum. Prerequisite: Consent of instructor. On Demand.
CSCI 4023: Programming Languages
Comparison of the organization and structure of procedural, object-oriented, functional, declarative, and scripting languages. Additional topics will include language translation, abstraction mechanisms, language design, and semantics. Prerequisite: CSCI 2103. Spring.
CSCI 4033: Database Management Systems
Introduces the concepts, techniques, and management of databases and Database Management Systems (DBMS). Topics include relational databases, normalization, indexing, and transaction management. Prerequisite: CSCI 2103. Spring of odd-numbered years.
CSCI 4043: Algorithm Design and Analysis
Introduces formal techniques to support the design and analysis of algorithms, focusing on both the underlying mathematical theory and practical considerations of efficiency. Prerequisite: CSCI 2103. Spring.
CSCI 4083: Current Topics
Examination of topics, tools, and/or methodologies that have become significant forces in the field and are not covered by other courses in the curriculum. May be taken twice for credit. Prerequisite: Senior status or consent of instructor. Fall of odd-numbered years.
CSCI 4103: Senior Capstone
This course will engage students in research outside of their previous coursework experience. The outcome of this course will be either a project or a paper of sufficient quality to be published or presented at a conference. Prerequisite: Senior standing and/or consent of instructor. Spring.
CSCI 4341-4342: Laboratory Peer Instructor
Student peer instructors will assist the instructor in the instruction of a laboratory course. Peer instructors will engage in individual and small group instruction during laboratory, will be prepared to answer questions related to weekly lab exercises, and may assist in the preparation, administration, and grading of lab assignments and exams. Student peer instructors may be required to design a laboratory exercise and/or create exam questions. A limit of two hours of peer instructor credit may be applied to the requirements for a major or minor. Prerequisite: Permission of instructor. On Demand.
CSCI 4801-4893: Special Studies in Computer Science
Continuation of courses offered on a regular basis or areas of computer science not covered in the regular curriculum. Prerequisite: Consent of instructor. On Demand.