Teaching
Present
CS 1656 - Introduction to Data Science
Spring 2017
This course provides an overview of data science technologies and techniques, offering a holistic view of the field, from data management & manipulation, to data analysis, and data presentation. The course covers the main data management/querying paradigms (Relational/SQL, XML/XQuery, RDF/SPARQL, Graph/Cypher) along with information retrieval, data warehousing, data mining, data visualization, and other data analysis topics. The course utilizes Python as the default programming language and leverages existing libraries, as appropriate.
Past
CS 1501 - Algorithm Implementation
Fall 2016
The course covers a broad range of the most commonly used algorithms: some examples include algorithms for sorting, searching, encryption, compression, and local search. The students implement and test several algorithms. The course is programming intensive.
CS/COE 449 - Introduction to Systems Software
Spring 2013, Spring 2016
This course introduces the students to the important systems language, C, and to several topics related to the hardware and software environment. These are issues related to device interfaces and hardware synchronization at the lowest level of the operating system, the linkage of operating system services to application software, and the fundamental mechanisms for computer communications.
CS 2550 - Principles of Database Systems (Graduate Course)
Spring 2014, Spring 2015
The principle objective of this course is to provide an in-depth knowledge of Database Management Systems design. Important aspects of distributed database systems and new data processing paradigms (such as data streams) are also covered.
CS/COE 1520 - Programming Languages for Web Applications
Spring 2015
Various programming paradigms are studied using Java and scripting languages. The use of Java in programming web based applications, network applications, and the use of the extensive Java libraries is studied. The programming paradigm of building software by gluing components is explored through the use of scripting languages such as Perl and JavaScript. Applications include developing GUIs and internet programming.
CS 1550 - Introduction to Operating Systems
Summer 2013, Fall 2013, Spring 2014, Spring 2015
The purpose of this course is to understand and use the basic concepts of operating systems, common to most computer systems, which interfaces the machine with the programmer. In particular, this class is meant to introduce processes such as the processing unit, process management, concurrency, communication, memory management and protection, and file systems.
CS 1501 - Algorithm Implementation
Summer 2014, Fall 2014
The course covers a broad range of the most commonly used algorithms: some examples include algorithms for sorting, searching, encryption, compression, and local search. The students implement and test several algorithms. The course is programming intensive.