Apr 28, 2024  
2012-13 Catalog 
    
2012-13 Catalog [ARCHIVED CATALOG]

Department of Computer Science


 

Computing Services 214
541-552-6143
Greg Pleva, Chair

Professor Associate Professor Adjunct Faculty

Emeritus Faculty

Daniel Harvey Peter Nordquist Lynn Ackler George Converse
 Kevin Sahr Greg Pleva Dian Brandenburg Lee Hill
    Joe Caron Ken Larson
    Tim Morton Robert McCoy
      Richard Peddicord

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 experienc

Accelerated Baccalaureate Degree Program

Computer science majors may participate in the Accelerated Baccalaureate Degree Program. For more information, see the Accelerated Baccalaureate Degree Program section.

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.

Emerging Media & Digital Arts

Through the departments of Art and Art History, Communication, and the center for Emerging Media and Digital Arts, SOU provides interdisciplinary instruction in visual narrative, design, and creation of visuals in a digital age. For information on Emerging Media & Digital Arts courses, see the EMDA courses in the Course Descriptions section of the catalog.

Graduate Program

The department offers a Master of Science degree in Applied Computer Science, designed to allow students to pursue advanced training in computer science while simultaneously developing workplace skills highly valued by employers.  See the Graduate Studies section of the catalog for more information on this program.

Program Requirements

 

Programs

Major

Minor

Courses

Computer Science

  • CS 109 - Practicum


    1 to 2 credits
    Credits to be arranged. Repeatable for a maximum of 9 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


    1 to 18 credits
    Credits to b arranged. Repeatable.
  • CS 200 - Computer Science I


    4 credits
    Introduces programming, including fundamental control and data structures.
  • CS 209 - Practicum


    1 to 6 credits
    Credits to be arranged. Not Repeatable.
  • 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 Strand G - Sciences-Non Lab).Prerequisite(s): CS 115  or computer literacy
  • 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(s): CS 200  with a B or better.
  • 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(s): 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(s): 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.Prerequisite(s): CS 200  and CS 210 .
  • 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 (Integration - Strand I).Prerequisite(s): 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.Prerequisite(s): 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(s): 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(s): 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 affect transformations of graphics displays, perspective, clipping, scaling, and hidden line techniques.Prerequisite(s): 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(s): CS 200 .Corequisite(s): 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(s): 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 (Integration - Strand H).Prerequisite(s): Completion of all lower division University Studies requirements(Cross-listed with CCJ 346 .)
  • CS 356 - Programming Topics


    2 to 4 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.Prerequisite(s): CS 257 
  • CS 360 - Databases


    4 credits
    Introduces the concepts necessary for designing and implementing database systems. Emphasizes data modeling, normalization, and SQL.Prerequisite(s): 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(s): CS 257 .
  • CS 380 - .Net Development


    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.Prerequisite(s): CS 257 .
  • CS 399 - Special Studies


    1 to 18 credits
    Credits to be arranged. Repeatable.
  • CS 401 - Research


    1 to 6 credits
    Credits to be arranged. Repeatable.
  • CS 403 - Thesis


    1 to 9 credits
    Credits to be arranged. Repeatable.
  • CS 405 - Reading and Conference


    1 to 6 credits
    Credits to be arranged. Repeatable.
  • CS 407 - Seminar


    1 to 4 credits
    Credits to be arranged. Repeatable.
  • CS 409 - Practicum


    1 to 15 credits
    Credits to be arranged. Repeatable for a maximum of 15 credits.
  • CS 411 - 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(s): CS 258  and CS 367 .
  • CS 415 - Foundations of Emerging Computer Applications


    4 credits
    Covers the background needed for students to make contributions in an emerging application area. Topics may include digital signal processing, data mining, and security. Focuses specifically on those foundational concepts that students need to be able to create or enhance digital solutions. May be repeated for credit with different topic.Prerequisite(s): CS 257 , MTH 112  or an appropriate SOU placement level, and MTH 243  (Some topics may require additional prerequisites)
  • CS 418 - 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(s): CS 411 .
  • CS 426 - 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.Prerequisite(s): CS 336  and CS 367 
  • CS 432 - 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 Internet.Prerequisite(s): CS 336  and CS 360 
  • CS 433 - 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(s): CS 257  and CS 295 
  • CS 436 - 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(s): CS 336 .
  • CS 446 - 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(s): CS 336 .
  • CS 450 - 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.Prerequisite(s): CS 275 , CS 367 , and CS 411 
  • CS 455 - Topics in Computer Science


    2 to 4 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. Prerequisite(s): CS 257 .
  • CS 456 - 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(s): CS 336 .
  • CS 457 - 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(s): CS 456 .
  • CS 458 - Security III


    4 credits
    Studies the threats to computer systems connected to the Internet. Examines how crackers find a system and its vulnerabilities then use those vulnerabilities to compromise the system, including the use of viruses. Looks at various tools used to attack and defend systems, as well as resources to detect and analyze intrusions. Address both wired and wireless systems security.Prerequisite(s): CS 457 .
  • CS 459 - 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(s): CS 411 .
  • CS 460 - 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(s): CS 360 .
  • CS 462 - 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(s): CS 360 .
  • CS 467 - 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.Prerequisite(s): CS 258  and CS 360 
  • CS 469 - 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.Prerequisite(s): CS 258  or CS 380 ; CS 326 , CS 336 , and CS 360 
  • CS 470 - 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(s): CS 469 .
  • CS 471 - 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(s): CS 470 .
  • CS 501 - Research


    1 to 6 credits
    Credits to be arranged. Repeatable.
  • CS 503 - Thesis


    1 to 9 credits
    Credits to be arranged.  Repeatable
  • CS 505 - Reading and Conference


    1 to 6 credits
    Credits to be arranged. Repeatable. 
  • CS 507 - Seminar


    1 to 4 credits
    Credits to be arranged. Repeatable.
  • CS 509 - Practicum


    1 to 15 credits
    Credits to be arranged.  Repeatable for a maximum of 15 credits.
  • CS 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(s): CS 258 
  • CS 515 - Foundations of Emerging Computer Applications


    4 credits
    Covers the background needed for students to make contributions in an emerging application area. Topics may include digital signal processing, data mining, and security. Focuses specifically on those foundational concepts that students need to be able to create or enhance digital solutions. May be repeated for credit with different topic.Prerequisite(s): CS 257 , MTH 112  or an appropriate SOU placement level, and MTH 243  (Some topics may require additional prerequisites)
  • CS 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(s): CS 411 .
  • CS 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.Prerequisite(s): CS 336  and CS 367 
  • CS 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 Internet.Prerequisite(s): CS 336  and CS 360 
  • CS 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(s): CS 257  and CS 295 .
  • CS 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(s): CS 336 .
  • CS 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(s): CS 336 .
  • CS 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.Prerequisite(s): CS 275 , CS 367 , and CS 411 
  • CS 555 - Topics in Computer Science


    2 to 4 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.Prerequisite(s): CS 257 .
  • CS 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(s): CS 336 .
  • CS 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(s): CS 456 .
  • CS 558 - Security III


    4 credits
    Studies the threats to computer systems connected to the Internet. Examines how crackers find a system and its vulnerabilities then use those vulnerabilities to compromise the system, including the use of viruses. Looks at various tools used to attack and defend systems, as well as resources to detect and analyze intrusions. Address both wired and wireless systems security.Prerequisite(s): CS 457 .
  • CS 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(s): CS 411 
  • CS 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(s): CS 360 .
  • CS 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(s): CS 360 .
  • CS 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.Prerequisite(s): CS 258  and CS 360 
  • CS 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.Prerequisite(s): CS 258  or CS 380 ; CS 326 , CS 336 , and CS 360 
  • CS 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(s): CS 469 .
  • CS 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(s): CS 470 .
  • 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. Repeatable.
  • 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. Repeatable.
  • CS 583 - Topics in Software Engineering


    4 credits
    Covers selected topics in software engineering. Sample topics include metrics, design methodologies, and quality assurance. Repeatable.