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
Major
Minor
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.
|