Data Science

Bachelor of Science in Data Science

Program Profile

Name of the program degree Bachelor of Science in Data Science
Program duration to be completed in  4 years on a full-time basis
Total credits Major in Data Science + minor in Business Essentials, Finance, Marketing, Communications, Healthcare Management, Healthcare Information for Engineers or other minor: 120 credits

Program Purpose

The purpose of the program is to develop young data scientists with:

  • Understanding of theoretical principles of computing, statistics and data management to support continual learning,
  • Experience with current data science techniques and producing value from data,
  • Understanding of their role in an organisation and in broader society of managing data and using it productively.

This will allow them to contribute as practicing Data Scientists demonstrating creativity, innovation, leadership and professionalism.

Program Educational Objectives

The educational objectives of the Bachelor of Science in Data Science program are that within a few years of graduation, the majority of our graduates will demonstrate excellence in (i) top graduate programs; or (ii) technical or managerial leadership tracks in technology-based industries or sectors; or (iii) pursuing entrepreneurial ventures.

In these roles, they will:

  1. Demonstrate proficiency with data science principles and knowledge of specific computing or statistical methods, also to serve as a basis for continual learning;
  2. Acquire, manage, explore and analyze large or complex data sets in order to provide useful insight, while properly respecting economic, environmental, cultural, life safety, and ethical standards or constraints;
  3. Discover and apply new knowledge, and develop new tools for the practice of data science and the development of data processing pipelines;
  4. Be sensitive to professional and societal contexts, committed to ethical action, engaged in life-long learning and be prepared for future academic career, should they want one;
  5. Be leaders with an entrepreneurial mindset, and effective communicators as members of multidisciplinary teams, both in the profession and in the community;
  6. Engage with their communities, profession, the nation, and the world.

Student Outcomes

Students should, as data scientists, be able to:

  1. Acquire, manage, explore, and analyse large or complex data sets in order to provide insight about specific organizational or science problems;
  2. Do so using agile development and an entrepreneurial mindset;
  3. Design, implement, evaluate, and maintain a data processing pipeline using standard tools;
  4. Apply appropriate computer science and statistical theory and software development fundamentals when approaching data science problems;
  5. Use visualization and communicate effectively for a variety of professional contexts

In addition, as professionals they should:

  1. Recognize professional responsibilities and make informed judgments in data science practice based on legal, ethical, privacy and security considerations;
  2. Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.

 

No. Curriculum Components Number of Credits (New) Credit Distribution 

(%/Total Credits)

I GENERAL EDUCATION 27 22%
I.1 University Core Requirement 12 9.8%
I.2 Distributional Requirement 12 9.8%
I.3 Co-curricular Learning 3 2.4
II PROFESSIONAL EDUCATION 93 78%
II.1 College Core Requirement 26 33.3%
II.2 Major Core Requirement 29 12.2%
II.3 Discipline Electives 15 12.2%
II.4 Course-related projects 2 1.7%
II.5 Free Electives (minor*) 7 (15*) 5.6%
II.6 Internship/Co-op (at least 480 hours) Non-credit

(640 hours)

II.7 Capstone Design 6 4.9%
  TOTAL 120 100%

 

* Instead of taking 7 credits of free electives, students have an option of taking 15 credits to fulfil the requirements of a minor.

4 credits 

Pre-requisites: Introduction to Programming 

Course Description: 

This course covers program structure and organization, modular programming, advanced topics in object-oriented programming (abstract data types, polymorphism, interfaces, iterators), collections, basics of graphical user interfaces, recursion, data structures (lists, trees, stacks, queues, heaps, search trees, balanced trees, hash tables, graphs), and basic graph algorithms. Java is the principal programming language. 

4 credits

Pre-requisites: Introduction to Programming

Course Description:

This course provides a general introduction to data science and the processes and pipelines used with data science – spanning core topics from data acquisition and management to data exploration and business implementation.  In addition, other important considerations are covered such as sustainability, ethics, and entrepreneurial and agile development. This course also emphasizes a multidisciplinary mindset by introducing a number of case studies from different domains and working through a typical project.

4 credits

Pre-requisites: Introduction to Data Science

Course Description:

This course covers the major programming tools used in Data Science. This includes libraries within Python and the R programming language. Python libraries include those used in data preprocessing, managing data tables and data pipelines, dataflow programming on GPUs, visualisation and scientific computing. Some R counterparts to these are covered. Major components of the R development environment are also taught including documentation and external integration. Some newer programming languages will be briefly introduced.

4 credits 

Pre-requisites: None 

Course Description: 

This course covers notions, techniques and algorithms of discrete mathematics with the special emphasis on sets and proof techniques, functions and relations, number theory, combinatorics, probability, logic, the basics of graph theory and the basics of cryptography. 

4 credits 

Pre-requisites: Object-oriented Programming, Algorithms and Data Structures 

Course Description:  

This course provides an introduction to computer organization, systems programming and the hardware/software interface. Topics include instruction sets, computer arithmetic, datapath design, data formats, addressing modes, memory hierarchies including caches and virtual memory, I/O devices, bus-based I/O systems, and multicore architectures. Students learn assembly language programming and design a pipelined RISC processor. 

4 credits 

Pre-requisites: Object-oriented Programming, Algorithms and Data Structures 

Course Description: 

This course covers the topics of abstract data types, abstractions functions, interfaces, revisits recursion and regular expressions and grammars. It deals with parser generators, concurrency, thread safety, programming for sockets and networking, queues and message passing, multithreading, locks and synchronization, map and filter, streams and laziness. The course introduces the area of information and data management and how software can be designed to improve data management. It covers testing, code review, version control, designing specifications, debugging and developing complex graphical user interfaces.

4 credits 

Pre-requisites: Computer Organization 

Course Description: 

This course covers systems programming and introductory operating system design  and implementation. The basics of operating systems, namely structure, concurrency, scheduling, synchronization, memory management, filesystems, security and networking are covered. The course introduces parallel and distributed computing. 

4 credits 

Pre-requisites: Introduction to Programming; Probability and Statistics 

Course Description: 

This course covers the main areas of artificial intelligence, including symbolic and connectivist approaches to artificial intelligence, state search algorithms and biologically inspired optimization algorithms, Bayesian networks, the use of logic programming and inference algorithms for logical problems. As part of the course, students will learn about various approaches to representing uncertainty, get an introduction to the decision theory, planning and decision making under uncertainty, and learn how to apply various artificial intelligence methods to different problems. The course will consider ethical and societal issues related to artificial intelligence. 

3 credits

Pre-requisites: Data Science Programming

Course Description:

This course considers the application of data science with regards to the broader context of stakeholders and society, including legal, economic, environmental, cultural and ethical standards or constraints. These will be explored through notable cases studies that have shaped the current consensus, as well as a review of national and international laws and standards. The problems of fairness, privacy and security will be investigated further. These will be defined and methods introduced for their evaluation and maintenance. Future developments and methods for continual learning are also presented.

4 credits 

Pre-requisites: Theory of Computation 

Course Description: 

This course covers four major algorithm design techniques (greedy algorithms, divide and conquer, dynamic programming, and network flow), and algorithmic techniques for intractable problems, including identification of structured special cases, approximation algorithms, and local search heuristics. Applications are drawn from systems and networks, artificial intelligence, computer vision, data mining, and computational biology. 

4 credits 

Pre-requisites: Linear Algebra, Probability and Statistics, Object-oriented Programming, Algorithms and Data Structures 

Course Description: 

This course covers the principles and algorithms for turning training data into effective automated predictions. It covers the topics such as representation, overfitting, regularization, and generalization, clustering, classification, recommender problems, probabilistic modelling, reinforcement learning; and methods such as support vector machines and neural networks/deep learning. 

4 credits 

Pre-requisites: Object-oriented Programming, Algorithms and Data Structures 

Course Description: 

This course gives an introduction to relational and noSQL database systems. The topics covered include the relational model, relational algebra, entity-relationship model, schema design, normal forms, SQL, indexing, sorting, relational operators, query optimization, transactions, concurrency control, recovery, database design, and concepts and algorithms for building database management systems. 

3 credits 

Pre-requisites: Machine Learning, Linear Algebra, Object-oriented Programming, Algorithms and Data Structures 

Course Description: 

This course teaches introduction to computer vision. The goal of computer vision is to compute properties of our world-the 3D shape of an environment, the motion of objects, the names of people or things-through analysis of digital images or videos. The course covers a range of topics, including 3D reconstruction, image segmentation, object recognition, and vision algorithms from the Internet, as well as key algorithmic, optimization, and machine learning techniques, such as graph cuts, nonlinear least squares, and deep learning. This course emphasizes hands-on experience with computer vision, and several large programming projects.

3 credits 

Pre-requisites: Computer Organization 

Course Description: 

This course teaches basic networking with an emphasis on the Internet. Examples of topics include: the World Wide Web, Email and Peer to Peer networks, data transmission and data encoding, circuit vs. packet switching, local area network technology, routing and switching, congestion control, network security, wireless networks and multimedia. Though the emphasis will be on the Internet, application modules on 4G/5G cellular, WiFi (802.11), and Bluetooth will be presented. 

Min 1 credit 

Pre-requisites: Determined by the course lecturers 

Courses for the project: Computer Organization, Algorithm Design, Operating Systems, Artificial Intelligence, Machine Learning, Human-Computer Interaction, Robotics, Cybersecurity and Data Mining and Big Data. 

Course Description: 

Students work in multidisciplinary teams on a course-related problem guided by the course instructor. 

3 credits 

Pre-requisites: Introduction to programming, statistics and probability, data mining and big data analytics 

Course Description: 

This course teaches techniques and algorithms for creating effective visualizations of large datasets and their analytics, based on principles from graphic design, visual art, perceptual psychology and cognitive science. In addition to participating in class discussions, students will have to complete several short data analysis and visualization design assignments as well as a final project. Data visualisation tools  such as Tableau are considered as lab exercises.

3 credits 

Pre-requisites: Machine Learning, Object-oriented Programming, Algorithms and Data Structures 

Course Description: 

This course covers the introduction to natural language processing (NLP), the goal of which is to enable computers to use human languages as input, output, or both. It examines NLP in context of including machine translation, automatic conversational assistants and Internet search. Possible topics include summarization, machine translation, sentiment analysis and information extraction as well as methods for handling the underlying phenomena (e.g., syntactic analysis, word sense disambiguation, discourse analysis, their shortcomings and solutions). 

3 credits 

Pre-requisites: Object-oriented Programming, Algorithms and Data Structures, Discrete Mathematics 

Course Description: 

This course covers the topics of technical and social understanding of how and why security and privacy matter, how to think adversarial, how (and how not) to design systems and products. Topics include user authentication, cryptography, malware, behavioural economics in security, human factors in security, privacy and anonymity, side channels, decoys and deception, and adversarial modelling. Real-world systems and attacks, including Bitcoin, Stuxnet, retailer breaches, implantable medical devices, and health apps are covered. The course discusses societal and ethical issues in cybersecurity. 

3 credits 

Pre-requisites: Linear Algebra, Object-oriented Programming, Algorithms and Data Structures, Machine Learning 

Course Description: 

This course covers the statistical aspects of data mining, the effective analysis of large datasets. It covers the process of building and interpreting various statistical models appropriate to such problems arising in scientific and business applications. Topics include preparing data for data mining and interpreting and representing knowledge from big data analysis. Assignments are done using one or more data mining. 

3 credits 

Pre-requisites: Theory of Computation, Linear algebra 

Course Description: 

This is an introductory course in Cryptography. Topics include one-way functions, encryption, digital signatures, pseudo-random number generation, zero-knowledge and basic protocols. The emphasis will be on fundamental notions and constructions with proofs of security based on precise definitions and assumptions. 

Non-credit course 

Pre-requisites: Determined jointly by the faculty and internship company representatives. 

Course Description: 

Students work on a problem jointly defined by the faculty and a company or an organization. The problems need to be higher-level and designs problems requiring students to work in teams and to engage in various phases of company operation during the practice/internship semester. 

6 credits 

Pre-requisites: Practice/Internship; Determined by the advisor 

Course Description: 

Students work on a problem defined by their advisor and apply knowledge from the practice/internship and the courses completed by the student. 

3 credits 

Pre-requisites: Probability and Statistics 

Course Description: 

This course teaches advanced topics in probability and statistics. Topics include random processes, convergence of random processes, Markov Chains, Bayesian statistics, and nonlinear regression.