Faculty Recruiting Make a Gift

Informatics Technical Core


USGS Data Layered Map of the Yukon River Basin



INFO 101 Introduction to Informatics

An introduction to the main concepts of Informatics. There are several "Big Ideas" in computing, including but not limited to abstraction, data and information, algorithms, programming, and analysis of both computational problems and computational artifacts. This class provides an introduction to those ideas and considers some of the ways that those computing principles might be used to solve real world problems. Computer-based assignments are an integral part of this course but no programming knowledge or prior programming experience is expected or required. Not for CMPSCI majors. 3 credits.

INFO 150 A Mathematical Foundation of Informatics

Mathematical techniques useful in the study of computing and information processing. The mathematical method of definition and proof. Sets, functions, and relations. Combinatorics, probability and probabilistic reasoning. Graphs and trees as models of data and of computational processes. Prerequisite: R1 math skills recommended. Not intended for Computer Science majors; students interested in a majors-level treatment of this material should see CMPSCI 240 and 250, or MATH 455. 3 credits.

COMPSCI 121 Problem Solving with Computers

CMPSCI 121 provides an introduction to problem solving and computer programming using the programming language Java; it also provides an integrated introduction to some of the wonderful innovations to modern science and indeed modern life that can be attributed to computer science. The course teaches how real-world problems can be solved computationally using the object-oriented metaphor that underlies Java. Concepts and techniques covered include data types, expressions, objects, methods, top-down program design, program testing and debugging, state representation, interactive programs, data abstraction, conditionals, iteration, interfaces, inheritance, arrays, graphics, and GUIs. No previous programming experience required. A companion introduction to programming class, CMPSCI 191P is also offered. If you are fairly sure you only want to do just one programming class, take that course; if you think it likely that you will do more than one programming course, take 121. Use of computer is required. Prerequisite: R1. 4 credits.

COMPSCI 190D Using Data Structures

The course introduces and develops methods for designing and implementing abstract data types using the Java programming language. The main focus is on how to build and encapsulate data objects and their associated operations. Specific topics include linked structures, recursive structures and algorithms, binary trees, balanced trees, and hash tables. These topics are fundamental to programming and are essential to other courses in computer science. There will be weekly assignments and assignments in discussion sections consisting of programming and written exercises. There will also be several exams. Prerequisites: CMPSCI 121 (or equivalent Java experience) and Basic Math Skills (R1). Basic Java language concepts are introduced quickly; if unsure of background, contact instructor. 4 credits.

INFO 203 A Networked World

The course will cover the technical foundations of today s communication networks, particularly the Internet. It will also address key social, policy, economic and legal aspects of these networks, their use (and abuse), and their regulation. This course covers computer science topics, but all material will be presented in a way that is accessible to an educated audience with or without a strong technical background. Not intended for Computer Science majors students interested in a majors-level treatment of this material should see CMPSCI 453. 3 credits.

COMPSCI 325 Human Computer Interaction 

In this course we examine the important problems in Usability, Human Computer Interaction, User Interfaces, and Human Centered Computing. We will examine elements of HCI history, understanding human capabilities, HCI design, several methods for prototyping user interfaces, and new applications and paradigms in human computer interaction. This is not a course in how to make dialog boxes, but rather a much more general approach to design and to interacting with human beings and evaluating designs. Some elementary programming (or user interface prototyping tools) may be required, but people without prior programming experience should feel right at home in this class. The course is available to any undergraduate student, not just computer scientists. IT-minor students, and students from other majors with an interest in design, are especially encouraged to participate. The course emphasizes group projects, class discussions and presentations of on-going work in class. There is one midterm exam and periodic in-class quizzes. No prerequisites. 3 credits.


In addition to fulfilling the common core requirements, students in the Informatics program must fulfill the requirements in the Domain Track: 

  Data Science