Teaching
Current and Previous Courses Taught at NCSU
- CSC 111 Introduction to Computing: Python
CSC 111 is a mandatory course for students majoring in Civil, Construction, and Environmental Engineering at NCSU. However, students from other majors may also take the course, with priority given to those whose curriculum includes CSC 111 as one of their options, such as Statistics majors. The course serves as an introduction to computational problem-solving using Python. The course places emphasis on meticulous development of Python programs based on specifications, proper programming style, accurate documentation, and appropriate utilization of control structures and data types. The students will be given ample practice in writing Python programs in engineering applications. Typical enrollment is 180 students in the Fall and 100 students in the Spring.
[Fall 2020, Spring 2021, Fall 2021, Spring 2022, Fall 2022, Spring 2023, Fall 2023, Spring 2024, Fall 2024] - CSC 246 Concepts and Facilities of Operating Systems for Computer Scientists
CSC 246 is a mandatory course for Computer Science majors at NCSU aimed at providing an in-depth understanding of the design and operation of operating systems along with the range of services they offer. Through this course, students will gain insight into the execution environment that their programs operate in and learn how to utilize the underlying hardware effectively. The course covers several topics, including Processes and Threads, CPU Scheduling, Synchronization, Memory Management, GPU Programming, Networking and Distributed Systems, File Systems, as well as Protection and Security. Typical enrollment is between 200-300 students in either the Fall or Spring semester.
[Spring 2021, Fall 2021, Spring 2022, Fall 2022, Spring 2023, Fall 2023, Spring 2024, Fall 2024] - E 115 Introduction to Computing Environments
E 115 is a mandatory introductory course for all incoming College of Engineering students at NCSU. This hybrid format course equips students with essential skills and knowledge required to effectively use the computing and technology resources available in the College of Engineering. The course covers topics such as accessing and using campus-based computing resources and applications like campus clusters in Linux and Google tools. Students will also learn about ethics, professionalism in the use of computing resources, and get an introduction to web development and other campus resources. Typical enrollment is 700-800 students per section in the Fall and 400-600 students per section in the Spring. For further information, please refer to this link.
[Fall 2020, Spring 2021, Fall 2021, Spring 2022, Fall 2022, Spring 2023, Fall 2023, Spring 2024]
Previous Courses Taught at W&M
- CSCI 141 Computational Problem Solving
- CSCI 241 Data Structures
- CSCI 243 Discrete Structures of CSCI
CSCI 141 is an introductory programming course in Python designed for both computer science majors and non-majors at W&M. The course aims to cover fundamental topics such as expressions, functions, conditionals, and loops, as well as object-oriented programming using classes. In addition, students will learn about built-in data structures in Python, including lists, tuples, and dictionaries, as well as how to develop graphics applications using PyQt5. By the end of this course, students will have acquired a solid foundation in Python programming, allowing them to pursue more advanced topics in computer science.
[Spring 2018, Spring 2019, Fall 2019, Spring 2020]
CSCI 241 is a required course for computer science majors at W&M that builds upon fundamental concepts introduced in previous coursework. The course aims to provide a deeper understanding of data abstraction, data structures, and data representation. Topics covered in the course include arrays, linked lists, stacks, queues, trees, balanced trees, priority queues, hashing, and their respective applications. By the end of this course, students will have a solid foundation in data structures and their use in solving complex computing problems.
[Fall 2016, Spring 2017, Fall 2017]
CSCI 243 is a computer science course designed for W&M majors that focuses on introducing the theoretical foundations of the discipline. The course covers a wide range of topics, including logic, proof methods, sets, functions, sequences, algorithm complexity, induction, recursion, discrete probability, trees, and graphs. By exploring these fundamental concepts, students will gain a deeper understanding of the principles underlying computer science and be better equipped to tackle complex computing problems.
[Fall 2015, Spring 2016, Summer 2016, Fall 2016, Spring 2017, Fall 2017, Spring 2018]