Studies in Computer Science give thorough grounding in the principles of computer software design and development. A student who follows the Computer Science course of study is prepared for graduate studies as well as for positions in software development, systems analysis, and computer systems management. The Information Systems option is less theoretical than the Computer Science major. Many Information Systems majors choose to study also in a business field to strengthen their skills and to meet personal goals.

Major in Computer Science

(B.S. degree) Thirty-three hours in Computer Science including CSC 115, 215, 304, 312, 315, 350, and 450; at least three hours chosen from CSC 430 or 435; and nine additional hours chosen from CSC 270, 327, 337, 405, 420, 430 or 435, 440, or 470; fifteen hours of allied courses including MAT 125, 225, 301, 310, 325. Only one hour of CSC 270 may count towards the major. Total hours required: 48.

Minor in Computer Science

Eighteen hours in Computer Science including CSC 115, 215, 304, and nine additional hours in Computer Science numbered 300 or above; one three-hour allied course, MAT 301. Total hours required: 21. See description for Computational Sciences and Information Systems majors. Additionally, the department participates in the (Business Administration/ Management Information Systems) interdisciplinary major. CSC 107 fulfills the mathematics general education curriculum requirement.

Course Offerings

107. Introduction to Computer Science. (3 hours) Introduction to computer science including introductory programming in a high level language, mathematics and computing, and the role and issues of computing in society. Fall and Spring

115. Computer Science I. (3 hours) Developing algorithms to solve problems and using the computer as a tool to implement algorithms. Study of a modern programming language and the paradigm it represents. Topics such as control structures, functions, pointers, sorting and searching. Prior programming experience and/or advanced math (e.g., AP Calculus) experience is recommended. Students with no such background may wish to take CSC 107 first. Fall and Spring

215. Computer Science II. (3 hours) Introduction to data structures such as linked lists, stacks, queues, trees, more general graphs and heaps using static and dynamic representations. Use of multi-dimensional arrays and recursion. Prerequisite: CSC 115. Fall and Spring

270. Topics in Programming. (.5-3 hours) An opportunity for students to explore programming languages and programming methods not covered in regular courses. Only one hour of CSC 270 may be counted towards a major or minor. Prerequisite: CSC 215 and consent of instructor.

280. Science Careers Seminar. (2 hours) An interdisciplinary seminar in STEM (science, technology, engineering and mathematics) disciplines that will introduce students interested in scientific research to an array of professions and professionals in these fields. This introduction will emphasize comprehension and analysis of published scientific research and provide students with the opportunity to meet the science professional who produced the work. Prerequisites: One science or mathematics course for majors, sophomore or junior standing, and approval of the instructor. Fall

304. Design and Analysis of Algorithms. (3 hours) Study of algorithms such as advanced searching and sorting algorithms, graph and numerical algorithms, hashing, pattern matching, and others. Complexity and recursion. Prerequisite: CSC 215 and MAT 301. Spring

312. Computer Organization and Architecture. (3 hours) Principles of computer organization and architecture. Topics include: number representation, assembly language for an exemplary digital processor, and elements of digital design, including gate level combinational logic. Corequisite: MAT 301 and Prerequisite CSC 215. Fall

315. Advanced Programming. (3 hours) Study of and experience with larger programming efforts. Topics such as event-driven programming, including programs with graphic user interfaces, and building static and dynamic libraries. Prerequisite: CSC 215. Fall

327. Introduction to Numerical Methods. (3 hours) An introduction to the analysis and implementation of numerical methods. Topics include number representation and errors, locating roots of equations, interpolation, numerical differentiation, numerical integration, numerical solution of linear systems of equations, approximation by spline functions, numerical solution of differential equations, and the method of least squares. Prerequisites: CSC115 and MAT301. Odd Springs

337. High Performance Computing. (3 hours) An introduction to High Performance Computing. Topics include history of supercomputing, study of parallel architectures, Flynn’s taxonomy, Amdahl’s law, performance analysis, shared memory paradigm versus message passing paradigm, design and implementation of parallel algorithms, scientific computing applications, scientific visualization. Even Springs

350. Perspectives on Computing. (3 hours) Social, legal, and ethical issues related to computing and information technology. Prerequisite: Junior standing in CSC, IFS, MIS, or CPS. Spring

405. Database Management. (3 hours) Concepts and structures necessary to design and implement a database system, including file and data organization, data models and a study of a specific database management system. Prerequisite: CSC 215. Odd Falls

420. Programming Language Design and Implementation. (3 hours) A study of the concepts involved in the design and use of high level programming languages, including recursion, list and string processing and multi-programming. Introduction to a number of important languages. Prerequisite: CSC 215 or consent of instructor. Even Springs

430. Systems Programming. (3 hours) Emphasis on the study of modern operating systems and systems programming, with some coverage of network programming. Topics may include process scheduling, memory management, shells, input/output, and communication protocols. Prerequisite: CSC 304 or consent of instructor. Even Springs

435. Theory and Construction of Compilers. (3 hours) A study of ideas and techniques involved in the writing of a compiler for a high level language, including grammars, finite state machines, top-down and bottom-up parsing, and symbol tables. Prerequisite: CSC 304. Odd Springs

440. Independent Study. (1-3 hours)

450. Software Engineering Seminar. (3 hours) Senior capstone course in computing. Concepts and methods of software engineering and systems analysis. Semester-long project. Prerequisite: Senior standing in CSC, IFS, MIS and for CSC majors – CSC 430 or 435, for IFS and MIS majors – CSC 405. Spring

470. Topics in Computer Science. (1-3 hours)