Courses

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. (The university also maintains an updated list of current classes in computer science and engineering as well as an index of past classes.)

Keke Chen

Home Page

CS 400/600: 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

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

Course Description Not Available.

CS 5100: 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.

CS 7100: 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.

CS 3100: 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.

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.

CS 6700: Introduction to Database Management Systems

Logical and physical aspects of database management systems are surveyed. Data models including entity-relationship (ER) and relational models are presented. Physical implementation (data organization and indexing) methods are discussed. Query languages including SQL, relational algebra, relational calculus, and QBE are studied. Database schema design methods are presented.

CS 5200: Theoretical Foundations of Computing

Introduction to the theory of formal languages and automata with an emphasis on the classes of languages commonly encountered by computer scientists. Computability examines the solution of decision problems; the Church-Turing thesis; the undecidability of the Halting Problem; and problem reduction and undecidability.

CS 7720: Data Mining

Data mining is concerned with the extraction of novel and useful knowledge from large amounts of data. This course studies the fundamental and advanced concepts, principles, issues, tasks and techniques of data mining. Topics include data preparation, data mining for various knowledge types, data mining from various data types and applications, evaluation and validation, calability.

CS 7700: Advanced Database Systems

Introduction of design concepts, operating principles, current trends, and research issues in database systems.

T.K.Prasad

Home Page

CS 480/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

CS 707: 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.

CS 774: 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.

CS 776: 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.

CS 780: 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.

CS 781: 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.

CS 784: Programming Languages

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

CEG 860: 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.

CS 884: 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.

CS 5180: Comparative Languages

This course introduces fundamental concepts and paradigms underlying modern programming languages, to enable better appreciation, comparison and evaluation of languages. For concreteness, it covers the details of an object-oriented language, a functional language, a logic language, and a multi-paradigm scripting language. Basics of interpreters and compilers explored through programming assignments.

CS 7800: Information Retrieval

This course covers foundations of information retrieval systems. Specifically, it discusses models for information retrieval; techniques for indexing and searching; design, implementation, and evaluation of web search engine; and algorithms for classification and clustering.

CS 7100: Advanced Programming Languages

This course provides a solid foundation in programming language specification and design. It covers different programming paradigms, algebraic specification and implementation of data types, and develops interpreters for specifying operationally various programming language constructs. It also introduces attribute grammar formalism and axiomatic basis for computer programming.

Micheal Raymer

Home Page

CS 271: Introduction to Bioinformatics

Theory-orientated approach to the application of contemporary algorithms to bioinformatics. Graph theory, complexity theory, dynamic programming and optimization techniques applied to solving specific computational problems in molecular genetics. 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.

CEG 320: Computer Organization & Assembly Language Programming

Theory-orientated approach to the application of contemporary algorithms to bioinformatics. Graph theory, complexity theory, dynamic programming and optimization techniques applied to solving specific computational problems in molecular genetics. 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.

CS 400: 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

CS 466: 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.

CS 471/4810/6810: Algorithms 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.

CS 480: Comparative Languages

This course introduces fundamental concepts and paradigms underlying modern programming languages, to enable better appreciation, comparison and evaluation of languages. For concreteness, it covers the details of an object-oriented language, a functional language, a logic language, and a multi-paradigm scripting language. Basics of interpreters and compilers explored through programming assignments. Course Page: Comparative Languages.

CS 7220: Computability and Complexity

Fundamentals of computability theory. Undecidability. Time and space complexity. Cook's Theorem and NP completeness. Approximation strategies for intractable problems.

CEG 5310: Computer Organization

Organization and sequential operation of digital computers. Binary and hexadecimal number systems, 2's complement arithmetic, program control, memory organization and hierarchy, addressing modes, stacks and parameter passing, interrupts and traps, I/O devices, DMA, cache, and virtual memory.

Amit Sheth

Home Page

CS 4800-6800 & CS 475/675: Web Information Systems

This course is meant for those who are already comfortable with programming in Java and have some exposure to basic web technologies (do not take this class if you have not completed at least two programming courses). Also, some familiarity with Web programming is desirable (eg., if you have never written a Web page, it is premature to take this course - we will give some overview of Web programming while some you will have to pick up). This course is best taken by seniors (6800) and first year graduate students (6800) or by those in early phases of Big and Smart Data Sciences certification (7900 in Sp2015 and Sp2016). The course will primarily involve significant project work involving 2-4 students and a mentor, a lots of reading on your own, and room discussions. For more details visit Course page.

CS 7900: Web 3.0

This course is about Semantic Web concepts. It provides a hands on with Semantic Web Technologies and use of Semantic Web in real world applications. You can find the course Web page for this class here and class' community page here. (Please note that only members of the class have access to Web 3.0 Community page).

CS 790: Services Science

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.

CS 790: Semantic Web

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

CS 7820: Advanced Topics in Semantic Web

This course is about the Semantic Web, a key enabler of Web 3.0. It goes beyond the recent language standards of RDF and OWL to understand new techniques, technologies and algorithms for making a broad variety of data meaningful and more amenable to processing by humans and machines (on the Web, as Web services, generated on social networks or generated by sensors and mobile devices). Topics covered include research in semantic search, browsing, integration, analysis and discovery.

CS 7900: Web 3.0 Next Gen Web & Apps

Special topics in computer science

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 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.

Advanced Topics in Artificial Intelligence

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

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.

CS 7830: Machine Learning

Reviews the development of machine learning paradigms. Introductory topics include parameter adjustment methods, signature tables, and the application genetic algorithms to artificial intelligence problem domains.

CS 7900: Foundations Machine Learning

Special topics in computer science