Contact us

Computer Science Department
University of Wisconsin Oshkosh
800 Algoma Blvd Oshkosh,
WI 54901

TEL: (920) 424-2068
FAX: (920) 424-0045
ROOM: 229
BUILDING: Halsey Science Center

Email: Jonathan Yackel, Chair

Course Descriptions

Click on a course number or scroll down

100 Level: 101, 115, 125, 142
200 Level: 221, 243, 251, 260, 262, 271
300 Level: 300, 310, 321, 331, 334, 335, 337, 341, 342, 346, 350, 361, 371, 381, 391, 399
400 Level: 421, 431, 446, 474, 480, 490

COMP SCI 101 Computers in Society (2 units)

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.

COMP SCI 115 Using Computers (3 units)

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. Not open to students who have completed Computer Science 271.

COMP SCI 125 Web Site Development (3 units )

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

COMP SCI 142 Elem Programming Visual Basic (3 units)

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 major or 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)

COMP SCI 221 Object-Oriented Design and Programming I (3 units)

A first course in problem solving, software design, and computer programming using the Java language. Problem solving/software design techniques will be drawn from: flow charts, pseudo code, structure charts, and class diagrams. Data structures and algorithms include: Arrays, character strings, searching, and sorting. Programming topics include: data types, assignment statements, standard input/output, selection, repetition, functions/methods, parameters, scope of identifiers, data file input/output, recursion, and simple GUIs. Prerequisite: A grade of C or better in Math 104 or Math 108 or Math 206 or Comp Sci 142, or qualifying for Math 171 via the Mathematics Placement Exam . (Fall, Spring)

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)

COMP SCI 243 Elementary Cobol (3 units)

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)

COMP SCI 251 Comp Org & Assembly Language (3 units)

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)

COMP SCI 260 Cobol Programming (3 units)

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)

COMP SCI 262 Object-Oriented Design and Programming II (4 units)

A second course in problem solving, software design, and computer programming using the Java language. Problem solving/software design topics will be drawn from: abstract data types, universal modeling language (UML), and finite-state machines (FSM). Data structures and algorithms include: recursive sorting, implementation of linked lists, stacks, queues, and use of other collection classes. Programming topics include: recursion, inheritance, polymorphism, templates, and graphical user interfaces. 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)

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)

COMP SCI 271 Data Structures (4 units)

A course surveying the fundamental methods of representing data in memory and the algorithms which access data, using the C++ language. Data structures and algorithms include: trees, heaps, priority queues, hashing, searching, sorting, graphs, and elementary analysis of algorithms. Programming topics include: dynamic memory allocation, pointers, templates, and the C++ Standard Template Library (STL). Prerequisite: Computer Science 262 with a grade of C or better. (Fall, Spring)

Prerequisite: Computer Science 262 with a grade of C or better. (Fall, Spring)

COMP SCI 300 Artificial Intelligence (3 units)

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 262 with a grade of C or better.

COMP SCI 310 Comp Architecture (3 units)

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)

COMP SCI 321 File Structures (3 units)

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)

COMP SCI 331 Programming Languages (3 units)

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)

COMP SCI 334 Adv Visual Basic Programming (1 unit)

The objectives of this course are to provide fast-paced coverage of writing Windows applications in Visual Basic to students who already have substantial programming experience in another language. The course will describe Visual Basic in the context of Microsoft's .NET framework and focus on a number of advanced concepts. These concepts will include, but are not limited to, the event-handling model, object-oriented programming, a wide range of GUI controls, file-handling, database access, ASP, .NET, Web forms, and Web controls.

Prerequisite: Computer Science 271 with a grade of C or better.

This course does not count toward the CompSci major or minor. It does count for credit toward the degree.

COMP SCI 335 Windows & GUI Programming (2 units)

This course examines modern Windows and GUI programming and design techniques, using the Microsoft.Net framework as a basis. The course will include an overview and history of GUI programming. The C# language will be studied, along with an introduction to back-end database (ADO.Net) connectivity within .Net, and its role in the tiered structure of modern application design. Web-based forms and Active Server Pages (ASP.Net) will be covered, along with the recent concept of XML Web Services. Finally, the course will look at aspects of components, deployment and class design within the .Net environment, concluding with other advanced .Net techniques such as Reflection.

Prerequisite: Computer Science 334 both with a grade of C or better.

This course does not count toward the CompSci major or minor. It does count for credit toward the degree.

COMP SCI 337 Advanced Java (3 units)

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.

COMP SCI 341 Software Engineering I (3 units)

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)

COMP SCI 342 Software Engineering II (3 units)

Software Engineering is the second of a two-semester sequence on the topic of modern Software Engineering tools and techniques. Topics covered include Design Patterns, the Unified Modeling Language (UML), Component-based Software Development, Advanced OO Design and Analysis, Refactoring, and other techniques such as Extreme Programming. An extensive software development project will allow for practical application of the discussed techniques.

Prerequisite: Computer Science 341 with a grade of C or better.

COMP SCI 346 Web Software Dev (3 units)

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.

COMP SCI 350 Ethical Issues in Computing (1 units)

A study of the evolution of computing, its implications for society, and the ethical issues underlying those implications. This course will focus on reading the current literature regarding these issues and on presenting the pros and cons of such issues in both oral and written fashion. The course is required for all Computer Science majors in the Computer Science Emphasis and is strongly recommended for all Computer Science majors.

Prerequisites: Junior Standing. Departmental permission is required to register.

COMP SCI 361 Database Systems (3 units)

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)

COMP SCI 371 Computer Graphics (3 units)

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 262 and Mathematics 171 both with a grade of C or better. 371/571

COMP SCI 381 Theory of Computing (3 units)

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.

COMP SCI 391 Computer Networks (3 units)

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

COMP SCI 399 Comp Sci Internship (3 units min / 6 units max)

An internship experience with a cooperating organization or corporation to provide on-the-job learning. Internships may be arranged at any time.

Download internship guideline and coversheet.

Prerequisite: The Internship Director will establish, for each internship, the specific course and minimum grade point requirements.

COMP SCI 421 Operating Systems (4 units)

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 and Mathematics 122 each with a grade of C or better. (Spring)

COMP SCI 431 Compilers (4 units)

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)

COMP SCI 446 Com Sci Independent Study (1 unit min / 3 units max)

See Independent Study under Course and Academic Advisement information for general course description, general prerequisites, and proper contract from requirements.

COMP SCI 474 H:Thesis (1 unit min / 6 units max)

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

COMP SCI 480 Topics in Comp Sci (3 units)

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: Computer Science 271 with a grade of C or better.

COMP SCI 490 Pract Comp Science (3 units)

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.

Download practicum guideline and coversheet.

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.

COMP SCI 571 Computer Graphics (3 units)

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 with a grade of C or better and Mathematics 171 (or equivalent) with a grade of C or better. 371/571

COMP SCI 591 Computer Networks (3 units)

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: Mathematics 122, Computer Science 251 and 271, each with a grade of C or better. 391/591

COMP SCI 680 Topics in Comp Sci (3 units)

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: Computer Science 271 with a grade of C or better (for undergraduates only). 480/680

Last update: September 12, 2005

University of Wisconsin Oshkosh