CSCI 4380/6380: Data Mining

A broad introduction to data mining methods and an exploration of research problems in data mining and its applications in complex real-world domains. Approaches include association and classification rule learning, tree learning, neural network and Bayesian methods, support vector machines, clustering, and ensemble learning.

Taught Fall 2016, 2018, 2019, 2020, Spring & Fall 2021, Summer 2018


CSCI(PHIL) 4550/6550: Artificial Intelligence

The artificial intelligence approach to modeling cognitive processes. Topics include an introduction to heuristic methods, problem representation and search methods, classic AI techniques, and a review of the controversial issues of the AI paradigm of cognition as computation.

Taught Fall 2015, 2017, 2018, 2022


CSCI(PHIL) 8650: Logic and Logic Programming

Theoretical foundations of automated reasoning and logic programming. Topics covered include propositional logic, predicate logic, first-order models, resolution principles, logic programming paradigms, nonmonotonic reasoning.

Taught Spring 2009, Spring 2022


CSCI 8050: Knowledge-Based Systems

Theory and practice of knowledge-based system construction. Topics will include syntax, semantics, and proofs for first-order logic, knowledge-based system construction, rule based inference engines, production systems, the Semantic Web, description logics, reasoning from incomplete or uncertain information.

Taught Spring 2011, 2014, 2016, 2017, 2018, 2020


CSCI(ARTI) 4540/6540: Symbolic Programming

Programming in LISP and PROLOG, with emphasis on artificial intelligence techniques. Other languages used for artificial intelligence work will be presented more briefly.

Taught Fall 2008, 2014, 2017


CSCI 2670: Introduction to Theory of Computing

A first course on finite automata, regular and context free languages, push-down automata, pumping lemmas, the Chomsky hierarchy, Turing machines, decidability, reducibilities of decision problems, time complexity, NP-completeness and tractability.

Taught Spring 2013


CSCI 2610: Discrete Mathematics for Computer Science

A survey of the fundamental mathematical tools used in computer engineering: sets, relations, and functions; propositional and predicate logic; proof writing strategies such as direct, contradiction and induction; summations and recurrences; elementary asymptotics and timing analysis; counting and discrete probability; undirected and directed graphswith applications in computer science.

Taught Fall 2012, Spring 2013


CSCI 1301-1301L: Introduction to Computing and Programming

Algorithms, programs, and computing systems. Fundamental techniques of program development and supportive software tools. Programming projects and applications in a structured computer language. Hands-on experience using microcomputers. Offered fall, spring, and summer semesters every year.

Taught Fall 2006, Spring 2007, Fall 2012


CSCI 3030: Computing, Ethics, and Society

Introduction to social and ethical issues relating to computer science and information technology. Topics include intellectual property, open source software, the digital divide, globalization, and professional ethics. Students should have a working knowledge of personal computing.

Taught Spring 2011


PHIL 2500H: Symbolic Logic (Honors)

The methods and principles used to distinguish correct from incorrect deductive arguments, with emphasis on contemporary techniques of analysis.

Taught Fall 2009


CSCI 1100-1100L: Introduction to Personal Computing

Computer technology as currently used in universities, businesses, and homes. This course covers fundamental hardware, software, and networking concepts, plus the social, economic, and legal impact of information systems. Hands-on laboratory exercises cover advanced document preparation, mathematical modeling, and multimedia. Networks and the internet are emphasized throughout. Offered fall, spring, and summer semesters every year.

Taught Fall 2004, 2005, Summer 2005, 2006