The Computer Science Department offers majors leading to the bachelor of science or the bachelor of arts degree. Students who wish to pursue either program should consult with the department chair as early as possible to assure an appropriate sequencing of courses. Both the bachelor of science and the bachelor of arts degree programs include programming languages, algorithms and data structures, software methodology and tools, and computer hardware.
This foundation supports further study in numerous advanced courses, such as computer graphics in which students develop interactive graphics packages using equipment in the Graphics Laboratory, digital logic design in which students build their own microcomputer from integrated circuit chips, artificial intelligence in which students learn about computational processes that model human knowledge and reasoning, and software engineering in which students learn to design and to maintain large software projects.
Students who major in computer science are required to take the Major Field Achievement Test in computer science during their senior year. Students are encouraged to participate in the Department’s Undergraduate Research Program where they work closely with a faculty member on a research problem in computer science. Results of students’ work are presented at the local, regional, national, or international level.
Gaining Computer-related Experience
Students may enhance their experience in computer science by participating in the Computer Science Cooperative Program. This program allows students to gain computer-related experience through local businesses and industries. Those interested in this program should consult with the department chair.
Computer Science Majors
Bachelor of Science Degree and Specialized Accreditation
The bachelor of science degree program in Computer Science is accredited by the Computing Accreditation Commission of the Computer Sciences Accreditation Board, a specialized accrediting body recognized by the Council for Higher Education Accreditation. Students who complete this program will obtain a significant degree of technical competence and breadth of exposure to segments of the discipline and will supplement their program with courses from mathematics and science. This degree requires 43 semester hours of computer science courses.
Bachelor of Arts in Computer Science
The bachelor of arts degree program is appropriate for students who have an interest in computer science, but wish to pursue another major (or minor) course of study as well. This program is especially attractive to students who wish to study both mathematics and computer science, or for students who want to focus on computer applications in business, education, the arts, or other areas. This degree requires 27 hours of computer science courses.
Informational Science and Technology Major
The Computer Science Department also offers the Bachelor of Science degree and the Bachelor of Arts degree in Information Science and Technology (IST). This newly emerging discipline has its roots in computer science, mathematics, and other scientific disciplines. IST focuses on the integration of the latest technology to solve real-world problems for the end user. This program is interdisciplinary in nature in that it applies technology to solve problems in a variety of disciplines. To acquire this interdisciplinary knowledge, IST students must complete the IST requirements as well as a minor in a different academic area.
Information Science and Technology Majors
The Bachelor of Science Degree in IST
The Bachelor of Science degree in Information Science and Technology provides students with a broad IST core that includes an introduction to programming, databases, networks, operating systems, and web design. Students also complete an emphasis in Computer Programming, Internet Development, or Computer Networks. Each of these emphases consists of three courses. Four advanced courses in IST together with a senior design course complete the IST requirements for the B.S. degree. IST majors are also required to complete two mathematics courses and one technical communication course. An internship is available as an option within the major. A minor in another academic area is also required.
The Bachelor of Arts Degree in IST
The Bachelor of Arts degree in Information Science and Technology requires the same broad IST core as found in the B.S. degree. Four additional IST courses must be completed to provide depth in specific areas. IST majors seeking the B.A. degree are also required to complete two IST electives numbered 300 or above, two mathematics courses, and a minor in another academic area. An internship is available as an option within the major. The B.A. degree has the flexibility of allowing students to pursue a second major.
Computational Science Major
Computational science is a new field that is rapidly emerging out of collaborative research by teams of mathematicians, computer scientists, and scientists, covering a wide variety of disciplines from the physical, health, behavioral, and natural sciences. Rather than viewing computational science simply as potential applications of core subjects in their disciplines, mathematicians and computer scientists see these collaborative projects as a source of new algorithms and ideas that will extend and enrich those fields.
Scientists also see computational science as a new endeavor, taking a place along side theoretical science and experimental science as a fundamental new mode of scientific inquiry. Because computational science seeks to integrate knowledge and methodologies from all of these disciplines, it is a subject that is distinct from any of them.
The bachelor of science degree in Computational Science draws heavily from the disciplines of computer science and applied mathematics, as well as the scientific discipline in which the student chooses to minor.
For Business and Engineering Students
The Computer Science Department provides coursework in the area of Computer Information Systems for the School of Business. Students interested in combining computer science and business should consider this program of study.
The Computer Science Department provides coursework in the area of Computer Engineering for the School of Engineering. Students interested in designing both software and hardware should consider this program of study.
Departmental Honors
Departmental Honors in computer science may be earned by students who fulfill these requirements:
- achieve a 3.5 GPA in CSC courses that apply to the major,
- prepare a proposal for work on a research project that goes beyond normal coursework two semesters prior to graduation and have it approved by two members of the department,
- complete the research project under the direction of these two faculty members, and enroll in three semester hours of CSC 499 (Undergraduate Research),
- prepare a written report of publishable quality using the format of the "Association for Computing Machinery" and present the results of the project to faculty and students at an announced time, and
- receive final approval of the work by the departmental faculty.
Computer Science Courses
CSC 125. Introduction to Computing (3 hours)
An introduction to computer systems with emphasis on the central processing unit, memory units, input and output devices, data communications, operating systems, computer software, programming concepts, and the impact of computers on society. Students will learn to use popular software packages for applications such as word processing, spreadsheets, and data base systems.
CSC 204. Programming I (4 hours)
Prerequisite: mathematics competency.
Students will gain an understanding of computer science foundations by learning how to program in a modern object-oriented language. The basic topics to be covered include structured and object-oriented programming, basic syntax and semantics, simple data types, control structures, classes, arrays, and graphics. Students will also “experiment” with the computer, and learn how to design, test, and debug programs.
CSC 205. Programming II (4 hours)
Prerequisite: CSC 204
A continuation of CSC 204 with an emphasis on advance object-oriented principles. Topics include inheritance, polymorphism, graphical user interfaces, eventdriven programming, recursion, and simple data structures (lists, stacks, queues, and binary search trees).
CSC 206. Visual Programming (3 hours)
Prerequisite: CSC 204
This course offers an introduction to window-based, visual programming. Emphasis will be on the object-oriented, event-driven languages such as Visual Basic, Visual C++, Delphi, and Access. Students will learn how to create objects, change their properties, and develop appropriate event handlers.
CSC 212. Programming Language (subtitle) (1-3 hours)
Prerequisite: competence in a programming language.
Introduction to a programming language or languages not taught elsewhere in the curriculum. Students will be expected to demonstrate sufficient skills in the language(s) studied. Can be repeated for a maximum of 6 hours.)
CSC 245. Data Structures and Algorithm Analysis (3 hours)
Prerequisites: CSC 205, and MAT 141 or 191
A rigorous study of the implementation of different data structures, and an analysis of the time and space complexity of their associated algorithms. Topics will include dynamic memory, trees, hashing, heaps, sorting, and graphs.
CSC 285. Topics in Computer Science (1-4 hours)
Prerequisite: consent of the instructor.
Variable credit, 1-4 hours. May be repeated with different topics.
CSC 290. Theory and Application of Multimedia (3 hours)
An introduction to the technical aspects of computer-based multimedia. Technical and hardware issues as well as theory and design concepts are covered. Students will design and build a multimedia presentation.
CSC 310. Introduction to File Structures (3 hours)
Prerequisite: CSC 245
A study of the different data structures and algorithms that are appropriate for the placement and organization of data on secondary storage. Physical characteristics of files on different large storage devices are discussed. Concepts studied include indexing, external sorting, B-trees, and extendible hashing. Programming projects related to file processing are required.
CSC 312. Database Systems (3 hours)
Prerequisite: CSC 245
A study of both logical and physical organization of computer database systems, including DBMS languages, architecture, and interfaces, data modeling, integrity, and security. Emphasis will be placed on relational models, languages, and systems.
CSC 315. Introduction to Computer Graphics (3 hours)
Prerequisite: CSC 205
Corequisite: CSC 245
A survey of the basic hardware components and the software techniques used in the discipline of computer graphics. Topics to be covered will include two and three-dimensional geometry, matrix representations of transformations, clipping, perspective, stereoscopic views, viewing in three dimensions, and device interaction. Visual realism and animation using color, shading, lighting, and texturing will also be introduced. Each student will be required to complete a project utilizing a graphics workstation.
CSC 322. Computer Organization and Assembly Language (4 hours)
Prerequisite: CSC 204
Designed to provide an introduction to fundamental concepts of the organization and operation of a computer and to the study of assembly language programming. Included will be the study of register sets, symbolic addresses, addressing techniques, parameter-passing techniques, and data representation.
CSC 323. Computer Organization and Logic Design (4 hours)
Prerequisite: CSC 322
An introduction to the basic organization of a digital computer. Topics will include basic logic design at the circuit level, data coding and representations, functions of large-scale components of a computer system, and the mechanics of information transfer and control within a digital system. Students are introduced to practical design, breadboarding, and testing of digital circuits in the Hardware Laboratory.
CSC 324. Digital System Design (3 hours)
Prerequisite: CSC 323
Corequisite: CSC 322
A continuation of the hardware design process begun in CSC 323.
CSC 330. Organization of Programming Languages (3 hours)
Prerequisite: CSC 205
A study of the concepts and issues underlying the design and implementation of programming languages. Topics considered will be the objects of computation, grammars, ambiguity, control structures, scope and typing of variables, blockstructured languages, precedence, recursion, and input/output facilities. Examples will be drawn from a high-level language.
CSC 335. Numerical Methods (3 hours)
Prerequisites: MAT 192 and ability to write programs in a high-level computer language.
A study of numerical methods for the solution of mathematical problems and computer application of those methods. Topics will include: methods such as the bisection algorithm and fixed point iteration for the solution of equations with a single variable, interpolation and polynomial approximation, numerical differentiation and integration, solution of systems of linear equations, and least squares approximation.
CSC 340. Introduction to the Theory of Computing (3 hours)
Prerequisites: MAT 225 and the ability to write programs in a high-level computer language.
Fundamentals of computing theory are developed on an intuitive level. Topics studied include finite automata, context-free grammars, Turing machines, and recursive functions. The notion of undecidable or noncomputable problems based on the Turing machine model is discussed briefly.
CSC 360. Theory of Data Communications (3 hours)
Prerequisite: CSC 205
Consideration of the design of communication line characteristics, modems, synchronous and asynchronous line protocols, error detection and correction schemes including polynomial codes, basic multiplexing, and concentration.
CSC 380. Artificial Intelligence (3 hours)
Prerequisites: CSC 245, MAT 225
An introduction to the problem domains of artificial intelligence and to the principles and techniques used to design systems that acquire knowledge and demonstrate intelligent responses. Particular areas studied include deterministic and heuristic search techniques appropriate for large problem spaces, formal methods of knowledge representation and logical reasoning, natural language understanding, and neutral nets.
CSC 415. Graphics Simulation and Visualization (3 hours)
Prerequisite: CSC 315
Advanced topics in computer graphics such as viewing in three dimensions, representation of three-dimensional surfaces and shapes, texture mapping, hierarchical kinematic and solid modeling, rendering and animation of articulated objects, scientific visualization, and physical aspects of simulation such as collision detection and gravity will be covered. The design and implementation of a graphics project focusing on real-time simulation will be required.
CSC 435. High Performance Scientific Computing (3 hours)
Prerequisite: CSC 335
An introduction to modern methods in large-scale scientific computing. Topics will include architectures for high performance and parallel computing utilizing both shared memory and distributed memory hierarchies. Algorithms for parallel computing, as well as parallel implementations of codes used in numerical methods, will be studied and their performance enhancements examined. Emphasis will be placed on code development, debugging, testing, and optimization on high performance systems. Students will complete projects related to current computational problem in science and/or engineering.
CSC 450. Compiler Construction (3 hours)
Prerequisites: CSC 245, 322, and MAT 225.
A study of basic techniques of compiler design and implementation including formal description of syntax and semantics, lexical analysis, grammars, syntax analysis, intermediate code, generation of object code, relocation, symbol tables, error detection, and optimization. Students will be engaged in a compiler writing project.
CSC 460. Operating Systems (3 hours)
Prerequisites: CSC 245, 322, and MAT 225
A survey of functions of an operating system and the algorithms used in its implementation. Input/output programming, interrupt processing, memory management, demand paging, segmentation, processor management, scheduling, synchronization, multiprocessing, device management, dead-lock avoidance, information management, and interdependencies.
CSC 480. Software Engineering (3 hours)
Prerequisite: CSC 245
A study of current techniques used in the development of large-scale software projects. Topics include requirements analysis, functional specification, systems design, implementation, testing, and maintenance.
CSC 485. Topics in Computer Science (Subtitle) (1-3 hours)
Prerequisite: consent of the instructor
May be repeated with different topics, but total credit may not exceed 6 hours.
CSC 499. Undergraduate Research (1-3 hours)
Prerequisite: consent of the instructor
Individual research projects in computer science are planned, performed, and presented in written and oral form. Significant student results will be submitted to a conference or a journal. Projects are selected in consultation with a CSC faculty member. The course may be repeated, but total credit may not exceed 6 credit hours. This course is typically taken in conjunction with an honors project. Graded S/U.
Information Science and Technology Courses
IST 126. Introduction to Information Science and
Technology (3 hours)
Prerequisites: computer literacy and consent of the instructor.
This course serves as a broad introduction to information technology concepts. Course will include a laboratory component for practical experience in computer system design and troubleshooting as well as in introductory programming.Topics to be covered include information technology ethics, computer law and impact of technology on society, security and recovery systems, professional certification programs, computer networks, and introduction to programming.
IST 220. Introduction to Databases (3 hours)
Prerequisite: CSC 125 or IST 126
This course serves as an introduction to database management systems and their role in information technology. The course will include a laboratory component for practical experience in several database systems. Topics to be covered include database building blocks, database design, and database implementation.
IST 221. Introduction to Networks (3 hours)
Prerequisite: IST 126
This course serves as an introduction to network fundamentals. Course will include a laboratory component for practical experience in network design and implementation. Topics to be covered include networking terminology, network theory, standards bodies, network models and cabling techniques.
IST 222. Introduction to Operating Systems (3 hours)
Prerequisite: IST 126
This course serves as an introduction to computer operating systems from the user’s and administrator’s points of view. Course will include a laboratory component for practical experience in operating system administration and use. Topics to be covered include interface usage, user administration, file security, event tracking, scalability, troubleshooting and resource sharing.
IST 276. Introduction to Internet Programming (3 hours)
Prerequisite: CSC 204
This course provides the foundational skills required for Internet programming. Course will include a laboratory component for practical experience in language usage. Topics to be covered include hypertext markup language, dynamic hypertext markup language, cascading style sheets, JavaScript and VBScript.
IST 277. LAN & WAN Technologies (3 hours)
Prerequisite: IST 221
This course expands upon the concepts introduced in IST 221 with emphasis placed upon wide area networks and integration. Course will include a laboratory component for practical experience network design and implementation.Topics to be covered include communication mediums, Ethernet, token ring, ATM, frame relay, FDDI, wireless technologies, VPN’s, public and private network integration and data encryption.
IST 285. Topics in Information Science and Technology (1-4 hours)
Prerequisite: consent of the instructor.
An intensive study of some significant topic in Information Science and Technology not otherwise covered in departmental course offerings.Variable credit, 1-4 hours. May be repeated with different topics, but total credit may not exceed 8 hours.
IST 311. Scripting Languages (3 hours)
Prerequisites: IST 222 and CSC 206, or CSC 205
This course serves as a survey of computer scripting languages and techniques for various computing environments. Course will include a laboratory component for practical experience in scripting application. Topics to be covered include overview of scripting languages; DOS script fundamentals, Unix script fundamentals, and Internet scripting languages.
IST 313. Visual Programming II (3 hours)
Prerequisite: CSC 206
This course expands upon the concepts started in Visual Programming I with a look at additional visual languages. Course will include a laboratory component for practical experience in language usage. Topics to be covered include sequential files, database bound controls, common Active X controls, creating Active X controls, using VBA in Access, MDI applications, creating class modules, the Windows API and VBScript.
IST 316. Network Protocols (3 hours)
Prerequisites: IST 221 and IST 222, or CSC 360
This course serves as a survey of the concepts, design and implementation of various network protocols including TCP/IP, IPX/SPX, NetBEUI and AppleTalk. Course will include a laboratory component for practical experience protocol design and implementation. Topics to be covered include industry models, features, environmental concerns, and efficiency.
IST 318. Database Administration (3 hours)
Prerequisite: IST 220
This course provides the knowledge required to properly design, implement and maintain a complex database management system. Course will include a laboratory component for practical experience in database management using a modern database system. Topics to be covered include hardware configurations and considerations, logical database layouts, physical database layouts, managing the development process, monitoring multiple databases, database tuning, database security and auditing, optimal backup and recovery procedures, managing distributed databases and configuring client/server and Web environments.
IST 350. Software Engineering Tools (3 hours)
Prerequisite: CSC 205
This course explores software engineering methods and tools for application development. Course will include a laboratory component for practical experiences using a variety of industry standard design tools. Topics to be covered include design and system organization, using and creating reusable libraries, building, testing, debugging, performance evaluation and simple interface design.
IST 351. Dynamic Content Delivery (3 hours)
Prerequisites: either CSC 205 or CSC 206, and either IST 276 or CSC 485 (Web Development).
This course explores the techniques used for server-side and client-side delivery of dynamic Internet content. Course will include a laboratory component for practical experience content design and delivery. Topics to be covered include WWW programming, client-side fundamentals, client-side programming, server-side fundamentals, and server-side programming.
IST 352. Network Operating Systems Use and Integration (3 hours)
Prerequisite: IST 277 or CSC 360
This course is a survey of the use, administration and integration of various network operating systems. Course will include a laboratory component for practical experience in industry standard network operating system administration. Topics to be covered include installation, configuration, integration, remote access services and troubleshooting.
IST 461.Web Server Issues (3 hours)
Prerequisites: IST 222 and IST 351, or CSC 460
This course examines a variety of different Web servers with respect to capabilities, security, administration, and drawbacks. Course will include a laboratory component for practical experience in designing and maintaining a Webserver. Topics to be covered include strengths and weaknesses of various Web servers, Web server installations, Web server configuration, data security on Web servers, Webmaster responsibilities and management skills, and Web site scalability.
IST 462. Network Security (3 hours)
Prerequisite: IST 352 or CSC 360
This course is a study of the many issues relating to network security. Course will include a laboratory component for practical experience in properly securing and monitoring a network. Topics to be covered include foot printing, scanning, enumeration, operating system vulnerabilities, securing remote access, network device security features, firewall implementation, remote control security concerns, and security management.
IST 463. Advanced Database Development (3 hours)
Prerequisites: IST 220 and IST 350, or IST 318 and IST 351, or CSC 312
This course takes a detailed look at software development within various data dependent environments. Course will include a laboratory component for practical experience in database development using a modern database system. Topics to be covered include principles of object-oriented data models (classes, encapsulation, and object identity), schema evolution, views, authorization, transaction management and secondary storage management.
IST 470. Senior Project Design I (3 hours)
Prerequisite: completion of the first course in an IST emphasis.
This course is an advanced practicum in computer science. Students design, document, and test software systems for use in local industry, in university departments, or government laboratories. They gain practical experience by working closely with project sponsors from these organizations and review ongoing projects. Students also gain extensive experience in oral and written communication through presentations throughout the software lifecycle.
IST 471. Senior Project Design II (3 hours)
Prerequisite: IST 470
This course provides the student with the opportunity for actual implementation of projects developed within IST 470. Team-based project implementation will be emphasized.
IST 472. Information Technology Internship (3 hours)
Prerequisite: IST 470
This course is implemented as a directed internship within the local Information Technology community. Students will gain valuable hands-on experience with the knowledge learned during their academic career.
IST 485. Topics in Information Science and Technology (1-4 hours)
Prerequisite: consent of the instructor
An intensive study of some significant topic in Information Science and Technology not otherwise covered in departmental course offerings.Variable credit, 1-4 hours. May be repeated with different topics, but total credit may not exceed 8 hours.