Special Topics Classes
Learn about the Special Topics Classes offered at YWCC
All classes available for Spring 2024
Recent advances in predictive analytics (machine learning, AI, big data, etc.) are made possible by relentless increase in computing capabilities in the last two decades. At the center of these extensive computing capabilities lies a cluster of computers each of which is equipped with one to many GPUs. While computing capabilities have dramatically increased, programmability to take advantage of such capabilities has not. This course offers students how to program a cluster of machines with GPUs. Specifically, Message Passing Interface, the parallel computing standard, is used to manage/program computing tasks across the cluster of machines while Cuda is used to program individual GPUs. The course will be run as project-oriented, where students will pick a semester-long project with the approval of an instructor. Students are required to have access to a machine with an Nvidia GPU that has a certain compute capability. To build a cluster of machines at least two up to four students will form a group. At the end of the semester, students will demonstrate that their application works on a cluster of two to many machines each of which has one or more GPUs. Metrics for measuring performance include improvement in execution time over using one to many machines with and without GPUs. Prerequisites include CS288, CS332, CS350, proficiency in C and Linux. https://web.njit.edu/~sohna/cs485
This course aims to give students a comprehensive understanding of modern IT/software project management principles and methodologies. They will be introduced to various visual agile methods, techniques, and tools, emphasizing the popular SCRUM-Kanban framework. By the end of the course, students will have mastered the utilization of visual project management strategies and their application to the ten most essential PMP project management knowledge areas.
This course adopts a hands-on skill-building approach to allow students to master empirical research principles and techniques from definition to conclusion, emphasizing software engineering hot topics. The adaptive curriculum includes best practices in empirical research, SPSS software, and a detailed walk-through of the entire research process. In this course, students will learn generic empirical research methods and techniques, including preparing for a full-scale empirical paper.
This course introduces concepts, techniques, and algorithms for cyberinfrastructure (CI) enabled machine learning (ML) with applications in space weather (SWx). SWx refers to the transients in the space environment traveling from the Sun to Earth. SWx affects the life of human beings, including communication, transportation, power supplies, national defense, space travel, and more. In the recent decade, tackling the difficult task of understanding and forecasting SWx and its terrestrial impacts has become a strategic national priority. CI is an extremely important part of SWx research, as many terabytes of data are generated daily from diverse sources. This course will (i) provide students with opportunities to gain hands on experience in implementing ML solutions for SWx problems; (ii) expose students to advances in ML-as-a-service (MLaaS), operational near real-time SWx forecasting systems, and predictive intelligence with Binder enabled Zenodo archived open-source ML tools; (iii) introduce students to interpretable ML and explainable artificial intelligence (XAI). The course will prepare students to become CI professionals capable of contributing to SWx monitoring and predictive analytics in general. The prerequisites of the course include: (i) CS 631 Data Management Systems Design, (ii) DS 675 Machine Learning, and (iii) DS 677 Deep Learning.
This course covers how human factors lead to real-world security & privacy failures, how to design systems to avoid these pitfalls, and how to evaluate the usable security properties of systems. Please see the course webpage for more information.
The course will cover foundations of programming languages, based on the textbook “Types and Programming Languages” (vol I) by Benjamin C. Pearce: untyped and typed lambda calculus, a memory model, and building to advanced language constructs such as subtyping, OO, polymorphism, and threads. There will be several assignments using the OCaml language, and a project where students run a (student-chosen) program analysis tool on real-world programs.
A study of trusted computing basics and design decisions. Review on memory management and operating system access control, and an introduction to microkernel, virtualization, and Trusted Execution Environments (TEEs). Learn the different threat models and security guarantees, and how recent trusted computing solutions work to ensure system security.