Use of state-of-the-art design tools for integrated circuits. Lab fee. CSCI-B 649 Topics in Systems (1-6 cr.) P: Instructor’s permission. Special topics in systems. ... CSCI-P 535 Pervasive Computing (3 cr.) P: Object oriented programming. Topics in pervasive computing, such as sensors, mobility, tangibles, ambient displays, middleware ...
A first course in computer science for those intending to take advanced computer science courses. Introduction to programming and to algorithm design and analysis. ... CSCI-P 535 Pervasive Computing (3 cr.) P: Object oriented programming. Lab fee. ... Lab fee. Topics in pervasive computing, such as: sensors, mobility, tangibles, ambient ...
CSCI-A 590 Topics in Programming (1-2 cr.) Eight-week courses designed to provide foundations for using modern programming tools for applications and web development. Lecture and lab. May be repeated for a maximum of six credits. CSCI-A 591 Introduction to Computer Science (3 cr.)
CSCI-A 591 Introduction to Computer Science (3 cr.) A first course in computer science for those intending to take advanced computer science courses. Introduction to programming and to algorithm design and analysis. Using the Scheme programming language, the course covers several programming paradigms. Lecture and laboratory.
Students completing the computer science/mathematics double major are strongly encouraged to take CSCI 431 as one of their electives.
The computer science department offers a certificate in cyber security for students interested in careers as an information systems auditor or security analyst. Our certificate is the first offered by a four-year university in Wisconsin that meets the Committee on National Security Systems National Training Standard for: Information Systems Security (INFOSEC) Professionals, NSTISSI No. 4011. With the growth of computer networking and the World Wide Web, cyber security has become of increasing importance to all computer users. Our certificate gives students a background in securing applications and systems software, desktop computers, servers, and the networks that connect them. The certificate is supported by a dedicated laboratory that is isolated from the rest of the campus network, allowing students to gain practical hands-on knowledge of the tools used to both attack and defend computers.
The computer science department offers a certificate in mobile development for students interested in careers involving developing mobile applications for tablet computers and mobile phones. With the rise in popularity and functionality of mobile devices, the need for skilled mobile developers has increased. Our certificate provides students a background in writing software for multiple mobile device platforms, designing user interfaces for mobile devices, and designing networking architecture to connect mobile devices to each other. Individuals may enter the program at any point, depending on background and experience.
The computer science department offers a certificate in Data Science that provides background and experience for students interested in careers such as Data Scientist, Data Analyst and Machine Learning Scientist. This certificate consists of the following courses:
Requests for course substitutions to meet the requirements of the computer science major need the approval of the computer science faculty. In the case of the computer science/mathematics double major, substitutions require the approval of both the computer science faculty and the mathematics faculty .
An understanding of professional, ethical, legal, security and social issues and responsibilities.
In a credit-bearing internship, the student, the computer science faculty, and the student’s supervisor collectively agree on the internship’s objectives; progress toward meeting these objectives is evaluated periodically throughout the term. Students should contact the department chair for more information.
Description: COMP 422 is an undergraduate version of this course. COMP 422 students will have four programming assignments. COMP 534 students will have five. As part of their assignments, both COMP 422 and COMP 534 students will analyze the scalability and parallel efficiency of parallel programs they write. COMP 534 students will additionally use tools to qualify the root causes of scaling losses in their programs and document their findings. Graduate/Undergraduate Equivalency: COMP 534. Mutually Exclusive: Cannot register for COMP 422 if student has credit for COMP 534.
Description: Fundamentals of parallel programming: abstract models of parallel computers, parallel algorithms and data structures, and common parallel programming patterns including task parallelism, undirected and directed synchronization, data parallelism, divide-and-conquer parallelism, and map-reduce. Laboratory assignments will explore these topics through the use of parallel extensions to the Java language. Cross-list: ELEC 323.
This course introduces algorithmic thinking as a discipline for reasoning about systems, taming their complexities, and elucidating their properties. Algorithmic techniques, along with their correctness and efficiency, will be taught through reasoning about systems of interactions, such as markets, that are ubiquitous in our highly connected world.
Functional programming is a style of programming where the key means of computation is the application of functions to arguments (which themselves might be functions). This style of programming has become increasingly popular in recent years because it offers important advantages in designing, maintaining, and reasoning about programs in many modern contexts such as web services, multicore programming, and cluster computing. Course work consists of a series of programming assignments in the Scala programming language and various library extensions such as Apache Spark. Graduate/Undergraduate Equivalency: COMP 544. Mutually Exclusive: Cannot register for COMP 311 if student has credit for COMP 544.
The research interests of the faculty include algorithms and complexity, artificial intelligence and robotics, compilers, distributed and parallel computation, graphics and visualization, operating systems, and programming languages.
Description: An introduction to computation taught by solving real-world problems in architecture, statistics, linguistics, social networks, visual pattern recognition, and the simulation of complex systems in ecology. Technical topics include how to model computational artifacts operating in the world, how to design and implement algorithmic solutions in Python, and how to experimentally test and evaluate computational systems.
Description: This class covers the basics of Python Programming with a focus on building simple games in a web-based environment. The class includes an introduction to event-driven programming and trains the students in the specifics of a Python GUI system designed to support creating to support creating applications that run in a web browser. This course is limited to first-year students only. Continuing Students may register with an approved Special Registration Form. Recommended Prerequisite (s): Java Experience.
Algorithmic and statistical approaches in computational functional genomics and systems biology. Analysis of high throughput biological data obtained using system-wide measurements. Topological analysis, module discovery, and comparative analysis of gene and protein networks. Modeling, analysis, and inference of transcriptional regulatory networks, protein-protein interaction networks, and metabolic networks. Dynamic systems and whole-cell models. Ontology-driven, network based, and probabilistic approaches to information integration.
Advanced topics on theoretical and technical foundations in Software Engineering. Content varies by semester. Maximum 6 credits of COM S 665 may apply toward graduation.
Current topics in computer architecture design and implementation. Advanced pipelining, cache and memory design techniques. Interaction of algorithms with architecture models and implementations. Tradeoffs in architecture models and implementations.
Advanced techniques to specify and study the correctness and timing properties of complex systems and software, with a particular focus on concurrent and distributed behavior. Petri nets and related formalisms to describe discrete-state systems. Decision diagram algorithms for state-space and reachability graph generation, symbolic model checking, and timing analysis. Markov models for exact and approximate probabilistic verification.
Algorithms and tools for automatically reasoning about code and program executions to predict software behavior. Theory and foundations related to control flow analysis, dataflow analysis, abstract interpretation and symbolic execution. Applications of program analysis to improve software security, performance and testing. Concepts, algorithms, tools, benchmarks, methodologies for solving problems using program analysis and for preparing research in program analysis.
Fundamentals of Game Theory: individual decision making, strategic and extensive games, mixed strategies, backward induction, Nash and other equilibrium concepts. Discussion of Auctions and Bargaining. Repeated, Bayesian and evolutionary games. Interactive Epistemology: reasoning about knowledge in multiagent environment, properties of knowledge, agreements, and common knowledge. Reasoning about and representing uncertainty, probabilities, and beliefs. Uncertainty in multiagent environments. Aspects and applications of game theory, knowledge, and uncertainty in other areas, especially Artificial Intelligence and Economics, will be discussed.
Concepts and techniques for network and distributed operating systems: communications protocols, processes and threads, name and object management, synchronization, consistency and replications for consistent distributed data, fault tolerance, protection and security, and distributed file systems. Research project.
Can you define informatics? Do you wonder how you’ll pay for a degree—and if it will qualify you for a good job?
I loved that the Informatics program was broad enough to get a variety of skills/knowledge established, but also allowed for customization to my interests in areas like health care and accessibility.
Roughly a third of our students identify as coming from a diverse background.