Fall 2017, CS3375 Computer Architecture Lecture Location: Mathematics 017 Lecture Time:Tue. and Thur., 9:30 a.m. – 10:50 a.m Office Hours: Tue. and Thur., 11 a.m. – 12 p.m., or by appointment Course Description: Introduction to the functional components of computer systems; their hardware implementation and management at different levels; their interaction, characteristics, and performance as well as their practical implications for computer programming. Topics include: 1) address fundamental concepts and abstractions in computer architecture; 2) review typical performance evaluation techniques, data representations and basic computer arithmetic; 3) study of pipelined processors and issues related to instruction level parallelism (ILP); 4) examine memory hierarchical organizations, cache and virtual memory implementations; 5) I/O techniques; and 6) introduce basics on multiprocessor systems and parallelism.
Spring 2017, CS5352 Advanced Operating Systems Design Lecture Location: ENGCTR 205 Lecture Time:Tue. and Thur., 8 a.m. – 9:20 a.m Office Hours: Tue. and Thur., 9:30 a.m. – 11 a.m., or by appointment Course Description: Computer systems are undergoing a revolution. The developments of powerful microprocessors and high-speed computer networks have extended the traditional computer systems to wide-area distributed systems. The technology revolution has extended the traditional operating system roles and functionalities to an advanced and distributed manner as well. This course introduces the concepts, principles, and designs of advanced and distributed systems. Students are expected to learn the principles and gain hands-on experience on the state-of-the-art computing paradigm. The class discussions will cover architectures, communication, synchronization, fault tolerance, security, distributed file systems, as well as open research discussions in distributed and advanced operating systems. This course will consist of class lectures, assignments, programming projects, one research-oriented course project (with a written report and an oral presentation deliverables), and exams.
Fall 2016, CS4352 Operating Systems Lecture Location: ENGCTR 204 Lecture Time:Tue. and Thur., 11 a.m. – 12:20 p.m Office Hours: Tue. and Thur., 10 a.m. – 11 a.m., or by appointment Course Description: Operating system is a core software component of a computer system and manages various resources of a computer, such as processors, main memory, disks, displays, network interfaces, and various input/output devices. We will cover topics including process management, scheduling and resource management, file systems, I/O, and security issues. This course will consist of class lectures, written assignments, programming assignments, and exams.
Spring 2016, CS5352 Advanced Operating Systems Design Lecture Location: ENGCTR 205 Lecture Time: Monday, Wed., Friday, 9 a.m. – 9:50 a.m. Office Hours: Wed. and Friday, 10:00 a.m. – 11:00 a.m., or by appointment Course Description: Computer systems are undergoing a revolution. The developments of powerful microprocessors and high-speed computer networks have extended the traditional computer systems to wide-area distributed systems. The technology revolution has extended the traditional operating system roles and functionalities to an advanced and distributed manner as well. This course introduces the concepts, principles, and designs of advanced and distributed systems. Students are expected to learn the principles and gain hands-on experience on the state-of-the-art computing paradigm. The class discussions will cover architectures, communication, synchronization, fault tolerance, security, distributed file systems, as well as open research discussions in distributed and advanced operating systems. This course will consist of class lectures, assignments, programming projects, one research-oriented course project (with a written report and an oral presentation deliverables), and exams.
Fall 2015, CS4352 Operating Systems Lecture Location: ENGCTR 205 Lecture Time: Tuesdays and Thursdays, 8 a.m. – 9:20 a.m Office Hours: Tuesdays and Thursdays, 9:30 a.m. – 10:30 a.m., or by appointment Course Description: Operating system is a core software component of a computer system and manages various resources of a computer, such as processors, main memory, disks, displays, network interfaces, and various input/output devices. We will cover topics including process management, scheduling and resource management, file systems, I/O, and security issues. This course will consist of class lectures, written assignments, programming assignments, and exams.
Spring 2015, CS4379 Parallel and Concurrent Programming Lecture Time: Tuesdays and Thursdays, 11:00 a.m. – 12:20 p.m Lecture Location: ENGCTR 204 Office Hours: Tuesdays and Thursdays, 10:00 a.m. – 11:00 a.m., or by appointment Course Description: The advent of multicore processors has completely changed the landscape of computing. The serial computing era when programmers could transparently and automatically take advantage of the microprocessors’ performance improvement that follows the Moore’s law has gone. Instead, parallel computing has now become universal, from the multicore computing on chip to the large-scale cluster computing, Grid computing, and Cloud computing. This course introduces the principles of parallel computing and covers parallel and concurrent programming. This course will consist of class lectures, written assignments, programming projects, quizzes, and final exam.
Fall 2014, CS4331-001/CS5331-001/CS5331-D01(Distance) Special Problems in CS: Big Data Infrastructure and Data Management Lecture Time: Tuesdays and Thursdays, 2:00 p.m. – 3:20 p.m Lecture Location: ENGCTR 110 Office Hours: Tuesdays and Thursdays, 1:00 p.m. – 2:00 p.m., or by appointment Course Description: Big data computing paradigm has emerged in recent years. It is transforming science, engineering, medicine, healthcare, finance, business, and many other domains. This course discusses the essential component of big data computing paradigm, big data infrastructure and data management. This course is for graduate level students and senior undergraduate students in the fields of computer science and computer engineering who have strong interests in big data computing paradigm. This course is designed as a research-oriented and seminar style class, with invited guest lectures, students’ presentations, and early research experiences. The course will consist of class lectures, discussions of systems and research papers, assignments and one major research-oriented course project (the deliverable includes a written report, software prototyped/experienced, and an oral presentation).
Spring 2014, CS4379 Parallel and Concurrent Programming CS5379 Parallel Processing Lecture Time: Tuesdays and Thursdays, 11:00 a.m. – 12:20 p.m Lecture Location: ENGCTR 205 Office Hours: Tuesdays and Thursdays, 10:00 a.m. – 11:00 a.m., or by appointment Course Description: The advent of multicore processors has completely changed the landscape of computing. The serial computing era when programmers could transparently and automatically take advantage of the microprocessors’ performance improvement that follows the Moore’s law has gone. Instead, parallel computing has now become universal, from the multicore computing on chip to the large-scale cluster computing, Grid computing, and Cloud computing. This course introduces the principles of parallel computing and covers parallel and concurrent programming. This course will consist of class lectures, written assignments, programming projects, quizzes, a course project (including both a written report and an oral presentation, optional to CS4379 students), and final exam.
Fall 2013, CS4352 Operating Systems Lecture Location: ENGCTR 205 Lecture Time: Tuesdays and Thursdays, 12:30 p.m. – 1:50 p.m, Aug. 26th-Dec. 4th Office Hours: Tuesdays and Thursdays, 2 p.m. – 3 p.m., or by appointment Course Description: Operating system is a core software component of a computer system and manages various resources of a computer, such as processors, main memory, disks, displays, network interfaces, and various input/output devices. This course will introduce concepts and designs of different components of operating systems. We will cover topics including process management, scheduling and resource management, file systems, I/O, and security issues. This course will consist of class lectures, written assignments, programming assignments, and exams.
Spring 2013, CS4352 Operating Systems Lecture Location: ENGCTR 204 Lecture Time: Tuesdays and Thursdays, 12:30 p.m. – 1:50 p.m, Jan. 16th–May 7th Office Hours: Tuesdays and Thursdays, 2 p.m. – 3 p.m., or by appointment Course Description: Operating system is a core software component of a computer system and manages various resources of a computer, such as processors, main memory, disks, displays, network interfaces, and various input/output devices. This course will introduce concepts and designs of different components of operating systems. We will cover topics including process management, scheduling and resource management, file systems, I/O, and security issues. This course will consist of class lectures, written assignments, programming assignments, and exams.
Fall 2012, CS5352 Advanced Operating Systems Design Lecture Location: ENGCTR 110 Lecture Time: Tuesday and Thursday, 11:00 a.m. – 12:20 p.m., Aug. 27th - Dec. 12th, 2012 Office Hours: Tuesday and Thursday, 10:00 a.m. – 11:00 a.m., or by appointment Course Description: Computer systems are undergoing a revolution. The developments of powerful microprocessors and high-speed computer networks have extended the traditional computer systems to wide-area distributed systems. The technology revolution has extended the traditional operating system roles and functionalities to an advanced and distributed manner as well. This course introduces the concepts, principles, and designs of advanced and distributed systems. Students are expected to learn the principles and gain hands-on experience on the state-of-the-art computing paradigm. The class discussions will cover architectures, communication, synchronization, fault tolerance, security, distributed file systems, as well as open research discussions in distributed and advanced operating systems. This course will consist of class lectures, assignments, programming projects, one research-oriented course project (with a written report and an oral presentation deliverables), and exams.
Summer I 2012, CS4331/MATH4000 Special Topics: High Performance Computing Lecture Location: ENGCTR 201 Lecture Time: Monday, Tuesday, Wednesday, Thursday, and Friday, 10:00 a.m. – 11:50 a.m., June 5th - July 3rd, 2012 Office Hours: Monday, Wednesday, and Friday: 9 a.m. – 10 a.m., or by appointment Course Description: High performance computing (HPC) technologies have been widely used in scientific discovery and innovations, such as climate modeling and weather forecasting, molecular dynamics simulation, high-energy physics, computational biology, and geographical information systems. This course introduces the principles, systems, programming, and applications of high performance computing. Students are expected to learn the principles and gain hands-on experience in high performance computing. This course will also train students to be ready to compete in the well-known Student Cluster Competition at the International Conference for High Performance Computing, Networking, Storage and Analysis (a.k.a Supercomputing conference) and introduce students to the high performance computing community. ACKNOWLEDGMENT: The preparation of this course is partially sponsored by the National Science Foundation and IEEE Computer Society Technical Committee on Parallel Processing via the NSF-TCPP Early Adopter Status Award made to the Texas Tech University.
Spring 2012, CS5331-001: Special Problems: Data Intensive Computing. Lecture Time: Monday, Wednesday, and Friday, 10:00 a.m. – 10:50 a.m. Lecture Location: ENGCTR 205 Office Hours: Wednesday and Friday: 11 a.m. – 12 p.m., or by appointment Course Description: Many high-performance scientific computing and high-end enterprise computing applications, such as climate modeling and weather forecasting, geographical information systems, medical image processing, web search, data mining, computer animation, and social networks managing millions of photos online, become highly data intensive than ever before. A new data intensive computing paradigm is emerging and plays a critical role in scientific discovery and innovations that change our daily lives. This course introduces the principles, designs and systems of data intensive computing paradigm. It is for graduate level students in the fields of computer science and computer engineering. This course will consist of class lectures, discussions of research papers, assignments and one major course project (including both a written report and an oral presentation). Students are expected to learn the principles and gain hands-on experience on the state-of-the-art data intensive computing paradigm.
Fall 2011, CS5379-001/D01: Parallel Processing. Lecture Time: Monday, Wednesday, and Friday, 9:00 a.m. – 9:50 a.m. Lecture Location: ENGCTR 110 Office Hours: Wednesday: 1 p.m. – 2 p.m., Friday: 10 a.m. – 11 a.m., or by appointment Course Description: The advent of multicore processors has completely changed the landscape of computing. The serial computing era when programmers could transparently and automatically take advantage of the microprocessors’ performance improvement that follows the Moore’s law has gone. Instead, parallel processing has now become universal, from the multicore computing on chip to the large-scale cluster computing, Grid computing and Cloud computing. This course introduces the principles of parallel computing and covers general issues in parallel processing, which include systems, architectures, programming, performance evaluation, and applications. This course will consist of class lectures, written and programming assignments, quizzes, one major course project (including both a written report and an oral presentation), and final exam.
Spring 2011, CS5331-001/D01 Special Problems: Parallel I/O and Storage Architectures. Lecture Time: Tuesday and Thursday, 11:00 a.m. – 12:20 p.m. Lecture Location: ENGCTR 205 Office Hours: Tuesday and Thursday, 1:30 p.m. – 2:30 p.m. Course Description: As modern multicore/manycore architectures put ever more pressure on the sluggish storage systems and many applications become more and more data intensive, parallel I/O and storage architectures are critical to advancing modern science in high-end/high-performance computing. This course introduces the principles, designs and systems of parallel I/O and storage architectures in high-performance scientific computing and high-end enterprise computing. This course covers both hardware and software stacks and contains the subjects on the overview of parallel computing/distributed computing/high-performance computing/Grid computing/Cloud computing, storage devices, parallel and distributed file systems, parallel I/O middleware, high-level parallel I/O libraries and data management. This course will consist of class lectures, discussions of research papers, programming assignments and one major course project (including both a written report and an oral presentation).
Fall 2006: I was awarded the Outstanding Teaching Assistant of the Computer Science Department at the Illinois Institute of Technology.
Fall 2004 - Fall 2006, Department of Computer Science, Illinois Institute of Technology
Spring 2001 - Fall 2002, Department of Computer Science, Univ. of Sci. and Tech. of China