Computer Science

Professor John Nichols, Chair, Division of Mathematics and Computer Science

The Major in Computer Science consists of 54 hours in Computer Science and the related field of Mathematics. Courses required in Computer Science are 111, 112, 221, 231, 241, 251, 312, 313, 321, 349, 351-352, 381 and 399. Related course are Mathematics are 125, 225, 232, and either 321or 326.

The Major in Computer Science/Business consists of 54/55 hours. Courses required are Computer Science 111, 112, 221, 231, 241, 351-352, 399 and three courses selected from 251, 312, 313, 321, 349, and 381; Mathematics 125, Mathematics 225 or 232; Economics 201; Business 201, 215, 344, and 401. The courses in Business and Economics are described under the respective departmental listings. A student may not major in Computer Science/Business and minor in either Computer Science or Business.

The Minor in Computer Science requires a minimum of 22 credit hours in computer science and mathematics. Courses required in Computer Science are 111, 112, 221, either 231 or 251, and one three-credit hour 300-level course. Courses required in Mathematics are 125, and 225 or 232.

Course Descriptions

111. Introduction to Computer Science I
3 credit hours
Prerequisite: Mathematics 105 or satisfactory performance on the mathematics placement examination
An introduction to computer science and structured programming with emphasis on program design and implementation, debugging, documentation, and programming projects. Laboratory work supplements and expands lecture topics and offers supervised practice using programming.
112. Introduction to Computer Science II
3 credit hours
Prerequisite: Computer Science 111
A continuation of Computer Science 111 with emphasis on advanced programming features. Laboratory work supplements and expands lecture topics and offers supervised practice using programming.
221. Computer Architecture
3 credit hours
Prerequisite: Computer Science 111
Introduction to computer organization and architecture. Hardware components, representation of data, digital logic, machine language instructions, and microprogramming.
231. Discrete Structures
3 credit hours
Prerequisites: Computer Science 112 and Mathematics 225 or 232
Discrete structures useful in computer science. Topics will include logic and proof, recurrence relations, sets, graphs, and an introduction to the theory of formal languages and automata.
241. Data Structures
3 credit hours
Prerequisite: Computer Science 112 and 231
Techniques for programmatically representing data structures such as stacks, queues, trees, graphs, matrices, heaps, multiply linked lists, recursion, and has tables.
251. Graphical User Interfaces
3 credit hours
Prerequisite or co-requisite: Computer Science 112
A course in the design and layout of graphical user interfaces including menus, dialogs, controls such as checkboxes, input boxes, and radio buttons, fonts and colors, and event-driven programming.
312. Algorithm Design and Analysis
3 credit hours
Prerequisite: Computer Science 241
A study of algorithms and their complexity, including sorting, searching, pattern matching, combinatorics, backtracking, dynamic programming, and approximations and heuristics for NP-complete problems.
313. Database Management Systems
3 credit hours
Prerequisite: Computer Science 311
A course in the design, function, and application of database management systems.
321. Introduction to Systems
3 credit hours
Prerequisite: Computer Science 221
An introduction to operating systems concepts, including processes and threads, concurrency, processor scheduling, memory management, security, and performance, as well as an introduction to networking, web technologies, and systems software.
326. Numerical Analysis
3 credit hours
Prerequisites: Mathematics 225 and Mathematics 299 or permission of the instructor
An introduction to the techniques of obtaining numerical solutions on a computer. Topics include roots of equations, numerical integration, least squares, simultaneous equations, and curve fitting.
349. Selected Topics in Computer Science
3 credit hours
Prerequisites: Computer Science 221, 231 and permission of the instructor
Topics selected from such areas as Java games programming, artificial intelligence, theory of computing, information management, software engineering, networking, computer graphics, and computational science, depending on current faculty and student interests.
351-352. Senior Study
6 credit hours
Prerequisites: FRS 140, English Proficiency Exam, junior standing; at least 15 hours in computer science courses, including 3 hours at the 300-level, that satisfy requirements for the Major in Computer Science; and 7 hours in mathematics courses that satisfy requirements for the Major in Mathematics
The Senior Study requirement is fulfilled with this two-course sequence. The study may take the form of a thesis or a significant computer science-related project. Both involve individual study and research under the guidance of a faculty supervisor and culminate in a formal paper that follows a division-specific format.
381. Theory of Computation
3 credit hours
Prerequisite: Computer Science 231
A study of theoretical models of computing, including finite state machines, pushdown automata, context-free grammars, and Turing machines. The concepts of decidability, complexity theory, and NP-Completeness will be studied in depth.
399. Research Seminar
1 credit hour
Prerequisite: Junior standing
Professional activities in the field of computer science. Topics include professional and ethical standards, research techniques, professional organizations and their literature, techniques for oral presentations, and current trends in professional computing.