Personal tools
You are here: Home > Major, Minor & Emphasis > Courses > Course Descriptions

Course Descriptions

by schrod69 — last modified Mar 15, 2014 05:48 PM
View the full computer science course listing and descriptions.

Courses

Click on a course number or scroll down:

 

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 Computing major or minor. Students may not earn credit for both CompSci-115 and Business Administration-210. Not open to students who have completed CompSci-271.

Prerequisite: None. (Fall, Spring)

 

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 Computing major or minor. Not open to students who have completed CompSci-271.

Prerequisite: None. (Fall or Fall Interim, Spring)

 

COMP SCI 142 Elementary 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 toward the Computing major or minor. Not open to students who have completed CompSci-271.

Prerequisite: Math-103 with a grade of C or better, or qualifying for either Math-104 or Math-171 via Math Placement Test. Not open to students who have completed CompSci- 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 an object-oriented language. Problem solving/software design techniques include: flow charts, pseudo code, structure charts, structure charts, and UML class diagrams. Data structures and algorithms include: arrays, characters strings, Linear search. Programming topics include; data types assignment statements, standard input/output, selection, repetition, functions/methods, parameters, scope of identifiers, debugging.

Prerequisite: A grade of C or better in Math 104 or Math 108 or Math 206 or Computer Science 142, or qualifying for Math 171 via the Mathematics Placement Exam. (Fall, Spring)

 

COMP SCI 251 - Computer Architecture and Assembly Language (3 units)

An introduction to RISC-based instruction set architecture. Topics include: data representation, assembly language programming, run-time storage management, pointers and references as exemplified in the C++ programming language, and introduction to system software.

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

 

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

A second course in problem solving, software design, and computer programming using an object-oriented language. Problem solving/software design topics include: abstract data types, universal modeling language (UML), simple recursion, unit testing, event-handling, simple concurrency. Data structures and algorithms include: binary search, simple sorting algorithms, use of collection classes and their iteration protocols, sequential file processing. Additional topics include: inheritance, polymorphism, graphical user interfaces, simple use of threads.

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 and the algorithms that implement and use those data representation techniques. Data structures and algorithms include; linked lists, stacks, queues, trees, heaps, priority queues, hashing, searching, sorting, data compression, graphs, recursion. Analysis topics include: elementary big-O analysis, empirical measurements of performance, time/space trade-offs, and identifying differences among best, average, and worst case behaviors.

Prerequisite: Computer Science 262 with a grade of C or better and either completion of Computer Science 251 with a grade of C or better or concurrent registration in Computer Science 251. (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: CompSci-271 with a grade of C or better. (Every 3rd semester)

 

COMP SCI 310 Computer Organization and Design (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: CompSci-251, and Math-212, with grade of C or better. Prerequisite or concurrent enrollment: Physics-311. (Every 3rd semester)

 

COMP SCI 314 Practice for ICPC competition (1 unit, repeatable)

This course is taken by students participating in the November ACM International Collegiate Programming Contest. During the course and prior to their participation in the contest, students practice team-oriented problem-solving strategies in areas that often arise in the problems that are given during the contest. These areas include data structures, string manipulation, combinatorics, graph algorithms, dynamic programming, and computational geometry.

Prerequisite: Departmental consent, offered each fall in conjuntion with the November competition.

 

COMP SCI 321 Algorithms (3 units)

Algorithm design techniques including brute-force, backtracking, divide-and-conquer, dynamic programming and greedy algorithms. Other topics include big-O and amortized analysis, recurrence relations in the analysis of recursive algorithms, numerical algorithms, pattern matching, data integrity, authentication, and encryption.

Prerequisite: Computer Science 271 and Math 212 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: CompSci-271 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.

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

Prerequisite: CompSci-262 with a grade of C or better. (Every 3rd semester)

 

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.

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

Prerequisite: Concurrent registration in CompSci-334 or prior completion of CompSci-334 with a grade of C or better. (Every 3rd semester)

 

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: CompSci-271 with a grade of C or better OR Junior-level standing and CompSci-262 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: CompSci-271 and CompSci-341, each with a grade of C or better. (Spring)

 

COMP SCI 346 Web Software Development (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: CompSci-262 with a grade of C or better. (Fall)

 

COMP SCI 347 Introduction to Usability (3 units)

This course presents the basic theory and professional views on design and usability, with an emphasis on human-computer interaction in web-based environments. The nature of life in general requires an understanding of how people think and act. What makes a well-designed door versus a poorly designed door? Understanding the answer scientifically is based on understanding people and usability, not the mechanics of doors. This class will focus on several basic principles that range from defining usability, design, sketches and how to evaluate usability. A case study will be conducted using high-level psychology and visual perception concepts that often pertain to usability.

Prerequisites: Computer Science 142 or Computer Science 221, and Math 201 or Math 301 or Econ 210 or Psychology 203, and junior standing.(Spring)

 

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 Computing majors.

Prerequisites: Junior standing and completion of Computer Science 262 wih a grade of C or better. (Spring)

 

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: CompSci-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: CompSci-262 and Math-171 or Math 206 each with a grade of C or better. (Every 3rd semester)

 

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: CompSci-271, and Math-212 or Math-222 all with a grade of C or better. (Every 3rd semester)

 

COMP SCI 391 Data Communication and 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: CompSci-251, CompSci-271 and Math-212 each with a grade of C or better. (Every 3rd semester)

 

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: CompSci-271 and Math-212, both with a grade of C or better. (Spring)

NOTE: The Computer Science Department will accept courses similar to CompSci-421 from all other schools as counting toward the list of "elective courses," but not the list of "required courses."

 

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: CompSci-331 and Math-212 each with a grade of C or better. (Fall)

NOTE: The Computer Science Department will accept courses similar to CompSci-431 from all other schools as counting toward the list of "elective courses," but not the list of "required courses."

 

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: Junior-level standing and consent of the instructor. (Every 3rd Semester)

Note: In Fall 2013, the topic of this course will be Introduction to algorithmic self-assembly. The course will be taught by our new faculty member Dr. Scott Summers, who has provided a description of what he will cover in the course.   Dr. Summers has indicated that completion of CS 262 with a satisfactory grade will be all that is required to get into the course.   However, since the pre-requisite for this course varies depending on what is being covered in it, TitanWeb will ask for "instructor consent" before you can enroll.   To get the instructor consent necessary to enroll in the course, contact Department Chair Tom Naps.

Practicum and Internship

The courses CompSci-399 Internship in Computer Science and CompSci-490 Practicum in Computer Science are designed to be the capstone courses for the major or minor. Either course satisfies the Writing Emphasis requirement in the Computer Science Department. Each semester a faculty member in the Computer Science department is assigned the duties of being the "Practicum & Internship Coordinator." The name of and the times to see the coordinator are posted in the departmental office each semester.

 

COMP SCI 399 Internship in Computer Science Credits (3 units)

An internship experience with a cooperating organization or corporation to provide on-the-job learning. This course satisfies the Writing Emphasis requirement for the Computing major.

The internship guidelines and application form are online.

Prerequisites: 75 credits toward graduation, six credits of 300-400 level Computer Science courses.  Concurrent registration in Intrdscp 208 (Professional Career Skills in Math and Natural Science, 1 credit) or completion of Intrdscp 208 with a passing grade.

 

COMP SCI 490 Practicum in Computer 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 supervision. This course satisfies The Writing Emphasis requirement for the Computing major.

The internship guidelines and application form are online.

Prerequisite: 75 credits toward graduation and six credits of 300-400 level Computer Science courses.  Concurrent registration in Intrdscp 208 (Professional Career Skills in Math and Natural Science, 1 credit) or completion of Intrdscp 208 with a passing grade.

During any semester, the coordinator is the only faculty member who discusses the mechanics and approves practicums and internships for that semester or any future semester.

Mechanics of the practicum and internship:

  1. Talk to the coordinator one or two semesters before you intend to enroll!
  2. The proposal must actually be a "proposal" of a project yet to be done. Any proposal for projects which have already been essentially completed will be approved only by "petition;" the approval will require departmental action.
  3. You always need an add card to enroll in practicum or internship. The add card is signed by the practicum and internship coordinator at the time the proposal is approved. You are encouraged to have your proposal approved the semester before you enroll in the course!This means that if you intend to earn credit during the Fall of 2011, you should have your proposal approved during Spring or Summer of 2010.
  4. The last date to enroll in Practicum or Internship will be the end of the second week of the semester you plan on being enrolled in this course. The deadline for a Summer internship is the last day of the first week of the semester.
  5. Writing Emphasis:
    • One credit of the grade is based on written work done during the practicum/internship.
    • The written assignments include: three progress reports, and the final report. A training journal is also required for the internship.
    • The written work will be submitted to the Practicum/Internship Coordinator for comments and revised until accepted by the Practicum/Internship Coordinator.
  6. A final oral presentation is required for both practicum and internship.
  7. Practicum and Internship are seventeen week courses. You will receive a grade of incomplete for the practicum or internship, if you have not completed the work by the last date for completing work in a semester. This could affect your graduation date.
    by schrod69 — last modified Mar 15, 2014 05:48 PM
    Contact Us

    Computer Science Department
    UW Oshkosh
    800 Algoma Blvd.
    Oshkosh, WI 54901

    Phone: (920) 424-2068
    Fax: (920) 424-0045
    Building: Halsey Science Hall


    Rooms: 229 (general office), 221 (David Furcy, co-chair), 214 (Tom Naps, co-chair)

    Email: Send mail to co-chairs at cschair@uwosh.edu