Courses

Faculty associated with Kno.e.sis offer a number of courses that provide the students with a comprehensive background and expertise in relevant research areas including, advanced data management, data integration and analysis,Semantic Web and Service Oriented computing. Courses that prepare students for research in Kno.e.sis with one or more faculty members are in BOLD.

Keke Chen

Home Page

CS 400/600 Fall 2008: Data Structures and Algorithms.

Study of the implementation of data structures and control structures in professional computer programs. Introduction to the fundamentals of complexity and analysis. Study of common standard problems and solutions (e.g., transitive closure and critical path). Emphasis on high-level language software design.

CS405/605 Introduction to Database Systems (Spring 2009)

Survey of logical and physical aspects of database management systems, including entity-relationship and relational data models; physical implementation methods; query languages; SQL, relational algebra, relational calculus, and QBE; experience in creating and manipulating databases.
Course Page: Introduction to Database Systems

Special Topics in Privacy Aware Computing (Winter 2009)

Course Description Not Available.
Course Page: Special Topics in Privacy Aware Computing

Guozhu Dong

Home Page

CS400/600: Data Structures and Software Design

Study of the implementation of data structures and control structures in professional computer programs. Introduction to the fundamentals of complexity and analysis. Study of common standard problems and solutions (e.g., transitive closure and critical path). Emphasis on high-level language software design.

CS405/605: Introduction to Database Management Systems

Survey of logical and physical aspects of database management systems, including entity-relationship and relational data models; physical implementation methods; query languages; SQL, relational algebra, relational calculus, and QBE; experience in creating and manipulating databases.

CS466/666: Introduction to Formal Languages

Introduction to the theory of formal languages and automata. Emphasis is on those classes of languages commonly encountered by computer scientists (e.g., regular and context-free languages).

CS701: Database Systems and Design

Introduction to basic goals and techniques in the design and implementation of information retrieval systems. Input, file organization, search strategies, output, language design, and evaluation techniques are covered.

CS705: Introduction to Data Mining

Data mining is concerned with the extraction of novel knowledge from large amounts of data. This course introduces and studies the concepts, issues, tasks, and techniques of data mining. Topics include data preparation and feature selection, association rules, classification, clustering, evaluation and validation, scalability, spatial and sequence mining, privacy, and data mining applications.
Course Page: Introduction to Data Mining

CS790: Advanced Data Mining

In this course we will cover advanced topics in data mining. We will study some classic papers as well as some important recent papers, on different types of applications, in this fast evolving field. Topics include sequence mining, text mining, graph mining, data warehouse/cube mining, micro-array gene expression mining, privacy with respect to data mining, sensor network mining, data stream mining, time series mining, web mining, etc. The aim is to prepare you for advanced data mining research and application development.

CS790: Information Security

Lectures on and study of selected topics in current research and recent developments in computer science.

CS790: Data Warehousing

Course Description Not Available.

T.K.Prasad

Home Page

CS340 Programming Language Workshop in Python

This course is designed as a self-study in Python. You are expected to learn the language and solve a set of programming problems assigned to you from Dietel et al using Python available from http://www.python.org
Course Page: Programming Language Workshop in Python

CS340 Programming Language Workshop in Java

This course is designed as a self-study in Java. You are expected to learn the Java language and solve a set of programming problems assigned to you using it. (You may develop your code using any IDE you like, but you must ensure that it eventually runs using JDK 5).
Course Page: Programming Language Workshop in Java

CS340 Programming Language Workshop in C#

This course is designed as a self-study in C#. You are expected to learn the language and solve a set of programming problems assigned to you using MS Visual Studio .NET.
Course Page: Programming Language Workshop in C#

CS466/666 Formal Languages and Automata

This course introduces the theory of formal languages and automata. The primary focus is on the two methods of defining languages: using generators (e.g., grammars/regular expressions) and using recognizers (e.g., finite state machines). Along with presenting the fundamentals, this course will develop and examine relationships among the various specification methods for the regular languages and the context-free languages, in detail.
Course Page: Formal Languages and Automata

CS480/680 Comparative Languages

This course will introduce fundamental concepts and paradigms underlying the design of modern programming languages. For concreteness, we study the details of an object-oriented language (e.g. Java), and a functional language (e.g., Scheme). The overall goal is to enable comparison and evaluation of existing languages. The programming assignments will be coded in Java 5 and in Scheme.
Course Page: Comparative Languages

CS499/699 Introduction to Information Retrieval

To cover the foundations of information retrieval, to enable design, analysis and implementation of IR systems.
Course Page: Introduction to Information Retrieval

CS707 Information Retrieval

This course covers models for information retrieval, techniques for indexing and searching, and algorithms for classification and clustering. It will also cover SVM, latent semantic indexing, link analysis and ranking, Map-Reduce architecture and Hadoop, to different degrees of detail, time permitting.
Course Page: Information Retrieval

CS774 Logic Programming

This course deals with logic programming paradigm and Prolog. We discuss the syntax and the semantics of Prolog, the working of a Prolog interpreter and various applications of Prolog. In particular, we consider the use of Prolog for Database Querying, for Parsing and for Problem Solving in Artificial Intelligence etc. Meta-programming aspects of Prolog will be emphasized. The programming assignments will be coded in SWI_Prolog .
Course Page: Logic Programming

CS776 Functional Programming

This course will discuss important concepts of functional programming such as recursive definitions, higher-order functions, type inference, polymorphism, abstract data types, modules etc. The programming exercises will illustrate the utility of list-processing, pattern matching, abstraction of data/control, strong typing, and parameterized modules (functors). We also study the mathematical reasoning involved in the design of functional programs and techniques for proving properties about functions so defined. The programming assignments will be coded in SML '97 (Standard ML of New Jersey). and Haskell.
Course Page: Functional Programming

CS780 Compiler Design and Construction I

This course deals with the theory and practice of compiler design. Topics emphasized are scanning and parsing. If time permits, semantic analysis will also be covered.
Course Page: Compiler Design and Construction I

CS781 Compiler Design and Construction II

This course is a continuation of CS780 covering the theory and practice of compiler design. Topics emphasized are semantic analysis, code generation, and optimization.
Course Page: Compiler Design and Construction II

CS784 Programming Languages

To provide a solid foundation for studying advanced topics in Programming Language Specification and Design.
Course Page: Programming Languages

CEG860 Object-Oriented Programming

This course motivates the need for object-oriented programming, and studies, in detail, object-oriented programming techniques, languages, and technology. The lectures will focus on the foundations of OOP, while the student presentations will focus on the applications and extensions of Object Technology.
Course Page: Object-Oriented Programming

CS884 Advanced Topics in Programming Languages

The primary focus of this course is  the design and specification of the Object-Oriented language Java
Course Page: Advanced Topics in Programming Languages

CS891 Information Extraction, Retrieval, and Management

This course expects an advanced Ph.D. student to  (i) review background material in the area of Information Retrieval, Extraction, and Management, and (ii) develop/deliver a presentation on a mutually acceptable topic.
Course Page: Information Extraction, Retrieval, and Management

Collaborative Design of a System-on-a-Chip

Soon it is estimated that circuits will have a complexity of about 150 million transistors and require perhaps over 1,000 design engineers. So technology is in need of collaborative design, since it is not realistic to have available thousands of designers at the same location. Likewise, another paradigm of design for systems on a chip is that multidisciplinary skills are required. Thus, this course aims to develop an understanding of  Micro/Macro collaboration along with the  ability to apply and use multidisciplinary skills for the design of a system on a chip.
Course Page: Collaborative Design of a System-on-a-Chip

Micheal Raymer

Home Page

CS271 Introduction to Bioinformatics

Tools-oriented approach to bioinformatics emphasizing data structure and DNA, string representation in PERL, data searches, pairwise alignments, substitution patterns, protein structure prediction and modeling, proteomics, and the use of web-based bioinformatic tools.
Course Page: Introduction to Bioinformatics

CEG320 Computer Organization & Assembly Language Programming

Terminology and understanding of functional organizations and sequential operation of a digital computer. Program structure, and machine and assembly language topics including addressing, stacks, argument passing, arithmetic operations, traps, and input/output. Macros, modularization, linkers, and debuggers are used. Prerequisite: CEG 260, CS 242.
Course Page: Computer Organization & Assembly Language Programming

CS400 Data Structures and Software Design

Study of the implementation of data structures and control structures in professional computer programs. Introduction to the fundamentals of complexity and analysis. Study of common standard problems and solutions (e.g., transitive closure and critical path). Emphasis on high-level language software design. Three hours lecture, two hours lab.
Course Page: Data Structures and Software Design

CS466 Introduction to Formal Languages

Introduction to the theory of formal languages and automata. Emphasis is on those classes of languages commonly encountered by computer scientists (e.g., regular and context-free languages). 3 credit hours lecture, 2 credit hours lab. Prerequisite: CS 400, MTH 257; or MTH 257 and a 400-level math or statistics course.
Course Page: Introduction to Formal Languages

CS471Algorithms for Bioinformatics

Theory-orientated approach to the application of contemporary algorithms to bioinformatics. Graph theory, complexity theory, dynamic programming and optimization techniques are introduced in the context of application toward solving specific computational problems in molecular genetics.
Course Page: Algorithms for Bioinformatics

CS480 Comparative Languages

Basic concepts and special-purpose facilities in programming languages examined through several representative languages. Three hours lecture, two hours lab.
Course Page: Comparative Languages

Amit Sheth

Home Page

CS 475/675: Web Information Systems

This course covers advanced topics in managing Web-based resources, with a focus on building applications involving heterogeneous data. It will expose students to the following concept, topics, architectures, techniques, and technologies

  • data, metadata, information, knowledge, and ontologies
  • unstructured, semi-structured, structured, multimodal, multimedia, and sensor data syntax, structural/representational, and semantic aspects of data
  • architectures: federated databases, mediator, information brokering
  • integration and analysis of Web-based information
  • automatic information/metadata extraction (entity identification/recognition, disambiguation)
  • Web search engines, social networks, Web 2.0
  • Semantic Web and Web 3.0
  • relevant Web standards and technologies
  • real-world examples that have major research projects and commercial products

The course assumes basic knowledge of databases and Web technologies (e.g., search engines). It is an ideal first course in a series of advanced courses on Semantic Web and Services Sciences we will offer as education and research components of the Advanced Data Management Program at Ohio's Wright Center of Innovation. See additional activities in this area at Kno.e.sis Center. The class will start with lectures, move on to rigorous discussion of course material (most of which will be available on the Web), and end with a mini-project.

CS 499/699 Web Information Systems (Spring 2008)

This course covers advanced topics in managing Web-based resources, with a focus on building applications involving heterogeneous data. It will expose students to topics, techniques, and technologies of data, metadata, information, knowledge, and ontologies including the semantic aspects of data, data architectures, Web search and information integration, Web standards, Web 2.0, Semantic Web,and Web 3.0.

CS 790 Web3.0:Social, Services, Sensor Semantic Web (Winter 2009)

Web has rapidly evolved from a Web of documents and databases (also called Web1.0) to Web2.0 involving user generated content, social computing and more. At the same time, Web services and Web APIs have allowed delivery of computing capabilities (tools and applications wrapped as services) over the Web, leading to rapid integration of services as Mashups. Now, both machine sensors as well as humans as sensors (eg a human twitting his observation or views) are rapidly becoming important members of the Web. Many exciting applications become possible if all the resources generated through services, social interactions, user generated content and sensors can be easily integrated and analyzed. Semantics and the Semantic Web technologies have started to provide such a capability.

CS 790 Services Science (Winter 2008)

Service Science, Management, and Engineering (SSME), often referred to as Services Science, is emerging as a distinct field of study. It encompasses numerous areas relating to the increasing role of services in the world economy. In this course we will focus primarily on services computing, or the technical aspects of services science, and secondarily on the allied economic, business, and organizational aspects. The course will start with a rapid introduction to Web services and Web processes/workflows, including related technologies (WSDL, SOAP, UDDI) and then look at the emergence of semantic Web services (SWS) and processes (SWP), in which semantics is used to enhance design, annotation, publication, discovery, composition, and execution of services and processes. We will also cover the non-technical aspects that are key to the emerging service economy.
Course Page: Services Science

CS 790 Semantic Web (Fall 2007)

World Wide Web (Web 1.0, or “the Web,” as we now know it) centers on documents and semi-structured data in html, rss, and xml. The next generation Web, also called Web 2.0 and Web 3.0, has already started to emerge. Web 2.0 is about user-generated content, user participation such as through tagging, and social networking. Web 3.0, also called Semantic Web, is about labeling content such that machines can process it more intelligently and humans can exploit it more effectively. These labels or metadata add semantics (meaning) to data, and their formal representation enables powerful reasoning that leads not only to better (semantic) search but also to analysis, discovery, and decision making. Semantic Web is already a rapidly emerging field, with standards, technologies, products, and applications—as well as to excellent job prospects (for MS students) and research opportunities (for PhD students).
Course Page: Semantic Web

Shaojun Wang

Home Page

CS 409/609 Principles of Artificial Intelligence

This course is an introduction to artificial intelligence. We will cover the most fundamental yet important algorithms and methods in this field and illustrate application areas such as natural language processing, speech recognition, computer vision and robotics.
Course Page: Principles of Artificial Intelligence

CS 712 Advanced Topics in Artificial Intelligence: Inference in Graphical Models

Graphical models are a unifying framework for describing the statistical relationships between large sets of variables. The course addresses the basic questions of computing the marginal distribution, partition function and feature expectation etc. The focus is on sparse graph structures and theoretical analysis with the goal of providing a unifying roadmap for navigating and understanding the broad array of approximate algorithms for marginalization and learning in graphical models. Topics include: message passing algorithms; belief propagation; survey propagation; sparse graph codes; random combinatorial optimization (random K-satisfiability). This course will show how a wide class of methods----including mean field theory, sum-product or belief propagation algorithms, expectation-propagation, and max-product algorithms----are all variational methods, meaning that they can be understood as algorithms for solving particular optimization problems on graphs. The perspective also forges connections to convex optimization, including linear programming and other type of conic relaxations.
Course Page: Advanced Topics in Artificial Intelligence: Inference in Graphical Models

CS 712 Advanced Topics in Artificial Intelligence: Probabilistic Graphical Models

This course will cover the fundamentals of graphical probability models, focusing on the key representations, algorithms and theories that have facilitated much recent progress in artificial intelligence research.
Course Page: Advanced Topics in Artificial Intelligence: Probabilistic Graphical Models

CS 714 Machine Learning, Winter 2009

This introductory course on machine learning will give an overview of many concepts, techniques, and algorithms in machine learning that are now widely applied in scientific data analysis, data mining, trainable recognition systems, adaptive resource allocators, and adaptive controllers. The emphasis will be on understanding the fundamental principles that permit effective learning in these systems, realizing their inherent limitations, and exploring the latest advanced techniques employed in machine learning.
Course Page: Machine Learning

CS 771 Natural Language Processing Techniques

This course is designed to introduce students to the current statistical techniques for the automatic analysis of natural (human) language data. It develops an in-depth understanding of both the algorithms available for the processing of linguistic information and the underlying computational properties of natural languages. Potential topics include language modeling, finite state models, stochastic grammars, latent semantic analysis, log-linear models in natural language processing. We will explore how these core techniques can be applied to user applications such as information extraction, question answering, automatic speech recognition, statistical machine translation.
Course Page: Natural Language Processing Techniques

CS 772 Advanced Natural Language Processing Concepts

This is a seminar-style course devoted to recent research in statistical techniques for the automatic analysis of natural (human) language data. The instructor will give some lectures on the fundamentals and ask students to present topical papers. The topics covered in this course are: syntactic language models and large-scale distributed language models, search algorithms, statistical machine translation and non-parametric Bayesian models/processes (Dirichlet, Pitman-Yor, Indian-Buffet, etc) for natural language processing.
Course Page: Advanced Natural Language Processing Concepts

CS 790 Information Theory, Machine Learning and Statistics

Information theory deals with encoding data in order to transmit it correctly and effectively. Statistics and machine learning deal with estimating models of data and predicting future observations. Is there any relationship between the two? It turns out, perhaps not surprisingly, that the most compact encoding of the data is by the probabilistic model that describes it best. In other words, there is a fundamental link between information and probability.
Course Page: Information Theory, Machine Learning and Statistics