Dr Syed Waqar Nabi
- Lecturer (School of Computing Science)
Dr S Waqar Nabi is a Lecturer at the School of Computing Science, University of Glasgow. He is a member of Glasgow Parallelism research group (GPG) of Systems Research Centre (GLASS), and also the Centre for Computing Science Education (CCSE).
He teaches primarily for the BSc (Hons) Software Engineering (Graduate Apprenticeship) program, covering foundational courses in the area of: logic design, computer architecture, operating systems, network systems, data structures, algorithms, and discrete maths. He is also deeply involved in structuring and coordinating the "work-based learning" aspect of the apprenticeship program.
Earlier at the School, he worked as a post-doc on the EPSRC funded project “Exploiting Parallelism through Type Transformations for Hybrid Manycore Systems”, with a focus on automatically targeting FPGA devices for accelerating legacy scientific code.
More on his LinkedIn profile.
- Improve accessibility to heterogeneous platforms (CPUs, GPUs and FPGAs) via smarter tools and compilers.
- Cost models, Code generation, and Optimization for heterogeneous devices.
- Acceleration of Scientific Models and Machine Learning on Heterogeneous Platforms.
- Low-carbon and sustainable computing.
- Exploring High-level Programming and Synthesis for FPGAs.
- FPGA-based embedded systems.
- Computing Science and Software Engineering Education.
- Work-Based & Competency-Based Learning.
- Higher education in Low and Middle Income Countries.
MSci, MSc and Undergraduate projects (selected)
- Automatic code translation from C to OpenCL for acceleration on GPUs
- Accelerating oceanic modeling on GPUs using CUDA
- Comparing parallel programming frameworks (CUDA, OpenCL, OpenACC, SYCL) for scientific computing
- Using FPGAs for accelerating scientific models from the domains of fluid dynamics
- Development and Optimisation of Quantum Computing Simulators with a Study of Quantum Algorithms
- Range Type Attributes and Number Representations for FPGAs
- Using OpenCL for Accelerating Deep-Learning on FPGAs
- Transformation of pipe-based OpenCL kernels into an LLVM-based intermediate representation for FPGA programming.
- Using Machine Learning to Uncover Language Features in Synthetic and Real Languages
- Static analysis of executable code for detecting backdoors
- Using graph analysis on neural network models of synthetic languages
I teach the following two courses regulalry for the Graduate Apprenticeship in Software Engineering program (which together cover these domains at an introductory level: Logic Design, Computer Organization and Architecture, Assembly language programming, Operating Systems, Networked Systems, Data Structures, Algorithms, Discrete Mathmematics)
I have co-designed and tutor teach these non-credit courses:
- Foundation Mathematics for Computing Science and Software Engineering 1
- Foundation Mathematics for Computing Science and Software Engineering 2