Skip Navigation

Computer Science

Select a different Catalog:

2008 - 2009 Catalog

Computer Science

Computing Services 212
541-552-6143
Greg Pleva, 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

Minor

Computer Science

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.

Requirements for the Major

  1. Fulfill baccalaureate degree requirements as stated beginning on page 19.
  2. Complete the core curriculum with a B or better in both Computer Science I (or Web Development I) and Computer Science II (or Web Development II). Computer science majors meet the writing and research component by taking Computer Science III (CS 258) or Visual Basic (CS 380), Systems Software and Architecture (CS 326), and Systems Analysis (CS 469).
  3. Choose the CPS, CIS, CMM, or CSIA option and complete the additional requirements for that option.
  4. 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.
  5. 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.

Core Curriculum Required of All Computer Science Majors

Computer Science Courses


(36 credits)

Computer Science I (CS 200) (CMM and CIS majors may take CS 210)4
Computer Science II (CS 257) (CMM and CIS 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

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 courses above the 250 level, except CS 310, 346, 401, 405, 407, and 40916

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.

Computer Information Science

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 electives8

Computer Science Courses


(20 credits)

CS courses above the 250 level, except CS 310, 346, 401, 405, 407, and 40920

Computer Science and Multimedia

Multimedia Courses


(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

Computer Science Courses


(20 credits)

CS courses above the 250 level, except CS 310, 346, 401, 405, 407, and 40920

Note: CS 315 and 316 may count as multimedia courses or computer science courses, but not both.

Computer Security and Information Assurance

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 courses above the 250 level, except CS 310, 346, 401, 405, 407, and 40916

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 Art and Art History or Communication Departments.

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:

  1. undergraduate GPA;
  2. GRE general test scores;
  3. three letters of recommendation from faculty;
  4. a statement of objectives; and
  5. undergraduate preparation in computer science.

We welcome and encourage students with backgrounds in other disciplines. The prerequisites to enter the program are as follows:

  1. Computer Science III (CS 258)
  2. Networks I (CS 336)
  3. 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:

  1. Three graduate-level courses in the Computer Science Department for a total of 12 credits.
  2. From 23 to 36 graduate credits taken within the Computer Science Department. These may include cross-listed courses.
  3. 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.
  4. 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 Policy

Lower 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 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 affect 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 Internet. 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.

Web site ©2008
Southern Oregon University
1250 Siskiyou Boulevard
Ashland , OR , 97520
541-552-7672