Computer Science / 2003 - 2004 Catalog
 
CATALOG HOME ACADEMICS  CAMPUS COMMUNITY  SOU TODAY  FIND IT 
 search SOU: 

Degrees

Choosing a Major

Requirements for Major

Minor

Graduate Program

Computer Information Systems Courses

Computer Science Courses

Computer Science

Computing Services Center 212
541-552-6143
Dan Wilson, Chair

Professor
Daniel Wilson
Associate Professor
Rahul Tikekar
Assistant Professor
Tom Bacon
Daniel Harvey
Peter Nordquist
Greg Pleva
Kevin Sahr
Adjunct Faculty
Lynn Ackler
Emeritus Faculty
George Converse
Lee Hill
Ken Larson
Robert McCoy
Richard Peddicord

Computer science is an exciting and growing field with career opportunities ranging from running a small business to working in big 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.

Back to top of page.

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 with an emphasis in Computer Science (CS)

Co-Major

Mathematics-Computer Science (see page 109 for a description of this program)

Accelerated Baccalaureate Degree Program

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

Back to top of page.

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.

Back to top of page.

Requirements for Major

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

Programming I (CIS 200)4
Programming II (CS 257)4
Programming III (CS 258)4
System Software and Architecture (CIS 326)4
Networks I (CIS 336)4
Databases (CIS 360)4
Systems Analysis (CS 469)4
Capstone I (CS/CIS 470)4
Capstone II (CS/CIS 471)4

Math Courses


(4 credits)

Elementary Statistics (Mth 243)4

Computer Programming and Software Option Core

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
Electives in computer science above the 250 level16

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 149).

Computer Information Science Option Core

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


(20 credits)

Advanced Databases (CIS 460)4
Electives in computer science above the 250 level16

Computer Science and Multimedia


(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
Careers in Multimedia (AM 343)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 (CIS 420)4
Computer Graphics I (CS 316)4
Computer Graphics II (CS 416)4
Technology and Learning (Ed 320)3

Note: 20 additonal credits with a CS prefix above the 250 level. CS 316 and 416 cannot count for the additional 20 credits and for multimedia credits.

Computer Security and Information Assurance

Computer Courses


(36 credits)

C and Unix (CS 367)4
Data Structures (CS 411)4
Systems Administration in Unix (CS 426)4
Secure Programming (CS 367)4
Networks II (CIS 436)4
Wireless Networks (CIS 446)4
Security I (CIS 457)4
Security II (CIS 458)4
Security III (CIS 459)4

Math Courses


(8 credits)

Discrete Structures (Mth 235)4
Calculus I (Mth 251)4

Other Courses


(8 credits)

Information Technology: Legal and Ethical Issues (Phl 310)4
Computer Forensics (Crim 346)4

Back to top of page.

Minor


(28 credits)

Elementary Statistics (Mth 243)4
Programming I (CIS 200)4
Programming II (CS 257)4
Programming III (CS 258)4
System Software and Architecture (CIS 326)4
Networks I (CIS 336)4
Databases (CIS 360)4

Students need at least a 2.5 GPA in the required courses.

Back to top of page.

Graduate Program

The department offers a school area MS degree in mathematics/computer science with a computer science option. This program is designed to extend the concepts learned in an undergraduate computer science/computer information systems program and is tailored to suit the interests and background of the student. The faculty have research interests in databases, distributed systems, graphics, networking, and Internet programming. Students enjoy access to a wide variety of hardware (Macintosh, UNIX, and Windows platforms) and software. Interaction with local businesses is encouraged.

Information about school area master’s degrees, including requirements for entrance and credit needed for completion, may be found under the Graduate Programs section on page 173. In addition to the general requirements for entrance, the Computer Science Department requires a year of programming; an introduction course in databases, including normalization and SQL; and an introductory course in networks.

Back to top of page.

Computer Information Systems Courses

See Course Prerequisites Policy

Lower Division Courses

CIS 199 Special Studies
Credit to be arranged

CIS 200 Programming I
4 credits
Introduces programming, including fundamental control and data structures.

CIS 209 Practicum
Credit to be arranged

Upper Division Courses

CIS 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: CIS 200.

CIS 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.

CIS 345 End User Computing
4 credits
Introduces the information center concept and its methods for system configuration, as contrasted with the traditional life cycle development methodologies. Includes information center techniques for providing consultation and assistance in the assembly and testing of systems components. Prerequisite: CS 257.

CIS 360 Databases
4 credits
Introduces the concepts necessary for designing and implementing database systems. Emphasizes data modeling, normalization, and SQL. Prerequisite: CS 257.

CIS 380 Advanced Visual BASIC
4 credits
Introduces advanced topics in the Visual BASIC language. Emphasizes access to databases and relational database concepts, database controls, network controls, and optional Visual BASIC program formats, such as DLLs and EXEs. Covers the creation of classes and class modules in Visual BASIC. Addresses net programming and use of the Windows API. Prerequisites: CIS 336 and 360.

CIS 399 Special Studies
Credit to be arranged

CIS 401/501 Research
Credit to be arranged

CIS 403/503 Thesis
Credit to be arranged

CIS 405/505 Reading and Conference
Credit to be arranged

CIS 407/507 Seminar
Credit to be arranged

CIS 409/509 Practicum
Credit to be arranged

CIS 420/520 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.

CIS 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: CIS 336 and 360.

CIS 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: CIS 432.

CIS 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: CIS 336.

CIS 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: CIS 336

CIS 457/557 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: CIS 336

CIS 458/558 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: CIS 457

CIS 459/559 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. Addresses both wired and wireless systems security.
Prerequisite: CIS 458

CIS 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: CIS 360.

CIS 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: CIS 460.

CIS 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.

CIS 471/571 Capstone Project II
4 credits
The Capstone II goal is to finish the work started in Capstone I by creating and implementing the software solution and completing documentation. The documentation should address project maintenance and the operating procedures required to run the student’s software. Prerequisite: CIS 470/570.

Back to top of page.

Computer Science Courses

See Course Prerequisites Policy

Lower Division Courses

CS 109 Practicum
Credit to be arranged (1–3 credits and 3 credits maximum in any one activity; 9 credits maximum total)

CS 115 Microcomputer Applications I
4 credits
This introductory, hands-on course surveys computer applications, including operating systems, word processors, spreadsheets, and databases.

CS 199 Special Studies
Credit to be arranged

CS 209 Practicum
Credit to be arranged

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 Programming 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: CIS 200 or equivalent programming experience.

CS 258 Programming 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

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 morals and laws surrounding digital technology and to be able to form sound moral and legal positions in the digital world of the twenty-first century.
Prerequisite: Completion of all lower division general education requirements.
Approved for general education (Synthesis)
Cross-listed with Phl 310

CS 312 Simulation
4 credits
Examines theoretical and practical foundations of the science 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: Mth 243 and CS 257

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 321 Computer Architecture
4 credits
Investigates various philosophies for defining hardware and software interfaces within the computer system. Includes an introduction to general topics in computer architecture and organization, followed by a survey of representative case studies. Includes advanced topics such as interrupts, synchronization, fault-tolerant computing, and performance analysis.
Prerequisite: CS 275

CS 346 Computer Forensics
4 credits
Surveys the technologies, techniques, and responsibilities of a criminal or civil investigation involving computers, networks, network 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 and 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.
Prerequisite: Completion of all lower division general education requirements.
Approved for general education (Synthesis)
Cross-listed with Crim 346

CS 352 Programming Languages
4 credits
Offers a formal definition of programming languages, including the specification of syntax and semantics. Covers simple statements, such as precedence, infix, prefix, and postfix notation. Examines the global properties of algorithmic languages, including the scope of declarations, storage allocation, statement grouping, binding time of constituents, subroutines, co-routines, and tasks. Prerequisite: CS 258.

CS 356 Programming Topics
3–5 credits each topic
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 367 C and UNIX
4 credits
Explores concepts of the UNIX operating system and the C programming language. Students learn how to use a UNIX operating system and to program in C on the UNIX operating system. Prerequisite: CS 258.

CS 399 Special Studies
Credit to be arranged

CS 401/501 Research
Credit to be arranged

CS 403/503 Thesis
Credit to be arranged

CS 405/505 Reading and Conference
Credit to be arranged

CS 407/507 Seminar
Credit to be arranged

CS 409/509 Practicum
Credit 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: Mth 235 and CS 258

CS 416/516 Computer Graphics II
4 credits
Continues study of computer graphics started in CS 316. Offers techniques to create displays with hidden line removal, as well as shading, shadows, and stereographics. Develops ray tracing. Prerequisite: CS 316.

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 367 and CIS 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 367 and Mth 235.

CS 455/555 Topics in Computer Science
3–5 credits each topic
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 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 467/567 Secure Programming
4 credits
Explores the major security issues in writing software. Topics include buffer overflows, access control, race conditions, randomness, input validation, and passwords. Teaches the importance of planning for security and some of the compromises involved in addressing security issues.
Prerequisite: CS 367

CS 469/569 Systems Analysis
4 credits
Covers both classical and current ideas in systems analysis, including lifecycle models, data analysis models, data-flow diagrams, entity-relationship diagrams, and object models. Students participate in a software development process and write a research paper on the merits of alternative solutions to a software development problem. Prerequisites: CIS 326, 336, 360, and CS 258. Must have a 2.5 GPA in computer science classes.

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 student’s software. Prerequisite: CS 470/570.

CS 581 Topics in the Foundations of Computer Science
4 credits (may be repeated with different topics)
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 (may be repeated with different topics)
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 (may be repeated with different topics)
Covers selected topics in software engineering. Sample topics include metrics, design methodologies, and quality assurance.

S O U LOGO

While every effort is made to ensure the accuracy of the information in this catalog, Southern Oregon University and the Oregon State Board of Higher Education have the right to make changes at any time without prior notice. This catalog is not a contract between Southern Oregon University and current or prospective students.

SOU HOME   •  ACADEMICS   •   CAMPUS COMMUNITY   •   SOU TODAY   •   FIND IT



Website © 2000-2002 Southern Oregon University.
1250 Siskiyou Boulevard, Ashland, OR 97520
(541) 552-7672

About this Web site.
For other inquiries, please contact the appropriate office.