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 System 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, 125, 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, 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, 125, 215, 304, and eight additional hours in Computer Science numbered 300 or above; one three-hour allied course, MAT 301. Total hours required: 21.

Additionally, the department participates in the (Business Administration/ Management Information Systems) interdisciplinary major.

CSC 107 fulfills the mathematics general education curriculum requirement.

Courses

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. Concurrent: CSC 125. Fall and Spring

125. Computer Science I Lab. (1 hour) Laboratory experience for CSC 115 consisting of a mixture of specific assignments and supervised open-ended exploration of topics covered in CSC 115. Concurrent: CSC 115. 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, 125. 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.

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. Prerequisite: MAT 301 and CSC 115. 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

350. Perspectives on Computing. (2 hours) History of technical development of modern computers combined with reflection on the interaction of technical capabilities and social issues. The role and codes of conduct and ethics of various professional bodies. Prerequisite: Junior standing in CSC, IFS, MIS. 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)