4 hours.

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)*

3 hours.

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)*

4 hours.

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)*

3 hours.

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, Fall 2014)*

4 hours.

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)*

4 hours.

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)*

4 hours. 3 hours lecture and 2 hours lab.

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)*

3 hours.

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)*

3 hours.

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

*(Taught Fall 2009)*

4 hours.

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)*

3 hours. 2 hours lecture and 2 hours lab per week.

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)*