Computer Science

Phillips 130
715-836-2526
Department Website

About Us

Computer Science and Software Engineering are disciplines that combine concepts from mathematics, science, and engineering into a coherent and disciplined study of the software and hardware required for computation. The programs offered by the UW-Eau Claire Department of Computer Science provide the fundamental education necessary to prepare students for positions in industry or to pursue graduate study. The curriculum is organized so that graduates will be able to meet immediate demands for solving computational problems or designing state-of-the-art computer systems, yet also have an understanding of the basic principles and concepts in computer science needed to avoid technological obsolescence in a rapidly changing environment. This program is intended to produce computer science professionals, not merely technicians with some training in computer software and hardware. Success requires a strong aptitude in mathematics.

The Program for Majors and Minors

Department faculty constantly examine the curriculum to ensure that students gain both the breadth and depth of knowledge needed to be successful in careers in business and industry, or in graduate school. The major/minor curriculum includes:

  1. Introductory courses which cover the basic principles of Computer Science.
  2. The use of object-oriented and other programming paradigms.
  3. An integrated blend of courses which cover the tools, knowledge, problem-solving, and programming techniques that form the basis for a successful career.
  4. A capstone experience.

Departmental Honors in Computer Science

Eligibility: Students with resident and total GPAs of 3.50 or higher and a 3.50 or higher in at least 12 credits of computer science.

Procedure: A written application for Departmental Honors in Computer Science shall be approved by the research advisor and the departmental honors committee. The application and approval process must be completed no later than the end of the junior year.

Requirements:

  1. The satisfactory completion of
    1. six credits of registration in Computer Science Research, including the writing of a research paper;
    2. an oral presentation to be given to at least three members of the faculty.
  2. Resident and total GPAs of 3.50 or higher in both the computer science major and for all credits attempted to meet graduation requirements.
  3. Participation in at least one Student ACM Programming Contest.

Information for All Students

It is strongly recommended that the student have a grade of C or above in any Computer Science course which is to be used as a prerequisite to another course. Where a grade of C- or below is earned in a Computer Science course, the student should repeat the course before continuing.

Satisfactory/Unsatisfactory Policy

The Satisfactory/Unsatisfactory option may not be elected to satisfy a course requirement at the 200 level or higher for the major or minor programs, except for CS 490.

Faculty

Jack Tan, Chair

Heather Amthauer

Alexander Cobian
Ryan Hardt
Christopher Johnson
Daniel Stevenson
 

CS 100 Computer Information Technologies (3 crs)

Prerequisite: Lecture/Discussion Hours: 2.5^Lab/Studio Hours: 1^^• No credit toward computer science major or minor. Not applicable for satisfying B.S. GE-IB requirement in College of Arts and Sciences.^^Development and application of appropriate processes and tools to access, organize, evaluate, and communicate information using spreadsheets (MS Excel), word processors (MS Word), databases (MS Access), presentation software (MS PowerPoint), and web-based/internet utilities. Appropriate for students seeking a broader or deeper preparation for efficiently using computer information technologies.

N

Attributes: GE IB Communication-Analytical Skills

CS 145 Programming for New Programmers (4 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 2^^• Students with prior programming experience should take CS 148 instead of CS 145. ^^A general introduction to programming, introducing data types, procedural abstraction, flow control, and object-oriented design.

N

Grading Basis: MATH 109 or concurrent, or placement into MATH 111, 112, 113, 114, or 215. Computer science majors must take concurrently with CS 146. Cannot earn credit in both CS 145 and CS 148

CS 146 The Big Picture in Computer Science (1 cr)

Prerequisite: Lecture/Discussion Hours: 1^Lab/Studio Hours: 0^^• Must be taken by students during their first semester in the computer science major.^^Explores how a liberal education relates to computer science, the impacts of computers on society, and ethical expectations of the discipline. Provides an overview of computational thinking and technical topics.

N

Grading Basis: Limited to computer science majors. Must be taken concurrently with CS 145 or CS 148.

CS 148 Programming for Experienced Programmers (4 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 2^^• Students with prior programming experience take CS 148 instead of CS 145.^^A project-based study of programming concepts. Topics build upon student's prior exposure to variables, functions, conditionals, loops, and arrays.

N

Grading Basis: MATH 109 or concurrent, or placement into MATH 111, 112, 113, 114, or 215. Computer science majors must take concurrently with CS 146. Cannot earn credit in both CS 145 and CS 148

CS 163 Introduction to Programming in C++ (3 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 0^• Three years of high school, college preparatory mathematics.No credit for CS majors if taken after or concurrently with CS 145 or CS.^A general introduction to the design of computer software. Object-oriented design and implementation techniques including abstraction, encapsulation, and inheritance are emphasized. Applications chosen from mathematics, science, and business are used to demonstrate and motivate understanding of object-oriented programming.

N

Attributes: GE IB Communication-Analytical Skills

CS 170 Computing for the Sciences and Mathematics (3 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 0^^Aspects of computation that are particularly relevant to scientific^computation. Discussion of numeric processing, symbolic processing, data^management, data representation, and scientific visualization. Students^design and implement computer programs.

N

Attributes: GE V University Wide

Grading Basis: MATH 112, or MATH 113, or placement into MATH 114 or MATH 215.

CS 245 Advanced Programming and Data Structures (4 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 2^^Advanced object-oriented programming techniques including OO design, distributed and concurrent computation, GUI development, and testing. Implementation and use of data structures including lists, stacks, queues, trees, and graphs.

N

Grading Basis: CS 145 or CS 148. MATH 112 or concurrent enrollment, MATH 113 or concurrent enrollment, or placement into MATH 114 or MATH 215.

CS 252 Computer Systems (4 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 2^^Introduction to systems level concepts including number system representation, digital logic, machine models, assembly language, UNIX, C programming and memory management, and parallel architectures.

N

Grading Basis: CS 245, MATH 114 or concurrent enrollment.

CS 260 Database Systems (4 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 2^^A study of fundamental database concepts including: SQL, database design and normalization, transactions and concurrency, embedded SQL, and stored procedures.

N

CS 268 Web Systems (3 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 0^^Introduction to programming Web-based applications. Multiple modern Web technologies are covered in depth and compared. Web frameworks, server configurations, and security issues are discussed.

N

Grading Basis: CS 245. May be taken concurrently with CS 260.

CS 278 Digital System Design (4 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 2^^• No credit if taken after Special Topics course of the same title.^^Logic components, Boolean algebra and algorithmic logic simplification, combinational logic analysis and synthesis, synchronous and asynchronous sequential logic analysis and synthesis, finite state machine design, programmable logic and FPGAs, Verilog programming for synthesis.

N

Grading Basis: Either CS 145 or CS 163, or consent of instructor.

CS 290 Introduction to Data Management (3 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 0^^An introduction to managing data using technology. Topics include understanding different types of data, managing data using spreadsheets and databases, creating application macros to manipulate data, designing and implementing databases, and visualizing data.

Consent: A-F Grades Only

N

Attributes: GE IB Communication-Analytical Skills, BPS Flat Rate Tuition

Grading Basis: Limited to organizational leadership and communication comprehensive major, Bachelor of Professional Studies degree.

CS 291 Special Topics (1-3 crs)

Prerequisite: • See current Class Schedule.^^An examination of current topical material of special interest to students and faculty.

N

Repeat: Course may be repeated

CS 318 Fundamentals of Web Page Design (3 crs)

Prerequisite: Lecture/Discussion Hours: 2^Lab/Studio Hours: 2^^Basic concepts, coding standards, accessibility guidelines, and technologies of client-side Web page design. Hypertext Markup Language (HTML), Cascading Style Sheets (CSS), and techniques for controlling page layout, animations, and user interactions.

N

Attributes: GE IB Communication-Analytical Skills

CS 319 Introduction to Web Programming (3 crs)

Prerequisite: Lecture/Discussion Hours: 2^Lab/Studio Hours: 2^^• No credit toward computer science major requirements.^^Introduction to client and server side Web programming. Includes basic programming concepts, user input validation, dynamic Web pages, and data retrieval and display.

N

Attributes: GE IB Communication-Analytical Skills

Grading Basis: CS 318. No credit if taken after CS 268.

CS 320 Web Database Design and Implementation (3 crs)

Prerequisite: Lecture/Discussion Hours: 2^Lab/Studio Hours: 2^^• No credit toward computer science major requirements.^^Introduction to databases for Web applications. Architecture, design considerations, and implementation of relational database systems. Web/database application development.

N

Grading Basis: CS 318 or concurrent enrollment; CS 319 or concurrent enrollment.

CS 321 Web Design and Development (3 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 0^^Analysis, design, and implementation techniques for Web site development. Includes preparation of design documents development, deployment, and testing. Students complete and deploy a comprehensive Web site working with clients and end-users.

N

Attributes: Service-Learning, Full 30 Hours

Grading Basis: CS 320

CS 322 Animation Programming (3 crs)

Prerequisite: Lecture/Discussion Hours: 0^Lab/Studio Hours: 3^^Introduction to current technical and creative trends in digital animation principles, including real-time, interactive animations, gestural interfaces, and basic motion capture for use in animation and game development.

N

CS 330 Programming Languages (3 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 0^^Study building blocks of modern programming and programming paradigms^including functional, imperative, object-oriented, and logical. Emphasis on^teaching students how to learn new programming languages. In-depth^study of C++ and memory management techniques.

N

Grading Basis: CS 252

CS 335 Algorithms (3 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 0^^Discussion of algorithm design, problem-solving methods. Specific algorithm topics include divide-and-conquer, dynamic programming, and backtracking.

N

Grading Basis: CS 245. Concurrent enrollment in MATH 314.

CS 352 Computer Architecture (3 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 0^^A study of hardware organization and architecture including performance metrics, machine data and instruction representations, computer arithmetic, assembly language programming, ALU design, CPU design and control, micro-programming, pipelining, cache memory systems, and I/O peripherals.

N

Grading Basis: CS 252

CS 355 Software Engineering I (3 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 0^^A hands-on experience in software engineering with key aspects of the software development life cycle. Focus is on the application of a high-level development environment to the fulfillment of an object-oriented software design specification. An introduction to modern design patterns.

N

Grading Basis: CS 260. Credit cannot be earned in both CS 321 and CS 355.

CS 370 Computer Security (3 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 0^^Study of system, network, database, application and web security. Practical experience with tools for information gathering, vulnerability analysis, system hardening and intrusion detection as used for defending computer systems, culminating in a cyberwar exercise.

N

Grading Basis: CS 252

CS 376 Cryptography and Network Security (3 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 0^^Basic and advanced cryptographic protocols and techniques. Block and stream ciphers, one-way hash functions, public-key and public-key digital signature algorithms, and key-exchange protocols. Network authentication, secure email, IP SEC, and web security.

N

Grading Basis: CS 255

CS 388 UNIX Systems Programming (3 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 0^^• Programming experience in C or C++.^^In-depth coverage of the UNIX command shell, file manipulation, process control, file system utilities, mail, pipes and filters, I/O redirection, process management, UNIX editors, scripting language, and shell scripting.

N

CS 396 Junior Seminar (1 cr)

Prerequisite: Lecture/Discussion Hours: 1^Lab/Studio Hours: 0^^Examination of selected topics in computer science through invited business speakers, traditional lecture, and independent investigation.

N

Grading Basis: CS 146 and minimum junior standing, or consent of instructor. Limited to computer science majors.

CS 399 Independent Study - Juniors (1-3 crs)

Prerequisite: Individual project under the direction of a faculty member.

N

Repeat: Course may be repeated

Grading Basis: Minimum junior standing.

CS 420 Artificial Intelligence (3 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 0^^Investigation of the theories and techniques of knowledge representation and automated reasoning as the foundation of artificial intelligence. Includes the comparative analysis of established theories and the synthesis of automated problem-solving behavior.

N

Grading Basis: CS 335

CS 436 Mobile Software Development (3 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 0^^Developing software for mobile devices, designing for interruptions, creating service-oriented architectures, and sensing the physical world.

N

Grading Basis: CS 245

CS 450 Theory of Computation (3 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 0^^A study of finite automata and regular languages, pushdown automata and context-free languages, Turing machines and recursively enumerable sets, linear-bounded automata and context-sensitive languages, computability and the halting problem, undecidable problems, and the Chomsky hierarchy.

N

Grading Basis: CS 335

CS 452 Operating Systems (3 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 0^^A study of modern operating system concepts, process/thread structure, process management, scheduling, synchronization. Memory management, virtual memory, caching. Storage and I/O device management. Distributed operating systems and distributed computation.

N

Grading Basis: CS 252

CS 455 Computer Graphics (3 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 0^^A study of 3-D modeling, rendering, and animation. Modeling includes constructive solids geometry, NURBS, and scene graphs. Rendering includes lighting models, raytracing, radiosity, mapping, and real-time issues. Animation includes keyframing, kinematics, dynamics, collision detection, and AI.

N

Grading Basis: CS 335

CS 462 Computer Networks (3 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 0^^Fundamental concepts of data transmission, network architecture, data security, error control, routing, switching, and congestion control. Study of network protocols: IEEE 802.x, TCP/IP, ATM, Wireless Internet and Mobile Computing.

N

Grading Basis: CS 452

CS 482 Research in Computer Science I (3 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 0^^An introduction to structured research within computer science. Students develop a complete research proposal that poses an important open question in computer science and presents a well-developed strategy for its substantive investigation.

N

Attributes: Capstone Course

Grading Basis: CS 355. Limited to computer science majors and minors. Minimum resident and total GPA of 3.00.

CS 485 Software Engineering II (3 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 0^^An application of software engineering principles to a software project developed throughout the semester. Students will work in groups to describe, design, implement, test, and deliver a software product for a client.

N

Attributes: LE-S3 Creativity, Service-Learning, Full 30 Hours, Capstone Course

Grading Basis: CS 355

CS 490 Computer Science Practicum (3 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 0^^• Cannot be taken for credit toward fulfilling the major if the student has completed three or more credits in CS 498 (formerly CS 405).^^A reflective examination of the principles and practices inherent to the study of computer science, including completion of a comprehensive project.

Consent: S/U Only Grade Basis

N

Attributes: Service-Learning Optional, Capstone Course

Grading Basis: CS 485

CS 491 Special Topics (3 crs)

Prerequisite: • See current Class Schedule.^^An examination of current topical material of special interest to students and faculty. Topics that have been offered include: Analysis of Algorithms, Cryptography and Data Security, Computer Animation, Fuzzy Logic, Advanced Internet Applications, Data Mining, and Computational Biology.

N

Repeat: Course may be repeated

CS 492 Research in Computer Science II (3 crs)

Prerequisite: Lecture/Discussion Hours: 3^Lab/Studio Hours: 0^^Students carry out a research investigation based on a structured research proposal. The investigation includes a detailed analysis of existing literature in the area of investigation and the preparation of a research dissemination article.

N

Attributes: Capstone Course

Grading Basis: CS 482. Limited to computer science majors and minors.

CS 493 Collaborative Research (1-3 crs)

Prerequisite: An in-depth investigation into open issues within computer science and/or its application to other disciplines.

N

Grading Basis: CS 355

CS 498 Computer Science Internship (1-6 crs)

Prerequisite: • A maximum of three credits can be counted as a CS elective.^^Practical work experience that extends knowledge gained in prior courses.

N

Attributes: Service-Learning Optional, Capstone Course, Internship

Repeat: Course may be repeated for a maximum of 6 credits

CS 499 Independent Study - Seniors (1-3 crs)

Prerequisite: Individual project under the direction of a faculty member.

N

Repeat: Course may be repeated

Grading Basis: Minimum senior standing.

CS 793 Special Topics in Computer Science (1-3 crs)

Prerequisite: Permits groups of graduate students to study topics in the field of computer science.

Consent: No S/U Grade Option

N

Repeat: Course may be repeated

CS 797 Independent Study (1-3 crs)

Prerequisite: Individual project under the direction of a faculty member.

Consent: No S/U Grade Option

N

Repeat: Course may be repeated