CMPS290T - Applied Machine Learning for Social Good


Evolution of technology over time has reflected its impact directly on numerous aspects of the society. The first wave of personal computers helped countries throughout the world digitalize their processes and data, adding transparency and strength to the democracies. The era of internet then drastically increased the speed of knowledge transfer in the world. And the smartphone revolution gave the world an incredibly wide range of tools to solve almost any problem.

The current wave of Artificial Intelligence and Machine Learning has already started showing its impact on the world with language translation, object recognition, autonomous vehicles, and many more. A large fraction of these methods can also be applied to problems observed in the society. For instance, machine translation can help speed up access of information to remote locations limited by their english-speaking abilities. Similarly intelligent systems for information retrieval can help search public policy documents and help citizens moderate and strengthen the governance of their country.

The course looks at this particular applied aspect of machine learning where we will observe real social problems, analyze them and identify sub-tasks that can benefit from machine learning, search and prepare relevant data, formulate the learning problem, identify and build solutions, and build the required layers to deliver such solutions. We will learn these stages through examples and live implementation covered in the class, readings from machine learning and from social good, followed by projects targeted at different social problems.

General Information


  • Graduate students (exceptions possible by permission codes)
  • Pre-requisites
    • Strong programming background
    • Knowledge of Python programming language
    • Some knowledge of machine learning fundamentals and basics is preferred
  • Development Environment
    • Laptop/ Desktop
    • Python environment (preferably using Anaconda)
    • Scientific (Numpy, Scipy, Matplotlib, Pandas) and ML (PyTorch, Tensorflow, Scikit-learn, Gensim) libraries
    • Colab notebooks


  • Readings
  • Assignments (Coding, Analysis)
  • Class participation
  • Project


Students with Disabilities

UC Santa Cruz is committed to creating an academic environment that supports its diverse student body. If you are a student with a disability who requires accommodations to achieve equal access in this course, please submit your Accommodation Authorization Letter from the Disability Resource Center (DRC) to me privately during my office hours or by appointment, preferably within the first two weeks of the quarter. At this time, I would also like us to discuss ways we can ensure your full participation in the course. I encourage all students who may benefit from learning more about DRC services to contact DRC by phone at 831-459-2089 or by email at