UNIVERSITY OF WISCONSIN OSHKOSH

COMPUTER SCIENCE



Peter Worland, Chairperson
Department Telephone: 920-424-2068

Code 34 or COMP SCI

I. FACULTY

Briscoe, Georgiev, Perrie, Salloum, Worland, Yackel

II. DEGREES

Undergraduate: A major in Computer Science can lead to the degree(s): Bachelor of Arts; Bachelor of Science.

Graduate: The Department does not offer a graduate program.

III. SUMMARY OF FIELDS OF STUDY

1. GOAL(S)
See the department for a listing of their goal(s).

2. THE MAJOR(S)
The Department offers a choice of three emphases within Computer Science Major. These are 1) Software Engineering, 2) Computer Information Systems, and 3) Professional.

The Department of Public Instruction will certify secondary education graduates to teach Computer Science in high schools if they complete the Computer Science Minor. Students need to select certain courses from the list of elective courses to satisfy the Department of Public Instruction guidelines.

3. THE MINOR(S)
The Department offers one minor: Computer Science.

IV. ADMISSION/GRADUATION REQUIREMENTS

1. Admission Procedures
Students at the University of Wisconsin Oshkosh who wish to obtain a Major or Minor in Computer Science should be formally admitted to the Computer Science Program in order to gain access to upper-level (numbered 300 to 499) Computer Science courses. Students who are not admitted are allowed to enroll in upper-level courses on a seats available basis after all admitted students have enrolled. Access to lower-level (courses numbered 100 to 299) will not be limited by this admissions policy.

Students may apply for admission to the Computer Science Program at any time in the Computer Science Department office provided that they meet the prerequisiies for admission.

Those students seeking Wisconsin teacher certification must earn a minimum grade point average of 3.00 in all courses required for their majors and minors in order to meet the requirements of the College of Education and Human Services.

Students who are denied admission to the Computer Science program in a particular term (or summer term) may reapply for admission in a subsequent term.

2. Grade Point Average
A minimum cumulative Grade Point Average of 2.5 or greater, based on transcripts for all accredited colleges attended, is required. Transcripts of students transferring to the University of Wisconsin Oshkosh will be evaluated for Grade Point Average on the same basis as the University of Wisconsin Oshkosh continuing students.

Admission to the Computer Science Program for both major and minors will be made on the basis of descending cumulative Grade Point Average (from 4.0) each term until maximum program enrollments are reached. Exceptions to the Grade Point Average criterion may be granted by the Chairperson of the Computer Science Department.

3. Courses Required Prior to Admission to the Computer Science Program:
Prerequisites for admission to the program are completion of at least two of the following five courses with a grade of "B" or better and the completion of at least two of the remaining three courses with a minimum grade of "C".

  • Computer Science 221 Programming in C++ 3 cr.
  • Computer Science 262 Object Oriented Programming in C++ 4 cr.
  • Computer Science 251 Computer Organizations and Assembler Programming 3 cr.
  • Computer Science 271 Data Structures 4 cr.
  • Mathematics 122 Mathematics for Computer Science 3 cr.

4. Continuing Student Status
The purpose of the admission policy is to maintain the quality of the Computer Science courses and programs. That quality assurance means that course enrollment limits will be maintained at a level that insures a high level educational quality and that the department will make every reasonable effort to allow admitted students to graduate in a timely fashion.

Admitted majors should not expect to be able to take more than two upper level Computer Science courses per term except as a special case. No students should expect to be able to take more than three Computer Science courses per term, or more than ten upper level Computer Science courses once admitted to the program. Admitted minors should not expect to be able to take more than one upper level Computer Science course per term, or more than four upper level Computer Science Courses during their Program of study.
In order to continue in the program in good standing, admitted students must maintain a cumulative grade point average of 2.5 or higher (based on transcripts from all accredited colleges attended). Students will also be expected to complete a minimum of one Computer Science course per term, three Computer Science courses per academic year, and 24 academic units (crs.) per academic year.

Students who have not met these program standards at the end of a particular term will be placed on Computer Science Program probation. If these standards are not met by the end of the following term, the student will be dropped from the Computer Science Program. Students dropped from the Computer Science Program may reapply, after one complete term of study, to the Department Chairperson and be considered for admission according to the admission criteria and within the number of openings in the program that term.

Exceptions to these provisions may be granted by the Chairperson of the Computer Science Department.

V. REQUIRED CORE COURSES

These courses are required of all Computer Science Majors:

Computer Science
  • Computer Science 221 Programming in C++ 3 cr.
  • Computer Science 251 Computer Organization and Assembler Programming 3 cr.
  • Computer Science 262 Object Oriented Programming in C++ 4 cr.
  • Computer Science 271 Data Structures 4 cr.
  • Computer Science 331 Programming Languages 3 cr.
One of the following
  • Computer Science 399 Internship in Computer Science 6 cr. maximum
  • Computer Science 490 Practicum in Computer Science 3 cr.
Mathematics
  • Mathematics 122 Mathematics for Computer Science 3 cr.
Physics
  • Physics 311 Digital Instrumentation 4 cr.

Comments:
Physics 311 also satisfies the one-semester laboratory science course requirement for the B.S. degree, as long as the two-course laboratory science sequence is taken as either the Biology sequence or the Earth Science sequence.

VI. THE MAJOR(S), WITH EMPHASES AND/OR OPTIONS

The requirements for a major in Computer Science consist of the courses listed in the Required Core Courses plus those listed under one of the Emphases described below. Every Computer Science major must satisfy one of these three emphases.


1.COMPUTER SCIENCE MAJOR

A. Software Engineering Emphasis
Focuses on knowledge and skills for the design, development, maintenance, and management of software, including software for the operation of instrumentation. It is appropriate for students preparing for careers as systems programmers, systems analysts, software engineers, or computer-based instrumentation specialists.

Required Units (crs.): 32 minimum

Required Courses: In addition to the Core Courses:
  • Computer Science: Computer Science 321, 341, 361; 421 or 431
  • Mathematics/Economics:Mathematics 171 or 206; Mathematics 201 or Mathematics 301 or Economics 210

Electives: Total of 12 units (crs.) to include: 6 units (crs.) from Elective List A; 6 units (crs.) from Elective Lists B and C combined (see below). The chosen electives must not be one of the required courses for the Software Engineering Emphasis.

B. Computer Information Systems Emphasis
Focuses on knowledge and skills for designing, implementing, and administering application software, including network administration and database administration, computerization plan preparation, and user requirement specification preparation. It is appropriate for students preparing for careers as systems administrators, network managers, or application programmers.

Required Units (crs.): 31 minimum

Required Courses: In addition to the Core Courses:
  • Computer Science: Computer Science 337, 341, 346, 361
  • Mathematics:  Mathematics 171 or 206
  • Mathematics/Economics: Mathematics 201 or 301 or Economics 210

Electives: Total of 12 units (crs.) to include: 6 units (crs.) from Elective List A; 6 units (crs.) from Elective List B (see below). The chosen electives must not be one of the required courses for the Computer Information Systems Emphasis.

C. Professional Emphasis
Focuses on the fundamental, practical, and theoretical foundations of computer science, providing an in-depth understanding of both the software and hardware components of computer systems. It is appropriate for students preparing for careers in scientific computing or research, and for students planning to pursue graduate degrees.

Required Units (crs.): 34 minimum

Required Courses: In addition to the CorC courses:
  • Computer Science: Computer Science 310, 321, 381, 421, 431
  • Mathematics: Mathematices 171, 172, 301

Electives: Total 6 units (crs.) from Elective List A (see below). The chosen electives must not be one of the required courses for the Professional Emphasis.

ELECTIVE LIST A:
  • Computer Science: 300, 310, 321, 337, 341, 346, 351, 361, 371, 381, 391, 421, 431, 480

ELECTIVE LIST B:
  • Business: 260, 311, 314, 315, 319, 355, 410, an MIS course approved by the Computer Science department.

ELECTIVE LIST C:
  • Physics: 305, 319, 405, 415, a Physics course approved in advance by the Computer Science department.
  • Mathematics: 222, 256, 302, 304, 342, 346, 349, 355, 356, 357, 385, 401, 402, a Mathematics course approved in advance by the Computer Science department.

VII. MINOR(S)

1. COMPUTER SCIENCE MINOR

Required Units (crs.): 23 minimum

Required Courses:
  • Computer Science: Computer Science 221, 251, 262 and 271

Electives: Any three courses from the following:
  • Computer Science: Computer Science 300, 310, 321, 331, 337, 341, 346, 351, 361, 371, 381, 391, 421, 431, 480, 490

NOTE:
Students who seek DPI certification must complete the following three courses to satisfy the elective list: Computer Science 321, Computer Science 331, and one of: Computer Science 300, Computer Science 351, Computer Science 361. Students seeking DPI certification must also complete the two unit (cr.) course, Computer Science 101; that course does not count toward the minor.

VIII. COURSE OFFERINGS

Computer Science 101 2 units (crs.)
Computers in Society
An introduction to the field of information and computer science. The evolution of computing and its implications for society are studied. This is not a computer programming course and does not apply to the Computer Science major or minor.

Computer Science 115 3 units (crs.)
Using Computers
This course introduces students to computers and their use. The course emphasizes productivity tools such as word processing, spread sheet and internet application packages. Emphasis will be placed on methodologies that acquire, organize, analyze, synthesize, and present data. This course does not apply toward the Computer Science major or minor. Students may not earn credit for both Computer Science 115 and Business Administration 210.

Computer Science 125 2 units (crs.)
World Wide Web Site Development
An introduction to the tools for developing World Wide Web pages. Topics covered include: Internet history, overview of file transfer, remote login, electronic mail, introduction to Hyper Text Markup Language (HTML), incorporating graphics, clip art and other multimedia materials, techniques and priniciples of effective presentation and uploading files to a server. This course does not apply toward the Computer Science major or minor. Not open to students who have completed Computer Science 271. Prerequisite: Computer Science 115, Business 197 or equivalent with a grade of C or better.

Computer Science 142 3 units (crs.)
Elementary Programming in Visual Basic
A service course in computer programming using the language Visual Basic. Topics covered include problem solving, algorithms, selection statements, repetition, arrays, functions and sub-programs. This course does not apply to the minor. Prerequisite: Mathematics 103 with a grade of C or better, or qualifying for either Mathematics 108 or Mathematics 171 via Math Placement Test. Not open to students who have completed Computer Science 271. (Fall, Spring)

Computer Science 221 3 units (crs.)
Programming in C++
This course is an introduction to problem solving and computer programming using the C++ Language. The following topics will be covered: using a computer system, algorithms, data types, assignment statements, input/output statements, selection, repetition, functions, value and reference parameters, scope of identifiers, arrays, character strings, print, and text files. Prerequisite: Mathematics 104, 108 or equivalent with a grade of C or better, or qualifying for a higher-level mathematics course via the Math Placement Exam. (Fall, Spring)

Computer Science 243 3 units (crs.)
Elementary Programming in COBOL
A service course in computer programming using the language COBOL. Topics covered include problem solving, algorithms, selection statements, repetition, tables, internal sub-programs, and an introduction to sequential files. This course does not apply to the minor. Prerequisite: Computer Science 142, 221, 262 or equivalent with a grade of C or better, and Mathematics 103 or equivalent with a grade of C or better, or qualifying for a higher level mathematics course via the Mathematics Placement Exam. (Fall)

Computer Science 251 3 units (crs.)
Computer Organization and Assembler Programming
An introduction to RISC-based instruction set architecture. Topics to be studied include: data representation, assembly language programming, and introduction to system software. Prerequisite: Computer Science 221 with a grade of C or better. (Fall, Spring)

Computer Science 260 3 units (crs.)
Advanced COBOL for Business
Advanced aspects of the COBOL programming language are studied in the context of business applications. Topics covered include structured design, program testing, tables, IBM Job Control Language (JCL), sorting, subprograms, sequential files, relative files, indexed-sequential files, file processing, program maintenance and database access via SQL. Prerequisite: Computer Science 243 with a grade of C or better. (Spring)

Computer Science 262 4 units (crs.)
Object Oriented Program C++
This is a course in problem solving and object oriented programming in the C++ language. Topics covered include: pointers, indirection, recursion, binary search, stream I/O, dynamic memory allocation, abstract data types, classes and objects, templates, inheritance, and operator overloading. Prerequisite: Mathematics 108 or equivalent with a grade of C or better, or qualifying for a higher level mathematics course via the Mathematics Placement Exam and Computer Science 221 or equivalent with a grade of C or better. (Fall, Spring)

Computer Science 271 4 units (crs.)
Data Structures
This course is a survey of the fundamental methods of representing data in main memory and of the algorithms which store and retrieve data. Topics covered include dynamic memory allocation, stacks, recursion, queues, linked lists, trees, binary trees, hash tables, searching, sorting, graphs and elementary concepts of algorithmic analysis. Prerequisite: Computer Science 262 with a grade of C or better. (Fall, Spring)

Computer Science 300 3 units (crs.)
Artificial Intelligence and Heuristic Programming
This course is a survey of existing techniques in the field of artificial intelligence. An introduction to the areas of robotics, theorem proving, heuristic programming, natural language processing, neural networks, and game playing is presented. Students are expected to demonstrate mastery via computer programs using the techniques of artificial intelligence. Prerequisite: Computer Science 331 with a grade of C or better.

Computer Science 310 3 units (crs.)
Computer Architecture
An introduction to digital logic and computer hardware organization. The students are introduced to elementary Boolean algebra and switching theory as related to computer architecture. Emphasis is given to the design of Central Processing Units, Arithmetic and Logic Units, and main memories. A comparison of alternate computer organizations is presented. Prerequisite: Computer Science 251, Mathematics 122, and Physics/Astronomy 311, all with grade of C or better or consent of department. (Fall)

Computer Science 321 3 units (crs.)
File Structures
This course is a continuation of the data structures course. It is a study of the representation of data and the algorithms for storing and retrieving data on secondary memory devices. The following topics are covered: magnetic tape and magnetic disk, binary and text file representations, sequential files, blocking, buffering, relative files, static and dynamic hash files, indexed files via B trees, indexed-sequential files via B+ trees, inverted files, file control specifications, external sorting algorithms, spooling and file systems. Prerequisite: Computer Science 271 and Computer Science 251 with a grade of C or better. (Fall)

Computer Science 331 3 units (crs.)
Programming Languages
A study of programming languages. Topics covered include: formal syntactic description, methods of implementation, and language features such as recursion, block structure, string processing, and list processing. Specific high level programming languages are studied to demonstrate the use of these language features. Prerequisite: Computer Science 251 and Computer Science 271 both with a grade of C or better. (Spring)

Computer Science 337 3 units (crs.)
Advanced Programming in Java
This course introduces the basic and advanced aspects of the Java programming language, and its application in Internet software development and software engineering. Prerequisite: Computer Science 271 with a grade of C or better.

Computer Science 341 3 units (crs.)
Software Systems Design
This course will provide an in-depth study and analysis of at least one large scale software system. Students will analyze, design, and partially implement an extensive software project. Case studies will address major system concerns such as specification, classification, inter-relationships, validation, and evaluation. Other topics include the use of UML, prototyping, data flow diagrams and CASE tools. Prerequisite: Computer Science 251 and Computer Science 271 both with a grade of C or better. (Fall)

Computer Science 346 3 units (crs.)
Web Software Development
An introduction to the tools for developing internet applications. Topics covered include: Internet history, the HyperText Markup Language, graphic images and manipulation, multimedia, programming in the JavaScript and PERL languages. Prerequisite: Computer Science 271 with a grade of C or better.

Computer Science 351 3 units (crs.)
Simulation
An introduction to discrete system simulation. Topics covered include queuing models, generation of random variates from non-uniform distributions, data structures for simulation systems, special purpose simulation languages (GPSS and SIMSCRIPT), random number generators and statistical analysis of output. Prerequisite: Computer Science 271 with a grade of C or better, and Mathematics 201, 301 or equivalent with a grade of C or better.

Computer Science 361 3 units (crs.)
Database Systems
An introduction to database processing with emphasis on database techniques, design, and modeling. Programming projects include implementation of selected database processing methods and the use of database software. Prerequisite: Computer Science 271 with a grade of C or better. (Spring)

Computer Science 371 3 units (crs.)
Computer Graphics
An introduction to the mathematics, data structures, and algorithms used to create both 2D and 3D graphical output. 2D topics include viewing transformation, clipping, scan conversion, geometric transformations, hierarchical modeling and animation. 3D topics include projections, viewing systems, back face culling, polygon clipping, wireframe images, visible surface algorithms, Phong reflection model, Gouraud and Phong shading techniques, color dithering, color quantization, ray tracing and Bezier patches. Prerequisite: Computer Science 271 and Mathematics 171 both with a grade of C or better. 371/571 (Spring)

Computer Science 381 3 units (crs.)
Introduction to the Theory of Computing
An introduction to the basic concepts in the theory of computing. Topics covered will include automata theory, formal languages, Turing machines, the Chomsky Hierarchy, and undecidability. Prerequisite: Computer Science 271, and Mathematics 122 or Mathematics 222 all with a grade of C or better. (Spring)

Computer Science 391 3 units (crs.)
Data Communication and Computer Networks
An introductory course which covers the basic concepts in data communication and computer networks. Topics covered will include the nature of data communication, characteristics of computer networks, the ISO-OSI network protocol layers, error detection and correction codes, and network performance considerations. Prerequisite: Computer Science 251, Computer Science 271 and Mathematics 122 each with a grade of C or better. 391/591 (Fall)

Computer Science 399 3-6 units (crs.)
Internship in Computer Science
An internship experience with a cooperating organization or corporation to provide on-the-job learning. Internships may be arranged at any time. Prerequisite: The Internship Director will establish, for each internship, the specific course and minimum grade point requirements.

Computer Science 421 4 units (crs.)
Operating Systems
An introduction to operating systems concepts. Topics covered include: interrupts, memory allocation, virtual memory techniques, process scheduling and synchronization, deadlocks, resource allocation, and file systems. A major programming project will be assigned to provide experience with operating system design. Prerequisite: Computer Science 321, Computer Science 310, and Mathematics 122 each with a grade of C or better. (Spring)

Computer Science 431 4 units (crs.)
Compilers
An introduction to compiler writing techniques for translating a higher level programming source language into a lower level target language. Topics to be covered include: definition of programming languages, lexical and syntactic analysis, low level code generation and optimization, run time systems, and error detection, reporting, and recovery. A major programming project will be assigned to provide experience with compiler design. Prerequisite: Computer Science 251, Computer Science 331 and Mathemathics 122 each with a grade of C or better. (Fall)

Computer Science 446 1-3 units (crs.)
Independent Study
See Independent Study under Course and Academic Advisement information for general course description, and general prerequisites, and proper contract from requirements.

Computer Science 474 1-6 units (crs.)
Honors: Thesis
Honors thesis projects include any advanced independent endeavor in the student's major field of study e.g., a written thesis, scientific experiment or research project, or creative arts exhibit or production. Proposals (attached to Independent Study contract) must show clear promise of honors level work and be approved by a faculty sponsor. Course title for transcript will be 'Honors Thesis.' Completed projects will be announced and presented to interested students and faculty. Prerequisite: University Honors program and junior standing. Maximum of 6 units (crs.).

Computer Science 480 3 units (crs.)
Special Topics in Advanced Computer Science
A topic of current interest in computer science will be investigated by faculty and qualified students. In addition to lectures by faculty, the students will be responsible for research and presentation of selected aspects of the topic. The course may be repeated for credit if the topic is different, and the student has the consent of department. Graduate students will be required to do an extra programming project or paper. Prerequisite: Junior standing, minimum of 6 units (crs.) of 300/400 level Computer Science courses including prerequisites for the topic, and a 3.0 grade point average. 480/680

Computer Science 490 3 units (crs.)
Practicum in Computer Science
A project oriented course that brings together the material learned in previous computer science courses. The student will investigate and solve a problem(s) under the supervision of a faculty member. Prerequisite: Computer Science 251, Computer Science 271, two other Computer Science courses at the 300/400 level each with a grade of C or better, senior standing and consent of the department.
Questions, Comments...
  Please Email registrar@uwosh.edu

Last Updated July 1, 2001