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.
The various disciplines represented within the Department of Mathematics, Physics and Computer Science are united by their reliance upon:
- methods for discovering and demonstrating patterns, and for constructing structures that exhibit, unify and illuminate these patterns;
- application of these structures to model a wide variety of phenomena in mathematics and the sciences;
- precise language as a means to express patterns and describe structures. Accordingly, graduates of the Math/Physics/Computer Science department will
- demonstrate knowledge of basic content appropriate to the chosen major;
- communicate precisely and effectively on quantitative matters;
- perform basic modeling and to interpret the results in terms of the phenomena being modeled;
- read quantitative material, interpret correctly what has been read, and apply it correctly.
(B.S. degree) Forty-eight hours required. 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.
Twenty-one hours required. 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.
For the description of the Computational Sciences and Information Systems majors, please see Computational Sciences and Information Systems.. Additionally, the department participates in the Business Administration/ Management Information Systems interdisciplinary major.
CSC 107 fulfills the Mathematics Foundations and Core requirement.
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
208. 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 instructor. Fall
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. Prerequisites: CSC 215 and consent of instructor. As needed
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. Prerequisites: 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 315. 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: CSC 115 and MAT 301. 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. Prerequisite: CSC 304. Even Springs
350. Perspectives on Computing. (3 hours) Social, legal, and ethical issues related to computing and information technology. Prerequisites: 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) As needed
450. Software Engineering Seminar. (3 hours) Senior capstone course in computing. Concepts and methods of software engineering and systems analysis. Semester-long project. Prerequisites: 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) As needed