Computer Science
(C-S)
College of Science and Allied Health
Department Chair: David Riley
225 Wing Technology Center
608-785-6805
Professors: Riley, Senger;
Associate Professors: Gendreau, Headington, Periyasamy; Assistant
Professors: Frye, Cheryl, Hunt, Zheng; Lecturers: Barkauskas,
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) — 19 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) — 19
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.
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.
The computer science department incorporates a
significant amount of writing throughout the required core courses instead
of identifying particular courses as writing emphasis courses. Students who
complete the computer science will fulfill the University writing emphasis
requirement through the computer science writing-in-the-major program.
+ 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.
+
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 222 Cr. 3
COBOL Programming
This course is designed to provide students with an
understanding of the COBOL Programming language with an emphasis in file
processing. Prerequisite: C-S 120. Offered occasionally.
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, check-out 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 Sem.
I, odd numbered years.
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 occasionally.
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. II.
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.
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, odd 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 once every two 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, even 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 Sem. I, odd numbered years.
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. I, even numbered years.
C-S/C-I 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. (Cross-listed with C-I; may
only earn credit in C-S or C-I.) 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.
Economics
|
|
| |
|
Last
Modified:August 13, 2003
comments To: records@uwlax.edu
University of Wisconsin-La Crosse 1725 State Street La Crosse,
WI 54601 608.785.8000
All material Copyright© 2002 by the University of Wisconsin-La
Crosse and the Board of Regents of the University of Wisconsin System
|