Upcoming Events

CODERS Meeting
Thursdays | 4-5 pm | Wing 231CODERS is a group of students and faculty interested in outreach, diversity, engagement and retention.

Cookies w/CODERS
Mondays | 4-5 pm |Wing 16A weekly study time to meet other CS students, ask questions, work on projects, and of course...eat cookies! Put on by CODERS.

Meet & Pizza w/Fastenal
Wednesday, March 22, 5pm, 1142 Centennial Come have pizza and hear about recruiting info from Fastenal.

CS Distinguished Lecturer
Shafi Goldwasser
Mon April 3, Lectures 11 & 5pm2017 Distinguished Lecturer in Computer Science

MICS Conference
Fri-Sat April 7-8UWL CS Dept is hosting the Midwest Instruction and Computing Symposium.

Final Exams
May 8-12Make sure you know when your finals are for each class.



Computer Science Dept
221 Wing Technology Ctr.
1725 State St.
La Crosse, WI 54601
Voice: (608) 785-6805
Email: This email address is being protected from spambots. You need JavaScript enabled to view it.

Google Maps

CS 120 Software Design I [Credits-4]
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.
Usually Offered: Fall and Spring Semester
CS 220 Software Design II [Credits-4]
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: CS 120.
Usually Offered: Fall and Spring Semester
CS 270 Assembler Programming and Introduction to Computer Organization [Credits-3]
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: CS 120.
Usually Offered: Fall and Spring Semester
CS 340 Software Design III: Abstract Data Types [Credits-3]
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. Prerequisites: CS 220.
Usually Offered: Fall and Spring Semester
CS 341 Software Design IV: Software Engineering [Credits-3]
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: CS 340 and MTH 225.
Usually Offered: Fall Semester
CS 370 Computer Architecture [Credits-3]
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. Prerequisites: CS 270.
Usually Offered:  Fall and Spring Semester
CS 421 Programming Language Concepts [Credits-3]
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: CS 340 and MTH 225.
Usually Offered:  Fall and Spring Semester
CS 441 Operating System Concepts [Credits-3]
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. Prerequisites: C-S 340 and 370.
Usually Offered: Fall and Spring Semester
CS 442 Structure of Compilers [Credits-3]

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. Prerequisites: CS 270 and 340.

Usually Offered: Spring Semester