Teaching

Sheikh Ghafoor has over 20 years of teaching experience. He began his teaching career as a lecturer in the Department of Applied Physics and Electronics at the University of Dhaka in Bangladesh, where he primarily taught advanced courses in operating systems, computer networks, and systems programming to a mixture of undergraduate and graduate students. After receiving his Ph.D., he joined Tennessee Tech. University, where he currently serves as a professor in the Department of Computer Science. Sheikh has experience teaching a wide range of classes from fundamental subjects, such as introductory programming and data structures, to advanced courses including computer networks and high-performance computing.

Sheikh Ghafoor has helped to promote and advance education within the Computer Science department at Tennesee Tech. Alongside his colleagues, Bill Eberle, Mike Rogers, Ambareen Siraj, and Doug Talbert, Sheikh helped to launch major revisions to the Master's program in the fall of 2009, with his primary contribution being the development of a parallel and distributed computing concentration. In the spring of 2012, with the additional help of Stephen Scott, Sheikh and his colleagues helped create the Ph.D. in Engineering Computer Science Concentration degree program. Later in the fall of 2015, thanks to the continued collaboration with Mike Rogers and Stephen Scott, Sheikh helped to introduce a new Parallel, Distributed, and High-Performance Computing concentration at the undergraduate level.

Sheikh Ghafoor has helped design various courses to better prepare students for future careers in both industry and research sectors. He has developed parallel programming courses at the graduate and undergraduate levels intended to provide hands-on experience working with parallel programming techniques on various computing architectures. He has also helped to develop a graduate-level course with a more theoretical focus on the design and analysis of parallel and distributed algorithms. Additionally, Sheikh has supervised several students through directed/independent studies in a wide range of topics. The following is a list of courses taught by Sheikh Ghafoor while at Tennessee Tech:

Spring 2022
  • CSC 4760 - Parallel Programming
  • CSC 5760 - Parallel Programming (Graduate Section)
  • CSC 6803 - Directed Independent Study: Parallel Algorithms & Apps in Cyber
  • CSC 6990 - Research & Thesis
  • CSC 7990 - Research and Dissertation
Fall 2021
  • CSC 6803 - Directed Independent Study: Collective Communications in High Performance Computing
  • CSC 6990 - Research & Thesis
  • CSC 7990 - Research and Dissertation
Summer 2021
  • CSC 6990 - Research & Thesis
Spring 2021
  • CSC 6980 - Masters Project
  • CSC 6990 - Research & Thesis
  • CSC 7750 - High Performance Computing
  • CSC 7990 - Research and Dissertation
Fall 2020
  • CSC 2500 - Unix Laboratory
  • CSC 6803 - Directed Independent Study: Elastic Applications at Scale
  • CSC 6980 - Masters Project
  • CSC 6990 - Research & Thesis
  • CSC 7980 - Directed Study: Topics in Embedded System Security
  • CSC 7980 - Directed Study: Wide Area Distributed Computing
  • CSC 7990 - Research and Dissertation
Summer 2020
  • CSC 7990 - Research and Dissertation
Spring 2020
  • CSC 4200 - Computer Networks
  • CSC 5200 - Computer Networks (Graduate Section)
  • CSC 6740 - Parallel and Distributed Algorithms
  • CSC 6990 - Research & Thesis
  • CSC 7980 - Directed Study: High Performance Message Passing at Scale
  • CSC 7980 - Directed Study: Wide Area Distributed Computing
  • CSC 7990 - Research and Dissertation
Fall 2019
  • CSC 4760 - Parallel Programming
  • CSC 5760 - Parallel Programming (Graduate Section)
  • CSC 6903 - Advanced Topics: High Performance Computing using Accelerators
  • CSC 6803 - Directed Independent Study: High Performance Computing for Earth Science Modeling
  • CSC 6910 - Computer Science Seminar
  • CSC 6980 - The Graduate Project: Internet of Things Security
  • CSC 6990 - Research & Thesis
  • CSC 7980 - Directed Study: Performance Portability Issues in High Performance Computing
  • CSC 7990 - Research and Dissertation
Summer 2019
  • CSC 6801 - Directed Independent Study: Security in Cyber Physical Systems
  • CSC 6990 - Research & Thesis
Spring 2019
  • CSC 3040 - Professionalism, Communication and Research in Computing
  • CSC 6740 - Parallel and Distributed Algorithms
  • CSC 6990 - Research & Thesis
  • CSC 7990 - Research and Dissertation
Fall 2018
  • CSC 4040 - Undergraduate Computing Research Experience
  • CSC 4200 - Computer Networks
  • CSC 5200 - Computer Networks (Graduate Section)
  • CSC 6801 - Directed Independent Study: Security in Cyber Physical Systems
  • CSC 6903 - Advanced Topics: High Performance Computing using Accelerators
  • CSC 6910 - Computer Science Seminar
  • CSC 6990 - Research & Thesis
  • CSC 7990 - Research and Dissertation
Spring 2018
  • CSC 4100 - Operating Systems
  • CSC 5100 - Operating Systems (Graduate Section)
  • CSC 6740 - Parallel and Distributed Algorithms
  • CSC 6980 - The Graduate Project
  • CSC 6990 - Research & Thesis
  • CSC 7990 - Research and Dissertation
Fall 2017
  • CSC 1200 - Principles of Computing
  • CSC 6740 - Parallel and Distributed Algorithms
  • CSC 6803 - Directed Independent Study: Geoscience Data Processing
  • CSC 6803 - Directed Independent Study: Security Issues of In-Vehicle Networks
  • CSC 6803 - Directed Independent Study: Performance Analysis of Dense Matrix Algebra
  • CSC 6990 - Research & Thesis
  • CSC 7990 - Research and Dissertation
Spring 2017
  • CSC 4200 - Computer Networks
  • CSC 5200 - Computer Networks (Graduate Section)
  • CSC 6740 - Parallel and Distributed Algorithms
  • CSC 6803 - Directed Independent Study: Geoscience Data Processing
  • CSC 6990 - Research & Thesis
  • CSC 7990 - Research and Dissertation
Fall 2016
  • CSC 4760 - Parallel Programming
  • CSC 4903 - Special Topics: Reverse Engineering
  • CSC 5760 - Parallel Programming (Graduate Section)
  • CSC 6903 - Advanced Topics: Advanced Reverse Engineering
  • CSC 6990 - Research & Thesis
  • CSC 7990 - Research and Dissertation
Summer 2016
  • CSC 6903 - Advanced Topics: Reverse Engineering
Spring 2016
  • CSC 2100 - Introduction to Problem Solving and Computer Programming
  • CSC 2101 - Problem Solving and Computer Programming Lab
  • CSC 4200 - Computer Networks
  • CSC 5200 - Computer Networks (Graduate Section)
  • CSC 6903 - Advanced Topics: Selected Topics in Malware
  • CSC 6990 - Research & Thesis
  • CSC 7970 - Selected Topics in Malware
  • CSC 7990 - Research and Dissertation
Fall 2015
  • CSC 4760 - Parallel Programming
  • CSC 5760 - Parallel Programming (Graduate Section)
  • CSC 6910 - Computer Science Seminar
  • CSC 6990 - Research & Thesis
  • CSC 7730 - Autonomic Computing
Summer 2015
  • CSC 4990 - Computer Science Internship
  • CSC 6990 - Research & Thesis
Spring 2014
  • CSC 2500 - Unix Laboratory
  • CSC 4200 - Computer Networks
  • CSC 4902 - Special Topics: Malware Analysis in Virtual Environment
  • CSC 4990 - Computer Science Internship
  • CSC 5200 - Computer Networks (Graduate Section)
  • CSC 7990 - Research and Dissertation
Fall 2014
  • CSC 2500 - Unix Laboratory
  • CSC 4760 - Parallel Programming
  • CSC 4990 - Computer Science Internship
  • CSC 6750 - Parallel Programming
  • CSC 6800 - Advanced Topics: Compilers for Accelator Based Heterogeneous Systems
  • CSC 6910 - Computer Science Seminar
  • CSC 6980 - The Graduate Project
  • CSC 7990 - Research and Dissertation
Summer 2014
  • CSC 4903 - Special Topics: Data Processing for Earth Science
  • CSC 4990 - Computer Science Internship
Spring 2014
  • CSC 2500 - Unix Laboratory
  • CSC 4200 - Computer Networks
  • CSC 4990 - Computer Science Internship
  • CSC 5200 - Computer Networks (Graduate Section)
  • CSC 6800 - Advanced Topics: System and Resource Management in Cloud Computing
  • CSC 7990 - Research and Dissertation
Fall 2013
  • CSC 2500 - Unix Laboratory
  • CSC 4760 - Parallel Programming
  • CSC 6750 - Parallel Programming
  • CSC 6910 - Computer Science Seminar
Spring 2013
  • CSC 2100 - Introduction to Problem Solving and Computer Programming
  • CSC 2101 - Problem Solving and Computer Programming Lab
  • CSC 4200 - Computer Networks
  • CSC 5200 - Computer Networks (Graduate Section)
  • CSC 6980 - The Graduate Project
  • CSC 6990 - Research & Thesis
Fall 2012
  • CSC 2100 - Introduction to Problem Solving and Computer Programming
  • CSC 2101 - Problem Solving and Computer Programming Lab
  • CSC 6990 - Research & Thesis
  • CSC 7730 - Autonomic Computing
Spring 2012
  • CSC 2100 - Introduction to Problem Solving and Computer Programming
  • CSC 2101 - Problem Solving and Computer Programming Lab
  • CSC 4200 - Computer Networks
  • CSC 5200 - Computer Networks (Graduate Section)
Fall 2011
  • CSC 2100 - Introduction to Problem Solving and Computer Programming
  • CSC 2101 - Problem Solving and Computer Programming Lab
  • CSC 6990 - Research & Thesis
Spring 2011
  • CSC 2100 - Introduction to Problem Solving and Computer Programming
  • CSC 4200 - Computer Networks
  • CSC 5200 - Computer Networks (Graduate Section)
Fall 2010
  • CSC 2100 - Introduction to Problem Solving and Computer Programming
  • CSC 2110 - Data Structures and Algorithms
  • CSC 6750 - Parallel Programming
  • CSC 6990 - Research & Thesis
Summer 2010
  • CSC 6990 - Research & Thesis
Spring 2010
  • CSC 2110 - Data Structures and Algorithms
  • CSC 4200 - Computer Networks
  • CSC 5200 - Computer Networks (Graduate Section)
  • CSC 6800 - Advanced Topics: Selected Topics in Grid Computing
Fall 2009
  • CSC 2110 - Data Structures and Algorithms
  • CSC 6750 - Parallel Programming
Fall 2008
  • CSC 2100 - Introduction to Problem Solving and Computer Programming
  • CSC 2111 - Data Structures and Algorithms Lab
  • CSC 6750 - Parallel Programming