The introductory module provides students with the necessary concepts to get started with computer science. Fundamental topics like bits, bytes, data types, memory, communication, control flow, variables, and values are introduced and explained with examples. This module includes a variety of turtle practice exercises to reinforce the concepts learned throughout the module.
Values:
This module is designed to provide students with the skills and knowledge necessary to develop Roblox games with the help of the Lua Programming Language. During this process, students learn how to do 3D modeling and scene graph designing, writing, testing, and debugging simple Lua scripts. At the end of the module, students will be ready to share, demonstrate, and play the games they designed.
This module teaches data structures and algorithms that are relevant for solving real world problems with programming and computers. Students will be able to identify appropriate algorithms given a problem and a scenario and write software to solve it. With the instilled problem solving skills, students will be ready to take coding interview challenges.
This module on Software Construction covers a wide range of topics related to software construction, systems, and data processing. It covers a variety of fundamental topics including data representations, the compilation process, memory hierarchies, instruction sets, file systems, ssh, processes, threads, logging, virtualization, bash, git, and data visualization.
Although the world wide web was invented for sharing files and documents, as of late it is being used for hosting interactive web-browser-based, machine-agnostic applications and we no longer need to download and run executables. This module teaches the technologies that enable us to develop such web applications. It also provides hands-on experience in creating basic web apps.
Since the Web is a network of connected computers, this module first teaches how computers can communicate with each other. It builds upon Module 5 to teach more advanced technologies needed to develop web applications that require storage. It also provides hands-on experience in creating sophisticated, secure web apps and deploying them for the world to use.
The module teaches the technology related to building modern computers. It focuses on the interface between software and hardware. It also introduces operating system (OS) concepts and how an OS provides an efficient interface for user application programs to access hardware resources.
The module builds upon the concepts learned in Module 7. It teaches Operating System virtualization with industry standard tools like docker and Kubernetes. It covers cloud computing concepts with hands-on experience with AWS. It also focuses on building a computer from parts.
Applications of machine learning have started shaping the current computation infused economy, and our daily routines. This module prepares students for a deeper understanding of advanced ML. It introduces the motivation behind ML. It teaches the basic mathematics required to understand ML algorithms. It also provides hands-on programming experience with ML-related tools in the Python ecosystem.
This module builds on Module 9 to teach practical ML techniques that can be applied to real world datasets in multiple domains. The module covers a range of topics from linear classification and perceptrons to decision trees and random forests. It teaches the students to correctly apply ML, interpret results and refine the models. The highlight of the module is a real-world classification project on tabular data that allows students to apply the concepts they have learned in a practical setting.
This module introduces computer vision and deep learning, covering a variety of essential topics to provide students with the knowledge and practical skills needed to succeed in this exciting field. Students will learn about the history of computer vision and image formation, as well as practical skills like edge detection, image features, SIFT, image matching, and image segmentation. The course also introduces linear programming, tensors, and GPUs, before delving into the essential concepts of perceptrons and neural networks. The module also introduces PyTorch and covers the essential steps for preparing datasets, building, training, testing, and validating models. The highlight of the module is a practical image classification project using PyTorch, which lays a strong foundation in both theory and practical applications.
Robotics is a field of immense importance in the 21st century. This module is designed to provide students with a comprehensive understanding of the fundamentals of robotics. Students will learn to apply concepts such as voltage, current, and power throughout the module. They will also gain practical skills through the design, planning, and construction of an autonomous robot. Additionally, students will learn to interpret sensor data using signal processing techniques and gain a thorough understanding of the different components and assembly steps required for building a robot. The module covers various SoC (System on Chip) options and the selection of electrical motors used in robotics. Students will learn to use a camera for control, practice debugging techniques, and set up a line following an autonomous robot.