![]() |
![]() |
Table of Contents| Academic Programs by College| Campus Information | Notes to Students | General Information | Admission to the University | Expenses and Financial Aid | The Campus | Services and Involvement | Academic Regulations and Student Conduct | Degree Requirements | Colleges & Schools |Undergraduate Course and Program Descriptions | Administrative, Faculty and Staff listings | Calendar | Campus Map
Computer
Science (C-S)
College
of Science and Allied Health
Department Chair: Steve Senger
221 Wing Technology Center
(608)785-6805; www.uwlax.edu/compsci
e-mail: senger.stev@uwlax.edu
Professors:
Headington, Periyasamy, Riley, Senger;
Associate
Professors:
Gendreau, Hunt;
Assistant
Professor:
Zheng; Lecturers:
Burand, Inglett, Roraff.
Computer
Science Major (All
colleges, excluding Teacher Certification programs) — 40 credits, including
C-S 120, 220, 270, 340, 341, 370, 421, 441, and 442. The 40 credits must include
no less than 27 credits of 300-level and 400-level courses. PHY 335, MTH 317
and/or MTH 371 may be used as part of the 40 credit major. In addition to the 40
credits, MTH 207, 208 and 225 must be taken.
Computer
Science Major
(Teacher
Certification programs) — 37 credits including C-S 120, 220, 270, 340, 341,
370, 421 or 441, 480, C-I 420. The 37 credits must include no less than 24
credits of 300-level and 400-level courses. PHY 335, MTH 317, and MTH 371 may be
used as part of the 37 credit major. In addition to the 37 credits, MTH 207,
208, and 225 must be taken.
Computer
Science Minor (All
colleges, excluding Teacher Certification programs) —20 credits, including C-S
120, 220, 340, and MTH 225. The 19 credits must include no less than 6 credits
of elective 300/400 level computer science courses. PHY 335, MTH 317, and MTH
371 may be used as alternatives to computer science electives.
Computer
Science Minor
(Teacher
Certification programs) —20 credits, including C-S 120, 220, 340, C-I 420, and
MTH 225. The 19 credits must include 3 credits of elective 300/400 level
computer science courses. PHY 335, MTH 317, and MTH 371 may be used as
alternatives to computer science electives.
The
computer science department incorporates a significant amount of writing through
the required courses instead of identifying particular courses as writing
emphasis courses. Students who complete the computer science major will fulfill
the university writing emphasis requirement.
Dual
Degree Program in Computer Science and Engineering
Students with a computer science major who
also are interested in engineering are able to receive both a Bachelor of
Science degree (computer science major) from UW-La Crosse and a Bachelor of
Science degree (engineering major) from UW-Madison. At UW-La Crosse, students
must complete a minimum of 85 credits, including the General Education
requirements and specific math and science courses in preparation for the
engineering program. Students are recommended to include the following courses
in their work at UW-La Crosse: CHM 103; C-S 120, 220, 224, 270, 340, 341, 370,
421, 441, 442; ECO 110, 120, 336; MTH 207, 208, 225, 309, 341, 371; PHY 203,
204, 250. Students should consult with the computer science department chair for
specific course and sequence advising for this agreement.
Students who express interest in the dual
degree program will be selected for entrance into the UW-Madison portion of the
program based on their G.P.A. in all course work; their G.P.A. in the chemistry,
computer science, mathematics and physics course work required by the program;
and the positive recommendation of the UW-La Crosse computer science department
chair (or designee). Qualified UW-La Crosse applicants are assured admission in
the College of Engineering at UW-Madison.
In order to receive the B.S. degree from UW-La
Crosse, students must also complete credits (to total a minimum of 120 credits)
in engineering at UW-Madison and transfer these credits to UW-La Crosse. For the
typical student, the remaining credits must include at least 8 credits at the
300-level or above. This transfer of credits and awarding of the B.S. degree by
UW-L can take place as soon as the student earns the necessary credits.
Internships
Students majoring in computer science who wish
to enroll in CEI 450 or CEI 475, University Internships, must have completed 15
credits of computer science course work, including C-S 220, and must have a
minimum GPA of 2.50 in computer science courses to be eligible for departmental
approval and supervision. Credits earned in internships do not apply to major or
minor requirements.
+
above a course number indicates a
General
Education course.
+
C-S 101
Cr. 4
Introduction to Computing
Computers
and computer software are an integral part of modern society. This course
explores this relationship. Students will examine the computer as a
problem-solving tool through the use of database, spreadsheets and small scale
programming. Students will examine the computer as a communication tool through
the use of word processing and the Internet. Other topics include the history
and future of computer technology, computer hardware basics, man/machine
relationships, applications of computers in various disciplines, and
social/ethical issues. Credits earned in C-S 101 cannot be applied to the C-S
major or minor.
C-S
102 Cr. 3
Web Development and the Internet
An
introduction to the Internet and the fundamentals of Web page design including
history and technical structure of the Internet, markup languages and Web page
programming. Technical issues include client/server interfaces and network
protocols. Other topics include societal issues such as privacy, security,
accessibility, intellectual property, and censorship. Credits earned in C-S 102
not applicable to the C-S major or minor. Prerequisite: C-S 101 or C-S 120.
Offered occasionally.
C-S
103 Cr. 1
Elementary Database Principles and Design
An
introduction to the design and implementation of relational databases. Design
concepts will include entity-relationship modeling, relational table structure,
keys, foreign keys, referential integrity, and data quality. Implementation
concepts will emphasize extracting information through queries, reports, and
forms. Prerequisite: Course not open to those who have completed
C-S 101. Seven-week course. Offered Sem II.
C-S
104 Cr. 1
Elementary Spreadsheet Principles and Design
An
introduction to the design and implementation of spreadsheets. Design principles
will include cell content, use of functions and formulas, relative and absolute
addressing, and formatting. Modern spreadsheet software will be used to
implement the spreadsheets, with an emphasis on
presenting numeric data in an organized manner. Prerequisite: Course not
open to those who have completed C-S 101. Seven-week course. Offered Sem II.
+
C-S 120
Cr. 4
Software Design I
An
introduction to the fundamentals of software development; including software
classes, objects, inheritance, polymorphism, logic, selection control,
repetition control, subprograms, parameter passage, and rudimentary software
engineering techniques. Students complete numerous programming projects using a
modern programming language. Prerequisite: MTH 151 or 175, or math placement
test scores at or above MTH 151.
C-S
220 Cr. 3
Software Design II
This is a
second course in the design of programs. Emphasis is placed on data abstraction
and its application in design. Definitions of abstract data types are examined.
The following structures are examined as methods for implementing data
abstractions: recursion, sets, stacks, queues, strings, and various linked
lists. Students will be expected to write several programs using these
techniques in a modern programming language. Prerequisite: C-S 120.
C-S
224 Cr. 1-3
Introduction to the ____________ Programming Language
This
course presents the syntax and semantics of a particular programming language.
Different offerings of the course will present different languages. Students are
expected to be fluent in another programming language prior to enrollment.
Prerequisite: a prior computer science course appropriate to the language being
offered. Repeatable for credit — maximum 6. (Each repeat must be for a
different language.)
C-S
270 Cr. 3
Assembler Programming and Introduction to Computer Organization
Programming
in machine and assembler language is integrated with an introduction to the
organization of computer hardware. An examination of the instruction set merges
with descriptions of the related hardware devices. Laboratory assignments
include the construction of software, as well as hardware, units. Topics include
basic instruction types, data representation, addressing modes, combinational
circuit design, flip-flops, registers, the ALU, computer memory, and interrupt
handling. Prerequisite: C-S 120,
MTH 225 or concurrent enrollment.
C-S
301/501
Cr. 2
Using the Internet
An
introduction to the Internet and computer networking. A survey of Internet
resources and methods used to retrieve and create Internet resources. Topics
include: connecting to the Internet, electronic mail, file transfer, remote
login, Mosaic, World Wide Web, Gopher, TCP/IP, networking hardware. Not
applicable to a computer science major or minor.
C-S
340 Cr. 3
Software Design III: Abstract Data Types
An
extensive survey of data structures and associated algorithms. An introduction
to algorithm efficiency measures is included as a tool for deciding among
alternate algorithms. Topics include: searching and sorting in arrays, hash
tables, tree traversal and search algorithms, expression evaluation and graphs.
Prerequisite: C-S 220 and MTH 225.
C-S
341 Cr. 3
Software Design IV: Software Engineering
A study of
methodologies for the development of reliable software systems. Several
specification, design, and testing techniques are surveyed with an emphasis on
one particular formal specification and formal design technique. Students work
in teams, applying these techniques to the development of a medium scale
(2000-5000 lines) software product. Prerequisite: C-S 340.
C-S
342 Cr. 3
Software Testing Techniques
As the
size and complexity of software projects have grown, so has the importance of
ensuring program correctness. This course examines the issues of program
testing, validation, and verification. Course projects require students to
construct test data and to analyze the correctness of several software systems.
Prerequisite:
C-S 340. Offered Sem. II, odd numbered years.
C-S
351 Cr. 3
Simulation
Programming
computers to play games and imitate activities of systems such as drive-in
facilities, checkout lanes, and computer operations. Topics include tests of
goodness of fit, random number generators, simulated sampling, queuing theory,
analysis of systems to be simulated, construction and validation of simulation
programs, and interpretation of results. Prerequisite: C-S 220 and MTH 207.
Offered occasionally.
C-S
352 Cr. 3
Computer Graphics and Scientific Visualization
An
introduction to the fundamentals of computer graphics and its application to
Scientific Visualization. Topics include basic imaging algorithms, geometric
transformations, hidden surface algorithms, polygonal rendering, solid modeling,
lighting models, and specialized graphics hardware. Prerequisite: C-S 340 and
MTH 207. Offered Sem. II, even numbered years.
C-S
353 Cr. 3
Analysis of Algorithm Complexity
An
in-depth analysis of the computational complexity of a wide range of algorithms
for problems of fundamental importance to computer science. Algorithms to be
examined include: sorting, pattern matching and various graph algorithms.
Prerequisite: C-S 340 and MTH 207. Offered Sem. I, even numbered years.
C-S
364 Cr. 3
Introduction to Database Management Systems
Introduction
to the design and organization of database management systems. Topics include
the relational data model, relational algebra, SQL query language, database
software development, data security, normalization, client/server environments.
Prerequisite: C-S 220. Offered Sem. I.
C-S
370 Cr. 3
Computer Architecture
A
presentation of the logical organization of modern digital computers. Topics
include performance evaluation, instruction set design, computer arithmetic,
processor control, pipe-lining, cache memory, memory hierarchy, memory and
system buses, and I/O organization. Prerequisite: C-S 270 and MTH 225.
C-S
395 Cr. 1-3
Independent Study
Individualized
study of topics in computer science not covered by courses regularly taught in
the department. Prerequisite: written consent of the instructor and the
department chair. Repeatable for credit — maximum 6.
C-S
419/519
Cr. 1-3
Topics in Computer Science
A special
topics course in Computer Science which will function as a forum for new ideas
and testing ground for new courses. Prerequisite: Consent of instructor.
Repeatable for credit — maximum 6.
C-S
421/521
Cr. 3
Programming Language Concepts
A
comparative study of the concepts underlying the design of contemporary
high-level programming languages, including imperative, functional, logic and
object-oriented paradigms; formal representation of syntax and semantics;
control structures; data and procedural abstraction; scope and extent;
parallelism and exception handling. This course cannot be taken both at the
undergraduate level and at the graduate level. Prerequisite: C-S 340.
C-S
431 Cr. 3
Introduction to Robotics
This
course is a hands-on introduction to the algorithms and techniques required to
write robot control software. Topics include the components of mobile robots and
robot manipulators, manipulator kinematics, robot task planning, sensing, sensor
fusion, visual servoing and robot control concepts. Prerequisite: C-S 340.
Offered Sem. II, odd numbered years.
C-S
441/541
Cr. 3
Operating System Concepts
The study
of the structures and algorithms of operating systems. Operating systems are
viewed as managers and controllers of resources such as processors, memory,
input and output devices and data. Topics include multiprogramming systems, CPU
scheduling, memory management and device management. Prerequisite: C-S 340 and
370.
C-S
442/542
Cr. 3
Structure of Compilers
An
extensive study of all phases of the compilation of high level programming
languages. Topics include: scanning, parsing (LL and LR), semantics analysis,
symbol table organization and manipulation, internal code generation, storage
allocation, optimization and object code generation. Students are required to
complete a compiler for a small high-level language. Prerequisite: C-S 270 and
340. Offered Sem.
II.
C-S
443/543
Cr. 3
Topics in Operating Systems
An
intermediate course in operating systems extending topics introduced in C-S 441.
Operating systems concepts are studied in depth. Typically students will study
and modify an existing system. Prerequisite: C-S 441. Offered Sem. I, even
numbered years.
C-S
446/546
Cr. 3
Object-Oriented Software Development
Introduction
to the concepts and principles of object-orientation (OO). Topics include
detailed discussion on analysis and design of OO software systems, notations for
OO analysis and design, and comparison of OO programming languages. Advanced
topics on object-orientation such as OO testing and software reuse will be
briefly discussed. Prerequisite: C-S 340. This course cannot be taken for credit
both at the undergraduate level and at the graduate level. Offered. Sem. II.
C-S
449/549
Cr. 3
Advances in Software Engineering
Introduces
advanced topics in software engineering. Topics include prototyping models, risk
analysis, component-oriented software development, software architectures,
software reuse, software metrics and quality analysis. Prerequisite: C-S 341.
This course cannot be taken for credit both at the undergraduate level and at
the graduate level. Offered Sem. I, even numbered years.
C-S
451/551
Cr. 3
User Interface Design
This
course focuses on the design and implementation of user interfaces. The topics
include characteristics of user interfaces, user profiles, user interface design
principles, methods and tools for user interface development, evolution of user
interfaces, evaluation of user interfaces, and case studies. Prerequisite: C-S
340. This course cannot be taken for credit both at the undergraduate level and
at the graduate level. Offered Sem. I, odd numbered years.
C-S
452/552
Cr. 3
Artificial Intelligence and Pattern Recognition
An
introduction to the fundamental principles of artificial intelligence. Topics
include the biological basis for intelligence, classification of object
descriptions and pattern recognition, search strategies and game trees, natural
language processing, automatic theorem proving, programming for artificial
intelligence and knowledge-based systems. Projects
include writing a substantial artificial intelligence application program.
Prerequisite: C-S 340. Offered Sem.
I, odd numbered years.
C-S
453/553
Cr. 3
Introduction to the Theory of Computation
An
introduction to the theoretical aspects of computation. The capabilities and
limits of several computation models are considered including: partial recursive
functions, Turing machines, finite state automata and formal languages. The
implications of Church’s thesis and unsolvable problems such as the halting
problem are discussed. Prerequisite: C-S 340. Offered Sem. II, even numbered
years.
C-S
454/554
Cr. 3
Digital Image Processing
This
course introduces the fundamentals of digital image processing techniques with
an emphasis on the design and implementation of image processing algorithms.
Topics include color models, point-processing techniques, convolution, Fourier
domain processing, the discrete cosine transform, image compression
methodologies, image restoration and enhancement, sampling and image display.
This course cannot be taken for credit both at the undergraduate level and at
the graduate level. Prerequisite: C-S 340. Offered Sem. I, even numbered years.
C-S
455/555
Cr. 3
Fundamentals of Information Security
This
course presents the fundamental concepts of information security. Basic
policies, techniques and tools for maintaining the security of host computers,
information networks and computer software are presented. Elementary
cryptography is explored with special attention to applications in data
encryption, hashing and digital signatures. Fundamental security management
procedures also are introduced, as are the legal and ethical issues associated
with computer security. Students will be expected to apply the knowledge gained
to construct security policies and practice security in the form of access
privileges, firewalls, vulnerability scanners and intrusion detection tools.
Prerequisite: C-S 220. This course cannot be taken both at the undergraduate
level and at the graduate level. Offered Sem. I, odd numbered years.
C-S 464/564
Cr. 3
Advanced Database Management Systems
Advanced topics in database management systems. Topics include the relational
data model, relational calculus, embedded SQL programming, database application
programming, indexing, systems software and storage structures for databases,
concurrency control, crash recovery, database administration, parallel and
distributed databases, object oriented databases. This course cannot be taken
for credit both at the undergraduate level and at the graduate level.
Prerequisite: C-S 364. Offered Sem. II, odd numbered years.
C-S
470/570
Cr. 3
Parallel and Distributed Computing
A study of
architectures, control software, and applications for parallel and distributed
systems. A survey of parallel and distributed architectures including data flow
machines, vector processors, shared memory multiprocessors, and message based
multiprocessors. Software topics include process communication and
synchronization, global state maintenance, negotiation, scheduling, data
parallelism, control parallelism, and languages for parallel and distributed
computing. Prerequisite: C-S 370. Offered occasionally.
C-S
471/571
Cr. 3
Data Communications
An
introduction to data communications, including the electrical properties and
software protocols. In addition to presentations of the concepts and techniques
used for data communications, several currently used standards and
communications networks will be examined. Prerequisite: C-S 270 and 340. Offered
Sem. II, even numbered years.
C-S
480/680
Cr. 3
Survey of Computer Assisted Instructional Systems
A survey
of current trends in Computer Assisted Instruction (CAI). Development of
instructional and curriculum materials suitable for computer applications. Use
of a current authoring software package. Prerequisite: C-S 224 or C-I 420/620.
Offered occasionally.
C-S
499 Cr. 1-3
Research in Computer Science
An
opportunity to become acquainted with literature in the field and to work on a
professional level research project within an area of interest of the computer
science faculty. A seminar reviewing the results of the study will be a
requirement for completion of the course. Prerequisite: consent of computer
science staff. Repeatable for credit — maximum 6.
|
|
|
Last
Modified:August 25, 2008
|