The study of computer science offers a student the opportunity to develop problem solving facility and helps develop skills which have broad utility in theory and application and are amongst the most sought after by employers.
The abstraction of real-world problems, the construction of algorithms to display and transform data, and the theory of computation are all central concerns of computer science.
The minor in computer science can be effectively combined with any major.
Whether studied with professional goals in mind, to supplement the study of any other field, or just for interest’s sake, computer science offers a powerful way to approach many challenging problems. When combined with selected courses in mathematics and physics, the minor will help prepare the student for graduate work in computer science and related fields.
An introduction to computers and computer programming. Emphasis will be placed on problem-solving with examples and exercises from social, natural, and mathematical sciences. Techniques of flowcharting and structured programming, development of algorithms, and types of computer hardware will also be discussed. Intended for students with no previous programming experience. Hours credit: 3. A student may not receive credit for this course after taking CSCI 156 or its equivalent.
A continuation of Computer Science 151. Emphasis on top-down programming using methods. Topics include user-defined classes and advanced data types, arrays, recursion, algorithms for sorting and searching, exception handling, advanced GUIs and graphics, and embedding Java applets into HTML documents. Hours credit: 3. Prerequisite: CSCI 151 or the equivalent.
This course covers beginning and intermediate programing in the Matlab and Labview computer languages. Students will learn the basics of computer programming as well as the specifics of programing in Matlab and Labview including data input/output, code structuring, coding best practices and limitations, data acquisition and beginning GUI development. This course is project based with projects taken from real world computing problems. Hours credit: 3. Prerequisite: MATH 149. Alternate years.
Structures for the representation of data are considered: vectors, lists, queues, trees, heaps, hash tables, maps, and graphs. This course presents the logic behind choosing a particular structure, and the associated algorithms for using each structure. Fundamental algorithms for solving problems, including sorting, searching and graph algorithms are developed. General design, analysis and the study of complexity are emphasized. Hours credit: 4. Prerequisite: CSCI 156.
Introduction to internal computer architecture including the instruction cycle, parts of the CPU, memory hierarchy including caching, pipelining, exception handling, and issues of multiprocessing. Implementation of assembly language programs using sample architectures. Principles of translating high-level languages. Credit hours: 3. Pre- or co-requisites: CSCI 251 and MATH 149 or equivalent. Alternate years: offered second semester 2020-2021.
Design and implementation of operating systems. Mutual exclusion, concurrency, deadlock, process scheduling, memory management, and files systems. Hours credit: 3. Prerequisite CSCI 156. Alternate years.
This course provides an in-depth study of steps in the software-development process: user requirements, specifications, design, implementation, testing, maintenance, documentation, and management. Students will develop the facility to apply the general principles to new problems. Hours credit: 3. Prerequisite CSCI 251. Alternate years.
Hours credit: 3. One-time only.
Senior Seminar II is a capstone class for the Computer Science and Mathematics Major. Students will review the major principles in computer science, and create and implement a research project. Projects are tailored to student interests. The course will help prepare students for rigorous graduate study or a career in the computer science field. Credit hours: 1.5. Pre- or co-requisites: CSCI 251 or MATH 360 or equivalent.