Courses taught by Prof. Prasad

Back to Prof. Prasad's website

CS 106: Introduction to Computer Science

Why CS 106? Ever wonder how face recognition works? Do you wish you knew how to crack passwords? Can you imagine being able to develop the next Whatsapp (sold to Facebook for $19 billion)? Then, you are in the right place!!


Introduction to Computer Science introduces programming to majors and non-majors alike, with or without prior programming experience. This entry level class teaches you how to think algorithmically and solve problems efficiently. Problems are inspired by real-world domains of computer systems, artificial intelligence, biology, cryptography, games, and movies.
Students will also have the opportunity to present topics that they are interested in related to computer science - presentations can be demos of code they have implemented, summary of code written by others that they have reviewed, a design document of code they plan to implement in the future or a summary of blogs or articles they have read.

Tentative Schedule for Fall 2022

CS 318: Computer Organization

Why Computer Organization? Do you wish you knew how to make your programs faster and more efficient? Ever wonder how a program runs, instructions are executed and how data is stored in the computer, then this is the class for you!


This course provides an introduction to multilevel machines, including basic components of a computer, digital circuits, Boolean algebra, microprogramming, machine and assembly languages, and operating systems.



The pre-requisite of this class is Software Design CS 226 (or CS 206).


Tentative Schedule for Spring 2023

CS 327: Computer Networks

Why Computer Networks? Ever wonder how the Internet works? Do you wish you knew why your browser was taking time to load? Can you imagine being able to develop the next Netflix? Then you are in the right place!


This course will cover the fundamental concepts in computer networks, i.e., you will learn how the Internet works. During our course sessions, you will explore real data as it passes through the network and learn how it is interpreted and forwarded from the source machine (your desktop) to the destination machine (for example, the Google server). In the semester-long programming assignments, you will build a simple client-server messaging application that works your own mini Internet called SkidNet, all implemented in the Java programming language. You will also have the opportunity to discuss topics of interest related to computer networks - these could include a pre-recorded audio or video podcast or a live discussion in class about topics including, but not limited to: topics covered in class, the latest cybersecurity attack, a new Internet application, or a product developed by or paper authored by LGBTQ+ and BIPOC computer scientists.

The pre-requisite of this class is Computer Organization CS 318.


Tentative Schedule for Spring 2023

CS 328: Mobile Computing

Why Mobile Computing? Ever wonder how apps on smartphones work? Do you wish you knew how your app was able to notify you of places of interest based on your location? Can you imagine being able to develop the next Pokemon Go? Then you are in the right place!


An introduction to the design, implementation, and publishing of mobile applications. Students will learn how to take their innovative ideas from conception to a mobile application through a series of rigorous hands-on programming assignments and group projects. Topics include OOP, event-driven programming, mobile device architecture, connecting to web services and storage, sensors, privacy and security, usability, accessibility, wireless and mobile networks, and latest mobile technologies including but not limited to wearables, IoT, self-driving vehicles, AR/VR.

The pre-requisite of this class is Software Design CS 226 and Data Structures CS 209.