York University (EECS)

EECS6414 - Data Analytics and Visualization

Data analytics and visualization is an emerging discipline of immense importance to any data-driven organization. This is a project-focused course that provides students with knowledge on tools for data mining and visualization and practical experience working with data mining and machine learning algorithms for analysis of very large amounts of data. It also focuses on methods and models for efficient communication of data results through data visualization. Topics include finding similar items, frequent itemsets, mining data streams, clustering, dimensionality reduction, link analysis, mining graphs, recommendation systems, value of visualization, exploratory data analysis, visualization of multidimensional data, visualization of networks, tools for data analytics and visualization.

  • Graduate course; small groups of students
  • Fall 2017, Winter 2019, Winter 2020, Winter 2021
  • EECS, York University

VISIT THE WEBSITE


EECS4415 - Big Data Systems

Storing, managing, and processing datasets are foundational to both computer science and data science. The enormous size of today's data sets and the specific requirements of modern applications, necessitated the growth of a new generation of data management systems, where the emphasis is put on distributed and fault-tolerant processing. New programming paradigms have evolved, an abundance of information platforms offering data management and analysis solutions appeared and a number of novel methods and tools have been developed. This course introduces the fundamentals of big data storage, retrieval, and processing systems. As these fundamentals are introduced, exemplary technologies are used to illustrate how big data systems can leverage very large data sets that become available through multiple sources and are characterized by diverse levels of volume (terabytes; billion records), velocity (batch; real-time; streaming) and variety (structured; semi-structured; unstructured). The course aims to provide students with both theoretical knowledge and practical experience of the field by covering recent research on big data systems and their basic properties.

  • Senior undergrad course; small groups of students
  • Fall 2018, Fall 2019, Summer 2021
  • EECS, York University

VISIT THE WEBSITE


EECS4414 / EECS5414 - Information Networks

Information networks are effective representations of pairwise relationships between objects. Examples include technological networks (e.g., World Wide Web), online social networks (e.g., Facebook), biological networks (e.g., Protein-to-Protein interactions), and more. The study of information networks is an emerging discipline of immense importance that combines graph theory, probability and statistics, data mining and analysis, and computational social science. This course provides students with both theoretical knowledge and practical experience of the field by covering models and algorithms of information networks and their basic properties. In addition, analysis of information networks provides the means to explore large, complex data coming from vastly diverse sources and to inform computational problems and better decisions. Topics include basic graph theory, network measurements, network models, community detection, graph partitioning, link analysis, link prediction, information cascades & epidemics, network ties, social recommendation systems, mining graphs, connections to problems in the social sciences and economics.

  • Integrated undergrad and grad course; small groups of students
  • Winter 2017 (as eecs6413), Winter 2018, Fall 2020, Fall 2021, Winter 2022, Fall 2023, Winter 2024, Summer 2024
  • EECS, York University

VISIT THE WEBSITE


EECS3421-Introduction to Database Management Systems

This course provides an introduction to the fundamental concepts of database management, including topics of relational data model, relational algebra, SQL query language, SQL in a server environment, the Entity/Relationship model, design theory and normalization, the semi-structured data model (XML), programming languages for XML (XPath/XQuery), advanced topics (transactions, concurrency control, recovery, sql security).

VISIT THE WEBSITE


EECS2031-Software Tools

This course provides an introduction to software techniques in a Unix-style environment, using scripting languages and a machine-oriented programming language (typically C). What goes on in the system when programs are executed. Core topics: creating and using software tools, pipes and filters, file processing, shell programming, processes, system calls, signals.

  • ~150 students
  • Winter 2018

VISIT THE WEBSITE


Professional Faculty @ University of California, Berkeley (iSchool)

Data Science W205 - Storing and Retrieving Data

Data Science depends on data, and a core competency mandated by this reliance on data is knowing effective and efficient ways to manage, search and compute over that data. This course is focused on how data can be stored, managed and retrieved as needed for use in analysis or operations. The goal of this course is provide students with both theoretical knowledge and practical experience leading to mastery of data management, storage and retrieval with very large-scale data sets.

VISIT THE WEBSITE


Sessional Instructor @ University of Toronto

CSC343-Introduction to Databases

This course provides an introduction to database management systems. The relational data model. Relational algebra. Querying and updating databases: the SQL query language. Application programming with SQL. Integrity constraints, normal forms, and database design. Elements of database system technology: query processing, transaction management. Semi-structured data models. Quering semi-structured data (xml, xpath, xquery technologies).

  • 1000+ students
  • Winter 2015, Fall 2014, Winter 2014, Fall 2013, Fall 2012, Fall 2011

VISIT THE WEBSITE


CSC309-Programming on the Web

This course provides an introduction to the technologies used for developing Web applications. We discuss technologies for static and dynamic content generation, including n-tiered architectures and web services. We also discuss general Web design principles, with a special focus on usability, security and scalability.

  • ~220 students
  • Winter 2015, Summer 2012, Summer 2011

VISIT THE WEBSITE


CSC209-Software Tools and Systems Programming

This course provides an introduction to software techniques in a Unix-style environment, using scripting languages and a machine-oriented programming language (typically C). What goes on in the system when programs are executed. Core topics: creating and using software tools, pipes and filters, file processing, shell programming, processes, system calls, signals, basic network programming.

  • ~120 students
  • Summer 2013, Winter 2012

VISIT THE WEBSITE


APS105-Computer Fundamentals

This course is designed to give an introduction to computer science with emphasis on the development of tools for problem solving in science and engineering. The course consists primarily of lectures and laboratories. Major topics covered in the lectures include: the representation of information, development of good programming techniques, program organization, algorithms, and data structures. Programming concepts are introduced using the C programming language.

  • ~100 students
  • Fall 2010

VISIT THE WEBSITE


APS106-Fundamentals of Computer Programming

This course provides an introduction to computer systems and software. Topics include the representation of information, algorithms, programming languages, operating systems and software engineering. Emphasis is on the design of algorithms and their implementation in software. Students will develop a competency in the C programming language. Laboratory exercises will explore programming concepts using examples drawn from mathematics and engineering applications.

  • ~100 students
  • Winter 2013

VISIT THE WEBSITE

Teaching Assistant @ University of Toronto

CSC343-Introduction to Databases

  • Fall 2009, Fall 2008, Winter 2007, Fall 2007
  • Undergraduate Course
  • website

This course is an advanced Database course that emphasizes on issues of implementation of Database Management Systems. Specifically, deals with issues such as Storage and Index Structures (Disks and files, Tree and Hash Indices, External Sorting), Query Processing and Optimization (Relational Algebra Operator Implementation, Logical and Physical Optimization of Relational Queries, Relational Query Optimizer Architecture), Transaction Management (Failure Recovery, Synchonization Control, Execution Plans and Serializability, Locking, Tree Protocols)

CSCD08-Software Engineering

  • Winter 2008, Winter 2007
  • Undergraduate Course
  • website

The structure and unique characteristics of large software systems. Concepts and techniques in the design and implementation of large software systems. Requirements definition and specification. Software modularity and programming languages for system implementation. Debugging, testing and software quality assurance. Software project management. Formal methods in software engineering. A course project is used to illustrate software engineering techniques.

CS309-Programming on the Web

  • Winter 2010, Fall 2007, Winter 2007, Fall 2006, Winter 2006
  • Undergraduate Course
  • website

An introduction to software development on the web. Concepts underlying the development of programs that operate on the web. Operational concepts of the internet and the web, static and dynamic client content, dynamically served content, n-tiered architectures, web development processes and security on the web.

CS340-Information Systems Analysis & Design

  • Fall 2005
  • Undergraduate Course
  • website

Theory, tools and techniques of problem analysis for software systems development, covering both information systems and control systems. Topics include: requirements specification, object-oriented analysis, business process modeling, and analysis of non-functional requirements.

CSC209-Software Tools and Systems Programming

  • Winter 2013, Winter 2010
  • Undergraduate Course
  • website

Techniques for programming efficiently by making use of operating-system facilities and standard utilities and software tools. Tools discussed and used are from the UNIX environment using the C programming language. Topics from: Programmable command interpreters, program generators, networking, interprocess communication, windows programming, challenging assignments emphasize the importance of good design, programming aptitude and use of appropriate tools.

CSCA20H3-Computer Science for the Sciences

  • Winter 2009
  • Undergraduate Course
  • website

An introduction to computer science for students in other sciences, with an emphasis on gaining practical skills. Introduction to programming; web programming; database design; software tools; examples and exercises taken from the sciences. At the end of this course students are able to develop computer tools for scientific applications, such as the structuring and analysis of experimental data.

CSC104-The Why and How of Computing

  • Fall 2011
  • Undergraduate Course
  • website

An introduction to computing for non-computer scientists. History of computing machinery; representation of data and their interaction with operations; hardware, software, operating systems; problem solving and algorithms; social issues in computing; a gentle introduction to programming. This course is an introduction to becoming actively engaged with computing, not a tutorial on using particular computer applications.

Teaching Assistant @ University of Crete

CS565-Business Process and Workflow Management Systems

  • Spring 2004
  • Graduate Course
  • website

The course deals with the workflow technology which represents the basic framework for the development of large scale business management systems. Starting from abstract descriptions of business processes the course will examine modeling, design, analysis, development and verification methods of the processes. Afterwards the course will study the management of implemented business processes using the workflow systems technology. The organisation and architecture of workflow management systems will be examined under the emergence of recent trends in the research fields of e/web-services and web-based information systems.)

CS460-Data Base Management Systems

  • Fall 2004, Fall 2003
  • Graduate Course
  • website

This course is an advanced Database course that emphasizes on issues of implementation of Database Management Systems. Specifically, deals with issues such as Storage and Index Structures (Disks and files, Tree and Hash Indices, External Sorting), Query Processing and Optimization (Relational Algebra Operator Implementation, Logical and Physical Optimization of Relational Queries, Relational Query Optimizer Architecture), Transaction Management (Failure Recovery, Synchonization Control, Execution Plans and Serializability, Locking, Tree Protocols)

CS359-Web Programming

  • Spring 2003
  • Undergraduate Course
  • website

This course offers (1) familiarity with internet based software technologies, (2) acquisition of the ability to develop a full-blown internet based application, (3) knowledge and understanding of the role of the middleware as a mean of development flexible, extensible and open applications, (4) understanding of the role of the internet as a mean of development platform-unware applications, (5) understanding and knowledge of the differencies between web-targeted and conventional software, (6) implementation of a real-life internet based application.