Computer Science Minor
The minor in computer science allows students to combine their study of software development with majors in their desired areas of application, preparing the students for various professional positions that involve computer programming as a component.
Students interested in graduate school in computer science are encouraged to complete a minor in mathematics, including linear algebra and differential equations. Graduate study in analysis of algorithms and the study of computability theory require an advanced understanding of mathematics.
The computer science minor requires a minimum of 20 credit hours.
All prerequisites must be completed prior to enrollment in the following courses.
An introduction to computer science through applications such as media. A major component is programming design and development using a language such as Python or Java. A disciplined approach to problem solving methods and algorithm development will be stressed using top-down design and stepwise refinement. Topics included are syntax and semantics, input and output, control structures, modularity, data types, and object-oriented programming. Recommended for students with previous programming experience or a strong mathematical background (math ACT score of 24 or above).
Prerequisite: CSCI 251 with a grade of C or higher. Students must receive a grade of C or better in the prerequisites. An in-depth study of data structures, including arrays, records, stacks, queues, lists, trees, heaps and hash tables. The study includes the definition, specification, and implementation of these structures, as well as examples of their uses. Also included is an introduction to the internal representation of information.
Prerequisite: CSCI 251. An examination of both web-based and mobile applications. The course covers the design of client-server architectures, client side scripting, user interface design, and application and database interaction.
Choose three (9 hrs.):
Prerequisite: MATH 211; MATH 231; or MATH 236. This course includes propositional logic, induction and recursion, number theory, set theory, relations and functions, graphs and trees, and permutations and combinations.
Prerequisite: CSCI 261 with a grade of C or higher; and MATH 231 or MATH 236 with a grade of C or higher. Students must receive a grade of C or better in the prerequisites. This course examines the design and efficiency of sequential and parallel algorithms. The algorithms studied include sorting and searching, pattern matching, graph algorithms and numerical algorithms. Standard algorithmic paradigms are studied such as divide and conquer, greedy methods and dynamic programming. We will consider the time and space complexity analysis of sequential and parallel algorithms and proofs of algorithm correctness.
Prerequisite: CSCI 251. An introduction to game development. Topics explored in the course include game genres, game concepts, game design principles, the game development process, the actors in the game development process, 2D game design and scripting. This course includes a 2D game development project.
Prerequisites: CSCI 261 and CSCI 277. A detailed examination of secure client-server application development. Topic include data driven applications, database design and access, data transfer, data services and network protocols.
Prerequisite: ARTZ 314, CSCI 152 and CSCI 322. For Computer Science majors and minors, CSCI 261 and CSCI 277. A project-based course in software development. Students will work as members of software development teams. The projects will be conducted following a software development methodology.
Prerequisites: MATH 227 and CSCI 152. An introductory exploration of the data science process, its uses, and its applications. Students will focus on the derivation of actionable knowledge from data using the data science pipeline. Pipeline topics include data acquisition, cleaning of data, transformation of data, analysis of data, and interpretation of data. Analysis of data includes an introduction to both statistical and machine learning techniques. Interpretation of data will include an introduction to data visualization. Additionally, the course will address the role of data science and the implications of its use in our culture, our world, and our individual lives. The course uses a problem-based approach where students will engage with other students and with the course materials.