2017-19 Undergraduate Catalog Course Descriptions

CSCI - Computer Science
Catalog Nbr.Course Title/Course TopicsCredits
CSCI 101Introduction to Computer Science3.00
A first course in computer science providing a survey of current topics as well as core programming and related problems solving skills. Satisfies the mathematics requirement for General Education. MATH 095 is recommended for taking this course.
University Studies Requirements:
Math/Computer Science
Prerequisites:
Prerequisite for taking this course is the Mathematics Placement Test, or successful completion of MATH 095 (recommended).
Typically Offered:
Fall and Spring Terms
CSCI 170Programming and Technology for the Teaching of Mathematics3.00
Graphing and analysis of functions using graphing calculators, structured programming, use of software packages such as SAGE, Alice, and Geometer's Sketchpad.
Prerequisites:
Completion of MATH 095 with a grade of C- or better or Mathematics Placement Test of MATH 112 or higher
Typically Offered:
Spring Term Only
CSCI 189Computer Science Elective1.00 - 12.00
Transfer credits ONLY from another accredited institution not equivalent to a UW-S course.
CSCI 201Introduction to Programming3.00
A first programming course for students with a serious interest in computing. Topics include: formal languages; data types and variables; control structures; primitive and reference data types; methods and modular programming; introduction to abstract data types and classes; simple algorithms; and programming conventions and style. Pre-requisite: Having completed MATH 113 is recommended when enrolling in this course.
Typically Offered:
Fall and Spring Terms
CSCI 202Object-Oriented Programming3.00
Continuation of CSCI 201. Programming course emphasizing the methodology of programming from an object-oriented perspective and software engineering principles. Topics include: data structure fundamentals; abstraction and encapsulation; inheritance and polymorphism; pointer and reference variables; memory management, operator overloading, recursion; concurrent programming; various important algorithms; and file processing techniques.
Prerequisites:
Prerequisite for taking this course is having completed CSCI 201 with a grade of C- or better.
Typically Offered:
Spring Term Only
CSCI 224Assembly Language Programming4.00
Fundamentals of Assembly language programming under Windows and Linux operating systems with an emphasis to microcontroller programming. Topics include: data representation and fundamentals of computer architecture; memory access and organization; arithmetic and logical operations; functions and procedures, bit and string manipulation; floating-point programming, pattern matching, and combining assembly with high-level languages. Lecture and Lab.
Prerequisites:
Prerequisite for taking this course is an acceptable score on the Mathematics Placement Test or completion of an appropriate course. MATH 113 or 102 recommended.
Typically Offered:
Fall Term Only
CSCI 281Special Projects1.00 - 4.00
Individual project to learn a programming language not normally offered in the current array of programming courses. Requires weekly progress reports and demonstration of learned skills through a project under the supervision of one or more instructors. May be repeated, but no more than a total of 12 credits may be earned from CSCI 281. Pass-Fail only. Prerequisites: Preliminary project plan and an independent study contract.
Typically Offered:
Occasional by Demand
CSCI 289Computer Science Elective1.00 - 12.00
Transfer credits ONLY from another accredited institution not equivalent to a UW-S course.
CSCI 303Algorithms and Data Structures4.00
Continuation of CSCI 202. Concepts and implementation techniques for various algorithms and related data structures of particular interest to computer scientists; analysis of the complexity (efficiency) of algorithms. Topics include: stacks and queues, hashing, graphs and trees, data compression, game strategy, and related algorithms.
Prerequisites:
CSCI 202 with a grade of C- or better is prerequisite for taking this course.
Typically Offered:
Fall Term Only
CSCI 327Embedded Systems Design3.00
A firmware and hardware development course for students with a serious interest in Micro-controller programming, Embedded Systems, or Engineering. Topics include: assembly and/or C programming of micro-controllers, interrupt processing, basic hardware and logic design, programming micro-controller peripherals like ADC, DAC, timers, PWM, comparators, programming and using serial interfaces, communication with user, basics of printed boards design.
Prerequisites:
Completion of CSCI 224 or CSCI 201 is recommended for taking this course.
Typically Offered:
Spring Term Odd Years Only
CSCI 331Computer Graphics and 3-D Modeling3.00
Data structures and algorithms used in computer graphics emphasizing programming rather than graphics design. Topics include: graphics algorithms, design and implementation of graphics applications, 2-D and 3-D modeling, and animation. Mathematical treatment of topics that require an understanding of fundamental concepts in calculus and linear algebra.
Prerequisites:
The prerequisite for taking this course is having completed CSCI 201. CSCI 202 recommended.
Typically Offered:
Spring Term Even Years Only
CSCI 340Software Development and Professional Practice4.00
Best practices in the field of software development. Students complete a medium- scale software project as members of a development team. Topics include: professional ethics and responsibilities; multi-tier systems; software life cycle; requirements analysis; system modeling; implementation and testing; re-engineering and maintainability.
Prerequisites:
Prerequisite for taking this course is having completed CSCI 303
Typically Offered:
Spring Term Only
CSCI 351Internet Programming3.00
Internet technologies for the World Wide Web such as XHTML, DHTML, CSS, CGI, JavaScript, and HTML5. Topics include: composing XHTML/XML web pages; page layout control with cascading style sheets, form processing and validation, working with images and JavaScript based animation, fundamentals of CGI programming under Unix/Linux environment, server-side programming with Perl and PHP; server configuration issues; and database access.
Prerequisites:
The prerequisite for taking this course is having completed CSCI 201. CSCI 202 recommended.
Typically Offered:
Occasional by Demand
CSCI 356Database Systems3.00
Information Management (IM) plays a critical role in almost all areas where computers are used. The course discusses the representation, organization, transformation, and presentation of information; algorithms for efficient and effective access and updating of stored information; data modeling and abstraction; relational algebra and Structured Query Language (SQL); and database design, implementation, querying, and administration. Pre-requisite: Having completed CSCI 201 is recommended when enrolling in this course.
Typically Offered:
Spring Term Odd Years Only
CSCI 381Special Projects1.00 - 4.00
Various individual and small-group projects carried out under the supervision of one or more instructors. Requires weekly progress reports plus a final report and/or a final exam. May be repeated, but no more than a total of four credits may be earned from both MATH 381 and CSCI 381. Pass-Fail only. Preliminary project plan and an independent study contract required prior to enrollment.
Typically Offered:
Occasional by Demand
CSCI 389Computer Science Elective1.00 - 12.00
Transfer credits ONLY from another accredited institution not equivalent to a UW-S course.
CSCI 390Computer Science Internship1.00 - 4.00
Work in an approved position to gain experience in solving real problems using computer science, mathematics, and statistics. Interns may receive salaried appointments with cooperating companies. Pass-Fail only.
Typically Offered:
Occasional by Demand
CSCI 399Mathematical Sciences Seminar1.00
Students carry out individual investigations in current literature and present their findings to the entire department. Taken during senior year. Pass-Fail only. Independent study contract required prior to enrollment.
Typically Offered:
Occasional by Demand
CSCI 451Operating Systems4.00
In-depth study of the concepts, issues, and algorithms related to the design and implementation of operating systems. Topics include: process management, process synchronization and inter-process communication; memory management; virtual memory; interrupt handling; processor scheduling; device management; I/O; file systems; and introduction to networking and network security. Students conduct programming projects and case studies to investigate modern operating systems such as Solaris, Linux, and Windows.
Prerequisites:
The prerequisite for taking this course is having completed CSCI 201. CSCI 202 recommended.
Typically Offered:
Spring Term Odd Years Only
CSCI 461Computer Architecture and Organization4.00
In depth study of fundamentals of computer hardware organization. Topics include: digital logic and circuits; finite state machines; computer arithmetic, machine instructions and assembly language; pipeline design, memory management and design; storage system design; I/O modules, operating system support; structure and function of computer processors, RISC vs. CISC architecture, micro-programmed control, and computer security.
Prerequisites:
Prerequisite for taking this course is having completed CSCI 224.
Typically Offered:
Fall Term Even Years Only
CSCI 470Net-Centric Computing4.00
Introduces the structure, implementation, and theoretical background of computer networking. Topics include: the ISO/OSI reference model and protocol stack, implementation details of various network protocols, routing algorithms, wireless challenges and protocols, mobility management, broadcasting and multicasting, multimedia networking, introduction to network security.
Prerequisites:
The prerequisite for taking this course is having completed CSCI 201. CSCI 202 recommended.
Typically Offered:
Spring Term Even Years Only
CSCI 481Special Topics1.00 - 4.00
Investigation of one or more topics of current interest not covered in other courses. Not intended for independent study projects. May be repeated, but no more than a total of eight credits may be earned from both MATH 481 and CSCI 481.
Typically Offered:
Occasional by Demand
CSCI 489Computer Science Elective1.00 - 12.00
Transfer credits ONLY from another accredited institution not equivalent to a UW-S course.
CSCI 498Individual Capstone Project1.00
Students carry out a project under the supervision of a faculty member, write a report, and present the results to the entire department. Taken during senior year.
Typically Offered:
Fall and Spring Terms
CSCI 499Group Capstone Project3.00
Group projects in software engineering are carried out by students under supervision of a faculty member.
Prerequisites:
The prerequisite for taking this course is having completed CSCI 340.
Typically Offered:
Fall Term Only