Skip to main content


CSC8101 : Engineering for AI

  • Offered for Year: 2022/23
  • Module Leader(s): Professor Paolo Missier
  • Other Staff: Mr Pedro Pinto Da Silva
  • Owning School: Computing
  • Teaching Location: Newcastle City Campus
Semester 2 Credit Value: 10
ECTS Credits: 5.0


The aim of the module is to introduce students to the complex combination of data engineering technology and data science that makes it possible to extract valuable knowledge from “Big Data”. A number of technical challenges are derived from the high volume and high diversity (heterogeneity of meaning and format) and variable quality of the data, and a distinction is made based on whether the data is stationary (resides in a data repository) or it is in motion (data streaming, as it would be produced for instance by sensors).
The module emphasises the following aspects:
-       Distribution of data processing over a cluster of computing nodes, hosted in a cloud environment, as a way to scale out computing resources as the size of the data to be processed increases. This includes current frameworks for massively parallel data processing, notably Spark which is the most successful example of cloud-based distributed programming platform, and possibly Dask.
-       Examples of algorithms that can be successfully parallelised and thus are able to take advantage of distributed data architectures
-       Models of computation that enable near- real time analytics on data streams
-       Specialised data structures, specifically graphs. The module covers basics of graph databases (Neo4J) but also massively parallel graph algorithms, i.e., implemented using the Pregel framework.
-       Examples of data science applications, including Machine Learning algorithms that are enabled by Big Data technology.
Emphasis is also placed on the rapid pace of technology advances in this area, and cutting-edge further reading material is offered for in-depth learning and deep-dives into specific topics

Outline Of Syllabus

1.       Introduction to Data Science and Data Analytics. Scalability, efficiency of parallel processing.
2.       Batch Big Data Processing (MapReduce)
3.       Computing environments for Big Data Analytics and Machine Learning:
•       Big Data platforms (Databricks, Cloudera), Spark
4.       Data Stream processing: Overview of real time Event Processing and querying
5.       Graph data processing: Example of algorithms for graph analytics, graph databases and query languages (GDBMS), massively parallel graph processing model (Pregel)

Teaching Methods

Teaching Activities
Category Activity Number Length Student Hours Comment
Guided Independent StudyAssessment preparation and completion401:0040:00Independent programming / coursework development & in class test
Scheduled Learning And Teaching ActivitiesLecture141:0014:00Online / in class sessions. ideally these will be“flipped lectures” (see rationale below)
Scheduled Learning And Teaching ActivitiesPractical101:0010:00Online / in lab time with demonstrators
Guided Independent StudyDirected research and reading181:0018:00Prep ahead of class using Pre-recorded lectures or other teaching material exercises
Guided Independent StudyIndependent study181:0018:00after class study time
Teaching Rationale And Relationship

The learning experience is organized into two parts with roughly equal weight:
1.       Theory (50 hours). This follows the paradigm: watch-study-engage. Lectures will be used to introduce the learning material and for demonstrating the key concepts by example. Selected lectures will be pre-recorded to enable the class to be “flipped” during scheduled lecture time. For these lectures, students will be expected to follow the recording ahead of time (Structured Guided Learning) and then engage in Q&A during online / PIP class time.
Students are also expected to address specific topics in depth and independently (Directed research and reading) as part of this
2.       Practical programming (50 hours). Workshops are offered to introduce the computational environment(s), as well as weekly Drop- in/Surgery hours to help solve practical problems. The bulk of the time for this part is for independent study and programming.

Assessment Methods

The format of resits will be determined by the Board of Examiners

Other Assessment
Description Semester When Set Percentage Comment
Oral Examination2M20This is either a short "viva” consisting of 2-3 oral questions, or a written in-class test at the end of the teaching block
Prob solv exercises2M80Programming exercise consisting of multiple parts. Exercise may be carried out as part of group. Assessed for whole group.
Assessment Rationale And Relationship

The assessment structure is designed to
-       promote a deep understanding of the lecture material through assessed exercises
-       encourage students to engage with one or more programming environments, which may be new to them, and develop practical problem-solving skills to address specific programming challenges

Students will be completing a practical programming exercise (80% of total mark) mostly on their own time (Assessment preparation and completion) but a final in-class test (20% of total mark) will take place on the last day of class.

Depending on the available computing resources, the practical assessment exercise may be carried out as part of a small group (2-3 students). It will be assessed for the whole group, and the oral Examination component will be used to determine individual contributions to the project.

Reading Lists