Today, computer technology is ubiquitous, and a robust understanding of information systems is important in almost every industry and organization. Computational Informatics emphasizes issues involved in the design of computing solutions, rather than focusing on the underlying computing infrastructure. In the Computational Informatics track, students learn to assess and build usable software applications for web servers, browsers, smartphones, information analysis tools, and automation of common activities. They develop analytical skills and gain a professional understanding of how people and organizations utilize technology to manage data. Graduates of this track put their skills to use in business and in the financial, software development, and information technology industries. They are also well prepared for graduate programs in computing and information sciences, among others.
This track is being phased out. The last semester a student may declare Computational Informatics is Fall 2013.
All Computational Informatics students who declared the concentration in Informatics between September 2008 and December 2009 may follow the original curriculum or the new curriculum outlined below. If choosing to follow the new curriculum, please notify the Program Coordinator.
All Computational Informatics who declare after January 1, 2010 will follow the curriculum outlined below:
Track Courses (16 credits)
The following courses:
Techniques and algorithm development and effective programming, top-down analysis, structured programming, testing, and program correctness. Program language syntax and static and runtime semantics. Scope, procedure instantiation, recursion, abstract data types, and parameter passing methods. Structured data types, pointers, linked data structures, stacks, queues, arrays, records, and trees.
Advisory prerequisite: MATH 115.
4 credits. Offered F, W
Systems-level programming techniques and concepts for the design of software systems: computer memory model; pointer safety; concurrent programming and using threads; coding vulnerabilities and secure coding; network programming and remote procedure calls; reading/writing objects to disk; client-server and distributed systems. No C++ background assumed. Programming lab in C++.
Enforced prerequisites: EECS 281 or EECS 282 with grade of C or better.
4 credits. Offered F
Two of the following computational courses:
Introduction to the algorithm analysis and O-notation; Fundamental data structures including lists, stacks, queues, priority queues, hash tables, binary trees, search trees, balanced, trees, and graphs; searching and sorting algorithms; recursive algorithms; basic graph algorithms; introduction to greedy algorithms and divide and conquer strategy. Several programming assignments.
Enforced prerequisites: EECS 203 or 303 or CMPTRSC 203 or 303 with a grade of C or better; and EECS 280 or CMPTRSC 280 with a grade of C or better.
4 credits. Offered F, W
An introduction to computation theory: finite automata, regular languages, pushdown automata, context-free languages, Turing machines, recursive languages and functions, and computational complexity.
Enforced prerequisites: EECS 203 or 303 or CMPTRSC 203 or 303 with a grade of C or better; and EECS 280 or CMPTRSC 280 with a grade of C or better.
4 credits. Offered F, W
Fundamental techniques for designing efficient algorithms and basic mathematical methods for analyzing their performance. Paradigms for algorithm design: divide-and-conquer, greedy methods, graph search techniques, dynamic programming. Design of efficient data structures and analysis of the running time and space requirements of algorithms in the worst and average cases.
Enforced prerequisite: EECS 281 or CMPTRSC 281 or EECS 380 or CMPTRSC 380 with a grade of C or better.
4 credits. Offered W
Pragmatic aspects of the production of software systems, dealing with structuring principles, design methodologies and informal analysis. Emphasis is given to development of large, complex software systems. A term project usually required.
Enforced prerequisite: EECS 281 or CMPTRSC 281 or EECS 380 or CMPTRSC 380 with a grade of C or better.
4 credits. Offered F, W
Concepts and methods for the design, creation, query and management of large enterprise databases. Functions and characteristics of the leading database management systems. Query languages such as SQL, forms, embedded SQL, and application development tools. Database design, integrity, normalization, access methods, query optimization, transaction management and currency control and recovery.
Enforced prerequisite: EECS 281 or CMPTRSC 281 or EECS 380 or CMPTRSC 380 with a grade of C or better.
4 credits. Offered F, W
Design and use of databases in the Web context; data models, database design, replication issues, client/server systems, information retrieval, web server design; substantial project involving the development of a database-backed web site.
Enforced prerequisite: EECS 382 or EECS 484 or CMPTRSC 484 with a grade of C or better.
4 credits. Offered W
Fundamental concepts of AI, organized around the task of building computational agents. Core topics include search, logic, representation and reasoning, automated planning, decision making under uncertainty, and machine learning.
Enforced prerequisites: EECS 281 or CMPTRSC 281 or EECS 380 or CMPTRSC 380 with a grade of C or better.
4 credits. Offered F, W
Concepts and techniques for designing computer system user interfaces to be easy to learn and use, with an introduction to their implementation. Task analysis, design of functionality, display and interaction design, and usability evaluation. Interface programming using an object-oriented application framework. Fluency in a standard object-oriented programming language is assumed.
Enforced prerequisites: EECS 281 or CMPTRSC 281 or EECS 380 or CMPTRSC 380 with a grade of C or better.
4 credits. Offered W
Concepts and methods for the design and development of computer games. Topics include: history of games, 2D graphics and animation, sprites, 3D animation, binary space partition trees, software engineering, game design, interactive fiction, use interfaces, artificial intelligence, game SDK's, networking, multi-player games, game development environments, commercialization of software.
Enforced prerequisites: EECS 281 or CMPTRSC 281 or EECS 380 or CMPTRSC 380 with a grade of C or better.
4 credits. Offered F
* Courses have been historically offered as indicated (F = Fall, W = Winter, Sp = Spring, Su = Summer). Terms in which courses are offered are, however, subject to change.
Note: Students may enroll in track courses prior to completing all prerequisite and core courses.
Use this spreadsheet to calculate a concentration GPA in Informatics with a Computational Informatics track. Use all attempts at a course in the GPA calculation.
Elective Courses (12 credits)
Eight [8] elective credits must be at the 300 level or higher. See the list of approved concentration electives.
In consultation with a faculty advisor, a course not on the approved list of electives may be selected to fulfill elective credit. Approval of the course must be obtained prior to enrollment. The Informatics Elective Approval Form must also be submitted to the Program Coordinator in 439 West Hall.
Informatics Elective Approval Form