Select a different Catalog:
2007 - 2008 Catalog
Computer Science
Computing Services 212
541-552-6143
Daniel Wilson, Chair
Computer science is an exciting and growing field with career opportunities ranging from running a small business to working in industry, government, or education. The computer science major emphasizes the current trend toward networking, computer security, and the Internet. The capstone experience prepares students for the job market by providing real-world work experience.
Degrees
BA or BS in Computer Science with an option in Computer Information Science (CIS)
BA or BS in Computer Science with an option in Computer Programming and Software (CPS)
BA or BS in Computer Science with an option in Computer Science and Multimedia (CMM)
BA or BS in Computer Science with an option in Computer Security and Information Assurance (CSIA)
MA or MS in Mathematics-Computer Science with an emphasis in Computer Science (CS)
Co-Major
Mathematics-Computer Science (see page 112 for a description of this program)
Minor
Computer Science
Accelerated Baccalaureate Degree Program
Computer science majors may participate in the Accelerated Baccalaureate Degree Program. For more information, see page 157.
Choosing a Major
Because computer science options are similar, students do not need to choose one until their sophomore or junior year. Students primarily interested in business information systems should choose the CIS option, while those whose main interest is programming should opt for CPS. CMM is available for students who want to combine multimedia and computer science fundamentals. The CSIA option allows students to focus on security and timely information transfer.
Requirements for the Major
- Fulfill baccalaureate degree requirements as stated beginning on page 21.
- Complete the core curriculum with a B or better in both Computer Science I and Computer Science II. Computer science majors meet the writing and research component (see page 25) by taking Computer Science III (CS 258), Systems Software and Architecture (CS 326), and Systems Analysis (CS 469).
- Choose the CPS, CIS, CMM, or CSIA option and complete the additional core requirements for that option.
- For the CPS, CIS, or CSIA option, complete 16 additional credits from computer science courses above the 250 level, as approved by the faculty advisor. For the CMM option, complete 20 additional credits above the 250 level with a CS prefix, as approved by the faculty advisor.
- Maintain a GPA of at least 2.5 in upper division computer science courses.
Capstone
The capstone experience is a three-term sequence (Systems Analysis, Capstone I, and Capstone II) that should be taken in the senior year. Students prepare for, design, and implement a project that solves a computer science or information systems problem. The project should be of sufficient size to be useful and to give the student a real-world experience, but it should also be small enough to be completed in two terms.
Major Core Courses
Computer Science Courses
(36 credits)
| Computer Science I (CS 200) (CMM majors may take CS 210) | 4 |
| Computer Science II (CS 257) (CMM majors may take CS 295) | 4 |
| Computer Science III (CS 258) (CMM and CIS majors may take CS 380) | 4 |
| Systems Software and Architecture (CS 326) | 4 |
| Networks I (CS 336) | 4 |
| Databases (CS 360) | 4 |
| Systems Analysis (CS 469) | 4 |
| Capstone Project I (CS 470) | 4 |
| Capstone Project II (CS 471) | 4 |
Math Courses
(4 credits)
| Elementary Statistics (MTH 243) | 4 |
Computer Programming and Software (CPS)
Computer Science Courses
(36 credits)
| Machine Structures and Assembly Language (CS 275) | 4 |
| C and UNIX (CS 367) | 4 |
| Data Structures (CS 411) | 4 |
| Compilers (CS 450) | 4 |
| Operating Systems (CS 459) | 4 |
| CS electives above the 250 level | 16 |
Math Courses
(8 credits)
| Discrete Structures (MTH 235) | 4 |
| Calculus I (MTH 251) | 4 |
CPS majors interested in attending graduate school are strongly encouraged to take MTH 252 and 261 or to consider a mathematics-computer science co-major (see page 112).
Computer Information Science (CIS)
Business Courses
(24 credits)
| Accounting Information I, II (BA 211, 213) | 8 |
| Principles of Marketing (BA 330) | 4 |
| Organizational Behavior and Management (BA 374) | 4 |
| BA upper division electives | 8 |
Computer Science Courses
(20 credits)
| CS electives above the 250 level | 20 |
Computer Science and Multimedia (CMM)
(24 credits)
| Introduction to Multimedia (AM 233) | 4 |
Choose 12–20 credits from the following courses:
| Design for Multimedia (AM 334) | 4 |
| Digital Video (AM 335) | 4 |
| Multimedia Authoring (AM 336) | 4 |
| Web Authoring (AM 337) | 4 |
| Web Interface Design, Graphics, and Animation (AM 338) | 4 |
| Selected Topics in Multimedia Seminar (AM 407) | 1–4 |
| Practicum in Multimedia (AM 409) | 1–6 |
Choose up to 8 credits from the following courses, selected with advisor consent:
| Advanced Field Production (VP 315) | 4 |
| Applied Editing Techniques for Field and Studio Production (VP 375) | 4 |
| Digital Studio (ART 250) | 4 |
| Digital Interactive Studio (ART 351) | 4 |
| Digital Animation Studio (ART 352) | 4 |
| Digital 3D Modeling and Lighting Studio (ART 353) | 4 |
| Digital 3D Animation Studio (ART 354) | 4 |
| Computer Applications in Chemistry (CH 371) | 3 |
| Computer Imaging (CS 315) | 4 |
| Computer Graphics I (CS 316) | 4 |
| Electives with CS prefix above the 250 level | 20 |
Note: CS 315 and 316 cannot count for the additional 20 credits and for multimedia credits.
Computer Security and Information Assurance (CSIA)
Computer Science Courses
(36 credits)
| C and UNIX (CS 367) | 4 |
| UNIX System Administration (CS 426) | 4 |
| Networks II (CS 436) | 4 |
| Security I (CS 456) | 4 |
| Security II (CS 457) | 4 |
| CS electives above the 250 level | 16 |
Other Courses
(8 credits)
| Information Technology: Legal and Ethical Issues (PHL/CS 310) | 4 |
| Computer Forensics (CCJ/CS 346) | 4 |
Minor
(28 credits)
| Elementary Statistics (MTH 243) | 4 |
| Computer Science I (CS 200) or Web Development I (CS 210) | 4 |
| Computer Science II (CS 257) or Web Development II (CS 295) | 4 |
| Computer Science III (CS 258) or Visual Basic (CS 380) | 4 |
| Systems Software and Architecture (CS 326) | 4 |
| Networks I (CS 336) | 4 |
| Databases (CS 360) | 4 |
Students need at least a 2.5 GPA in the required courses.
Digital Media Foundations
Through the College of Arts and Sciences, SOU provides interdisciplinary instruction in visual narrative, design, and creation of visuals in a digital age. For information on Digital Media Foundations courses, see the course listings within the College of Arts and Sciences.
Graduate Program
The graduate program in computer science prepares students for careers in industry and provides additional instruction for professionals. Additionally, the program prepares students with strong research interests for entry into PhD programs at other universities. A set of practical courses builds on the knowledge gained from undergraduate coursework in computer science.
Students work individually with an advisor to create a program plan in an area of personal interest. The faculty specializes in areas such as databases and data mining, computational linguistics, GIS, computer graphics, game programming, distributed systems, Internet application, computer security, and forensics. With proper planning, it is possible to graduate in one year, although many students take longer. We offer evening classes that enable working students to complete the degree requirements with minimal impact to their busy schedules.
Graduate students have opportunities to engage in research and help the department in a variety of ways. Assistantships providing tuition and a stipend are available.
Admission Requirements
Students must meet SOU admission criteria and then be approved by the department for admission to the graduate program. Applications are reviewed on an ongoing basis. More details are available in this catalog under University admission policies. The department evaluates applications on the basis of the following:
- undergraduate GPA;
- GRE general test scores;
- three letters of recommendation from faculty;
- a statement of objectives; and
- undergraduate preparation in computer science.
We welcome and encourage students with backgrounds in other disciplines. Th prerequisites to enter the program are as follows:
- Computer Science III (CS 258)
- Networks I (CS 336)
- Databases (CS 360)
Students without these prerequisites may still apply for admission. Admission can be approved as soon as the prerequisites are met with satisfactory grades.
Degree Requirements
All students must complete a minimum of 45 credits of approved graduate coursework. These must include the following:
- Three graduate-only courses in the Computer Science Department for a total of 12 credits.
- From 23 to 36 graduate credits taken within the Computer Science Department. These may include cross-listed courses.
- From 9 to 22 graduate credits from support-area departments. These may include cross-listed courses. Support-area departments are those approved by a student’s graduate advisor.
- Complete either a project or a thesis. Both require a successful defense before a graduate committee of at least three faculty members chosen by the student and one appointed by the graduate council.
Computer Science Courses
See Course Prerequisites PolicyLower Division Courses
| CS 109 Practicum |
| 1 to 2 credits |
| CS 115 Microcomputer Applications I |
| 4 credits |
| Introductory, hands-on course that surveys computer applications, including operating systems, word processors, spreadsheets, and databases. |
| CS 199 Special Studies |
| Credits to be arranged |
| CS 200 Computer Science I |
| 4 credits |
| Introduces programming, including fundamental control and data structures. |
| CS 209 Practicum |
| Credits to be arranged |
| CS 210 Web Development I |
| 4 credits |
| Provides an introduction to Web design. Students learn how to create Web pages using XHTML and a Web development software package. Web pages will include frames, forms, cascading style sheets, animation, and sound. Students will also gain exposure to a popular scripting language that will enable them to add additional functionality to their Web pages. Script language concepts will include variables, loops, conditions, and arrays. Approved for University Studies (Explorations). Prerequisites: CS 115 or demonstrated computer literacy. |
| CS 226 An Introduction to UNIX |
| 4 credits |
| Introduces nonmajors to UNIX. Topics may include the characteristics of multiuser systems, ways to get help, remote access, the UNIX file system, UNIX commands, editing, and mail, with an introduction to command files and programming in UNIX if time permits. Programming experience recommended. Note: Students who have already taken CS 426 may not receive credit for this course. |
| CS 257 Computer Science II |
| 4 credits |
| Introduces object-oriented programming. Reinforces the fundamental control and data structures of computer science and introduces data abstraction, classes, objects, polymorphism, and inheritance. Prerequisite: CS 200. |
| CS 258 Computer Science III |
| 4 credits |
| Covers pseudocode, program documentation, input, output, generic methods, exception handling, and an object-oriented introduction to data structures. Prerequisite: CS 257. |
| CS 275 Machine Structures and Assembly Language |
| 4 credits |
| Uses assembly language concepts to illustrate machine architecture and the translation of features in higher level programming languages. Discusses hardware features and capabilities and introduces direct video access and simple interrupt processing. Prerequisite: CS 257. |
| CS 295 Web Development II |
| 4 credits |
| Focuses on Web application development. Students learn how to create dynamically generated Web pages using server-side scripting. Language concepts include searching databases, filtering and displaying results, form processing, passing data between pages, user authentication, session tracking, and other techniques for enhanced functionality. Prerequisites: CS 210 or demonstrated programming proficiency. |
Upper Division Courses
| CS 310 Information Technology: Legal and Ethical Issues |
| 4 credits |
| Inquires into the ethical and legal implications of the products, activities, and behaviors of digital technology users, emphasizing U.S. laws and technology. Examines digital works, copyright laws, software, business practice patents, and a few significant court cases that raise fundamental constitutional issues. Enables students to understand the complex laws surrounding digital technology and to be able to form sound ethical and legal positions in the digital world. Approved for University Studies (Synthesis/Integration). Prerequisite: Completion of all lower division University Studies requirements. (Cross-listed with PHL 310.) |
| CS 312 Simulation |
| 4 credits |
| Examines the theoretical and practical foundations of computer simulation. Studies simulations of discrete and continuous systems. Assigns projects using standard higher programming languages, as well as currently available simulation languages. Prerequisites: CS 257 and MTH 243. |
| CS 313 Introduction to Game Programming |
| 4 credits |
| Introduces the design and programming techniques used to create computer games. Examines how user interface design, graphics, sound, data structures, and artificial intelligence are combined in highly interactive applications. Prerequisite: CS 257. |
| CS 315 Computer Imaging |
| 4 credits |
| Introduces basic image-processing techniques, file formats, display methods, and the importance of imaging in the business and scientific communities. Topics include point, area, and geometric processing techniques; convolution techniques; and image enhancement. Prerequisite: CS 257 or equivalent programming experience. |
| CS 316 Computer Graphics I |
| 4 credits |
| Introduces computer graphics and develops a graphics kernel system for use in several graphics projects. Presents the use of matrices to effect transformations of graphics displays, perspective, clipping, scaling, and hidden line techniques. Prerequisite: CS 367. |
| CS 326 Systems Software and Architecture |
| 4 credits |
| Offers a functional, systems-level review of computing equipment and the organization of components and devices into computer architectural configurations. In addition to learning how to configure computer systems, students complete a research paper and presentation on some component within a computer system. Prerequisite: CS 200. Corequisite: CS 326L. |
| CS 336 Networks I |
| 4 credits |
| Surveys local area network (LAN) systems with a focus on data communications. Explores serial transmission, LAN setup and administration, communication models (e.g., TCP and OSI), and protocols. Prerequisite: CS 257. |
| CS 345 End User Computing |
| 4 credits |
| Introduces the information center concept and its methods for system configuration, as contrasted with the traditional lifecycle development methodologies. Includes information center techniques for providing consultation and assistance in the assembly and testing of systems components. Prerequisite: CS 257. |
| CS 346 Computer Forensics |
| 4 credits |
| Surveys the technologies, techniques, and responsibilities of a criminal or civil investigation involving computers, networks, Internet service providers, and electronic evidence. Explores the ways a computer or a computer network can be associated with a crime. Examines rules of evidence and proof. Emphasizes maintaining an evidentiary trail through computer data and network activity. Reviews the responsibilities of the computer forensics investigator, the fragility of computer evidence, and the techniques used to protect evidence. Approved for University Studies (Synthesis/Integration). Prerequisite: Completion of all lower division University Studies requirements. (Cross-listed with CCJ 346.) |
| CS 356 Programming Topics |
| 2 to 3 credits |
| Explores programming in different languages. Topics are based on interest and need. Offerings may include Web programming and C++. Repeat credit is allowed for different topics. Prerequisites and credits determined by topic. |
| CS 360 Databases |
| 4 credits |
| Introduces the concepts necessary for designing and implementing database systems. Emphasizes data modeling, normalization, and SQL. Prerequisite: CS 257. |
| CS 367 C and UNIX |
| 4 credits |
| Explores concepts of the UNIX operating system and the C programming language. Students learn how to use UNIX and how to program in C on UNIX. Prerequisite: CS 257. |
| CS 380 Visual Basic |
| 4 credits |
| Surveys the Visual Basic.net language and the Visual Studio.net programming environment. Topics include concepts of object-oriented programming, database basics and interactions, GUI development, Web applications, creating and installing dynamic link libraries, and stand-alone programs. Prerequisites: CS 200 or CS 250. |
| CS 399 Special Studies |
| Credits to be arranged |
| CS 401/501 Research |
| Credits to be arranged |
| CS 403/503 Thesis |
| Credits to be arranged |
| CS 405/505 Reading and Conference |
| Credits to be arranged |
| CS 407/507 Seminar |
| Credits to be arranged |
| CS 409/509 Practicum |
| Credits to be arranged |
| CS 411/511 Data Structures |
| 4 credits |
| Develops data structures, with an emphasis on algorithms, characteristics, and applications. Examines alternative algorithms for manipulating data structures and their complexity. Applications include data management systems, file organization, information retrieval, and list processing. Prerequisite: CS 258. |
| CS 418/518 Theory of Computation |
| 4 credits |
| Covers formal language and automata theory from finite state automata to Turing machines. Presents the Chomsky hierarchy of languages and the relationship between languages and automata. Prerequisite: CS 411. |
| CS 426/526 UNIX System Administration |
| 4 credits |
| Introduces UNIX and shell programming, start-up and shut down, user administration, file systems, controlling processes, adding disks and cron, configuring the kernel, SLIP, PPP, and security. Prerequisites: CS 336 and 367. |
| CS 432/532 Client-Server |
| 4 credits |
| Studies application design from a distributed processing perspective. Focuses on server-side programming using CGI scripts and application objects. Examines the issues involved in migrating traditional client-server applications to the Web. Prerequisites: CS 336 and 360. |
| CS 433/533 Corporate Web Development |
| 4 credits |
| Introduces XML, XSL, and XQL. Examines e-commerce, digital money, and data encryption. Students are required to work on an e-commerce project as part of the course. Prerequisite: CS 295. |
| CS 436/536 Networks II |
| 4 credits |
| Continues Networks I. Offers an in-depth study of network administration. Topics may include Internet access, distributed programming methods, routing, congestion control, security, RPC, name resolution, message-based distributed applications, and Internet architectures. Prerequisite: CS 336. |
| CS 446/546 Wireless Networks |
| 4 credits |
| Examines the world of wireless communication. Starting with the fundamentals of the generation and propagation of electromagnetic waves, it surveys information transmission techniques such as spread spectrum and phase shift keying, wireless LANs, personal networks, and cellular and satellite systems. Prerequisite: CS 336. |
| CS 450/550 Compilers |
| 4 credits |
| Introduces compiler construction. Students create a compiler for a mini-language. Topics include grammars, lexical analysis, parsers, parser generators, code generation, and code optimization. Prerequisites: CS 275, 367, and 411. |
| CS 455/555 Topics in Computer Science |
| 2 to 3 credits |
| Explores selected topics in computer science. Topics are offered based on interest and need. Repeat credit is allowed for varying topics. Prerequisites and credits are determined by topic. |
| CS 456/556 Security I |
| 4 credits |
| Introduces the many facets of computer security and information assurance. Explores the security organization and infrastructure within an organization along with policies, standards, and procedures. Covers cryptographic protocols, modes, and algorithms, including DES, AES, RSA, and Kerberos. Prerequisite: CS 336. |
| CS 457/557 Security II |
| 4 credits |
| Covers techniques and principles of design and configuration of secure workstations, servers, and LANs. Presents system and LAN intrusion detection and data assurance monitoring. Discusses the basics of virtual private networks and perimeter protection, as well as systems and tools used for implementation. Prerequisite: CS 456. |
| CS 459/559 Operating Systems |
| 4 credits |
| Explores operating systems and components, operating characteristics, user services, and limitations. Covers implementation techniques for processing input-output and interrupt handling; overall structure of multiprogramming systems or multiprocessor configurations; and details of addressing techniques, core management, file system design and management, system accounting, and other user-related services. Prerequisite: CS 367. |
| CS 460/560 Advanced Databases |
| 4 credits |
| Introduces integrity constraints and triggers, stored procedures, indexing and index structures, transactions, concurrency, locking, and Web databases. Students usually work on a major project during the term. Prerequisite: CS 360. |
| CS 462/562 Database Administration |
| 4 credits |
| Examines the tasks involved in administering a large and complex database management system (DBMS). Teaches hands-on techniques for installing, setting up, and maintaining a production database. Students use a popular DBMS (e.g., Oracle) to understand the concepts of managing structures, logs, data files, and users. Also prepares students to take the appropriate database administration (DBA) certification exams. Prerequisite: CS 360. |
| CS 467/567 Secure Programming Practices |
| 4 credits |
| Explores software system threats, vulnerabilities, and controls from the programming perspective. Topics include threat-vulnerability analysis, buffer overflows, access control, race conditions, and input validation. Prerequisites: CS 258 and 360. |
| CS 469/569 Systems Analysis |
| 4 credits |
| Covers object-oriented software system analysis techniques using Unified Modeling Language (UML). Explores software development methodologies, project planning and management, requirements analysis, and object-oriented design alternatives. Topics include use cases, conceptual data models, the analysis class model, and alternative design strategies. Prerequisites: CS 258 or 380; CS 326, 336, and 360. |
| CS 470/570 Capstone Project I |
| 4 credits |
| Provides a problem for students to analyze and solve through the design of a solution, the creation and implementation of a software solution, and documentation of the entire process. Project I involves project selection and completion of the design phase. Prerequisite: CS 469. |
| CS 471/571 Capstone Project II |
| 4 credits |
| The Capstone II goal is for students to finish the work started in Capstone I by creating and implementing the software solution and completing the documentation. The documentation should address project maintenance and the operating procedures required to run the students’ software. Prerequisite: CS 470. |
Graduate Courses
| CS 581 Topics in the Foundations of Computer Science |
| 4 credits |
| Covers selected topics in the foundations of computer science. Sample topics include analysis of algorithms, computational models, and programming languages. |
| CS 582 Topics in Information Systems |
| 4 credits |
| Explores selected topics in information systems. Sample topics include database systems, networking and the Internet, and creating business frameworks. |
| CS 583 Topics in Software Engineering |
| 4 credits |
| Covers selected topics in software engineering. Sample topics include metrics, design methodologies, and quality assurance. |