Computer Science (CSci)

T. O'Neil (Chair), Anderson, Hexmoor, Jo,

Panda, Valeroso, and Wiggen

The underlying goal of the Department of Computer Science is to provide up-to-date, quality instruction in its undergraduate and graduate programs. In support of this goal, a curriculum has been developed which encourages a formal, abstract, theoretical approach to the study of computer science while providing students with experience on state-of-the-art equipment. A number of computing environments, encompassing personal, mid-range, and mainframe machines, are available to students. The degree programs are designed to provide a background of professional education for careers in business, science, government, and industry, and to furnish a strong foundation for graduate study in computer science.

The department offers a Bachelor of Science with a Major in Computer Science and a Bachelor of Arts with a Major in Computer Science through the College of Arts and Sciences. A minor in computer science is also available.

The B.S. program provides the strongest mathematical and scientific background. It is recommended for students who intend to pursue graduate studies or to seek employment involving technical or scientific applications of computing. The B.S. degree is accredited by the Computer Science Accreditation Commission (CSAC) of the Computing Sciences Accreditation Board (CSAB), a specialized accrediting body recognized by the Council on Postsecondary Accreditation (COPA) and the U.S. Department of Education.

The B.A. program has more flexibility with fewer requirements relating to science and mathematics, but with additional requirements for courses in the humanities. This degree program is recommended for students seeking a broader-based liberal arts education.

A minor in computer science is available to students who choose to concentrate their studies in an affiliated area. In addition, several courses are offered to provide the necessary basic knowledge of computer technology and computer programming for those students wishing to use the computer as a tool for study and research in other disciplines.

College of Arts and Sciences

B.S. WITH MAJOR IN COMPUTER SCIENCE

Required 125 credits (36 of which must be numbered 300 or above, and 60 of which must be from a 4 year institution) including:

I. General Education Requirements. See pages 27-31.

II. College of Arts and Sciences Requirements. See page 39.

III. Courses from computer science as follows:

CSci 160. Computer Science I (4)

CSci 161 Computer Science II (4)

CSci 242. Algorithms and Data Structures. .(3)

CSci 250 Computer Organization and Programming (4)

CSci 289 Social Implications of Computer Technology (3)

CSci 351 Introduction to File Processing. (3)

CSci 365. Organization of Programming Languages. .(3)

CSci 370 Computer Architecture (3)

CSci 435 Formal Languages and Automata. (3)

CSci 451 Operating Systems I (3)

CSci Electives*. (12)

*All Computer Science electives must be at or above the 200 level. CSci 260 and 397 may be applied toward this major in Computer Science, but only up to a combined maximum of 3 hours. CSci 399, 491, and 494 may be applied toward this major in Computer Science, but only up to a combined maximum of three hours..

IV. Courses from other departments as follows:

Comm 110 Fundamentals of Public Speaking (3)

EE 201 Introduction to Digital Electronics (1)

EE 202 Electrical Engineering Laboratory (1)

Math 208 Discrete Mathematics (3)

Math 165, 166 Calculus I and II. .(8)

Approved math elective. (3)

Approved probability/statistics elective (3)

Approved 2-semester laboratory science sequence (8)

2 approved courses in science or quantitative methods. (6-8)

B.A. WITH MAJOR IN COMPUTER SCIENCE

Required 125 hours (36 of which must be numbered 300 or above, and 60 of which must be from a 4 year institution) including:

I. General Education Requirements. See pages 27-31.

II. College of Arts and Sciences Requirements. See page 39.

III. Courses from Computer Science as follows:

CSci 160. Computer Science I (4)

CSci 161 Computer Science II (4)

CSci 242. Algorithms and Data Structures. .(3)

CSci 250 Computer Organization and Programming (4)

CSci 370 Computer Architecture (3)

CSci 435 Formal Languages and Automata (3)

or

CSci 465. Principles of Translation. .(3)

CSci 451 Operating Systems I (3)

CSci Electives*. (12)

* Electives may be selected from CSci 260 (at most 3 hours), CSci 289, CSci 397 (at most 3 hours) and any other Computer Science courses numbered 300 or above.

IV. Courses from other departments as follows:

Level IV proficiency in a language other than English

A minor or a second major

EE 201 Introduction to Digital Electronics (1)

EE 202 Electrical Engineering Laboratory (1)

Math 208 Discrete Mathematics (3)

Math 165, 166 Calculus I & Calculus II

or

Math 146 Applied Calculus I (3-8)

Approved probability/statistics elective (3)

MINOR IN COMPUTER SCIENCE

Courses from Computer Science as follows:

CSci 160. Computer Science I (4)

CSci 161 Computer Science II (4)

CSci 250. Computer Organization and Programming (4)

CSci electives* (9)

* All 9 credits hours of Computer Science electives must be 200 level or above, and at least 3 credit hours must be 300 level or above.

Courses

101. Introduction to Computers. 3 credits. Recommended corequisite: CSci 101L. An overview of the fundamental concepts and applications of computer science. Topics include data storage, hardware, operating systems, and programming principles. F,S

101L. Introduction to Computers Laboratory. 1 credit. Recommended corequisite: CSci 101. An introductory laboratory course to complement CSci 101. Activities will include hands-on experience with operating systems and application software (including word processors, spreadsheets, and databases). S/U grading only. F,S

120. Computer Programming I. (CCN) 3 credits. An introduction to computer programming in a high-level language, with emphasis on problem solving and logical thinking. Students learn to design, implement, test, and debug programs for small-scale problems using elementary data types and control structures. F,S

160. Computer Science I. 4 credits. An introduction to computer science, with problem solving, algorithm development, and structured programming in a high-level language. Emphasis on learning how to design, code, debug, and document programs, using techniques of good programming style. Includes laboratory. Students may not take CSci 120 after successfully completing CSci 160. F,S

161. Computer Science II. 4 credits. Prerequisites: CSci 160 and Math 103. Concurrent enrollment in Math 208 is recommended. A broadening of foundations for computer science with advanced concepts in computer programming. Includes an introduction to data structures, analysis of algorithms, and the theory of computation. Includes laboratory. A student may not receive credit for both CSci 161 and CSci 111. F,S

170. Computer Programming II. (CCN) 3 credits. Prerequisite: CSci 120. Advanced techniques in computer programming using a high-level language. Topics include the use of recursion, pointers, and fundamental data structures in developing small to medium-scale programs. A student may not receive credit for both CSci 170 and CSci 161. Once a year.

242. Algorithms and Data Structures. 3 credits. Prerequisites: CSci 161 and Math 208. Abstract data types (ADTs) and alternatives for implementation of lists, arrays, sets, trees, and graphs. Dynamic and static data structures. Time and space analysis of algorithms for initializing, accessing, searching, sorting, and traversing. F,S

250. Assembly Language Programming. 4 credits. Prerequisite: CSci 160 or knowledge of one high-level language. Computer structure, machine representation of numbers and characters, instruction codes and assembly systems. Includes laboratory. F,S

260. Advanced Programming Languages. 1-3 credits. Prerequisite: CSci 170 or CSci 161 or consent of instructor. Programming in a specific high-level language for students who are already proficient at programming in another high-level language. Course may be repeated for different languages. A maximum of 3 credits may apply to a Computer Science major. A student may not receive credit for both CSci 260 and a 100-level programming course in the same language. On demand.

289. Social Implications of Computer Technology. 3 credits. CSci 120 or 160. An introduction to the effects of computer technology on society and individuals and to ethical problems faced by computer professionals. Topics covered include privacy, the nature of work, centralization versus decentralization and the need for human factors analysis in the development of a new computer system. S

327. Data Communications. 3 credits. Prerequisites: CSci 250 and Math 208. An introduction to the concepts of data transmission, communication hardware and protocols, communication software and the design, performance and management of computer networks. F

351. Introduction to File Processing. 3 credits. Prerequisite: CSci 242, CSci 250. Techniques of using mass storage devices. Sequential, random and key-accessed files. B-trees and inverted file structures. S

365. Organization of Programming Languages. 3 credits. Prerequisite: CSci 242 & 250. Compile and run time requirements of programming languages, parameter passing and value binding techniques. Vector and stack processing. S

370. Computer Architecture. 3 credits. Prerequisite: CSci 250, EE 201, 202. Introduction to hardware methodologies and software extensions to hardware in computers. Some topics on hardware and software selection will be discussed. S

384. Artificial Intelligence. 3 credits. Prerequisite: CSci 242. A survey of the applications and techniques of artificial intelligence. Topics include problem solving paradigms, tree searching, rule-based systems, theorem proving, knowledge representation, natural language processing, image processing, and computer learning. On demand.

397. Cooperative Education. (CCN) 1-8 credits repeatable to 18. Prerequisite: 15 completed credits in CSci including CSci 242, in addition to standard co-op requirements. A maximum of 3 cooperative education credits may be applied against requirements for a CSci major. A practical work experience with an employer closely associated with the student's academic area. Arranged by mutual agreement among student, department, and employer. S-U grading only. F,S,SS

399. Topics in Computer Science. (CCN) 1-3 credits. Prerequisite: Consent of instructor. Selected topics in Computer Science which allow the students to study specialized subjects. 3 credits may apply to the Computer Science major and 12 credits to degree requirements. F,S

411. Information Systems. 3 credits. Prerequisite: CSci 351. Representation, storage, and processing of information. Design of an information system to solve a specific problem. On Demand.

427. Advanced Data Communications. 3 credits. Prerequisite: CSci 327. Analysis of existing and future data communications technologies and protocols, including the modeling of realistic networked environments an the analysis of their performance. On Demand.

435. Formal Languages and Automata. 3 credits. Prerequisite: CSci 242. An introduction to the Chomsky formal language hierarchy and the automata which correspond to each of the language classes. F

445. Mathematical Modeling and Simulation. 3 credits. Prerequisites: CSci 161 or 170, Math 166 and a statistics course. A study of various mathematical applications for digital computers, including the modeling, simulation and interpretation of the solution of complex systems. S

446. Computer Graphics. 3 credits. Prerequisites: CSci 242 and Math 166. Introduction to computer graphics hardware and software. Topics include display technologies, clipping, three-dimensional representations, shading, and color. On Demand.

451. Operating Systems I. 3 credits. Prerequisite: CSci 242. Resource allocation, multiprogramming, virtual systems, operating system kernels, monitors, supervisors. F

452. Operating Systems II. 3 credits. Prerequisite: CSci 451. A study of the implementation of operating systems and parts of operating systems, and development of system software. S

455. Database Management Systems. 3 credits. Prerequisite: CSci 351. Database concepts, database administration, database design, and database performance, including the partial design of a DBMS application. F

463. Software Engineering. 3 credits. Prerequisites: CSci 351. This course teaches software engineering principles and techniques used in the specification, design, implementation, verification and maintenance of large-scale software systems. Major software development methodologies are reviewed. As development team members, students participate in a group project involving the production or revision of a complex software product. On Demand.

465. Principles of Translation. 3 credits. Prerequisite: CSci 365. Techniques for automatic translation of high-level languages to executable code. F

467. Introduction to Autonomous Mobile Robotics. 3 credits. Prerequisite: CSci 242. This course will introduce the basics of mobile robotics research with a strong artificial intelligence and empirical slant. Areas covered will be sensors, actuators, movement, navigation, mapping, localizaiton, control architectures and learning methodologies. On Demand.

491. Seminars in Computer Science. (CCN) 1 credit. May be repeated (3 credits maximum). Prerequisite: consent of instructor. A course for advanced students. S-U grading only. F,S

494. Special Projects in Computer Science. (CCN) 1-3 credits varying with the choice of project. May be repeated (6 credits maximum). Prerequisite: consent of instructor. A course for advanced students. F,S