Welcome to **Term I** of the **Primer CS Degree** program.

In the Ist term, we will be focussing mostly on Mathematical Courses. The effort will be to make programmer-friendly courses by using programming ( Python and Haskell ) to solve mathematical problems.

*Below are the courses that are slated to be released and their tentative release schedule. *

## December 2021

**Python Regular Expressions**

Covers the fundamentals of working with Regular Expressions and how to use them in Python effectively.**Python II-IV**

Covers Object-Oriented Programming, Advanced Python Programming Concepts, and Design Patterns.**Data Structures and Algorithms**

An overview of commonly and less commonly used data structures and algorithms as well as how to implement them using Python

## January 2022

**Short Sweet Haskell**

A short course designed to give learners a quick intro to Haskell. This course is a necessary prerequisite for learning Discrete Mathematics.**Functional Data Structures**

An overview of Data Structures implemented in a purely functional language such as Haskell. This course is based on the book Purely Functional Data Structures By Chris Okasaki**Discrete Mathematics**

Covers Discrete Mathematical Structures. We will be using Haskell as an aid to learning Discrete Mathematics. This course is based on the book Discrete Mathematics and Functional Programming by Thomas VanDrunen.

## February 2022

**Linear Algebra**

Covers concepts such as Vectors, Matrices, Eigenvalues, and Eigenvectors as well as details how they are used in real-world problems. This is course is based on the book Introduction to Linear Algebra, by Gilbert Strang.**Computational Linear Algebra**

In this course, we will take a look at the applications of linear algebra. We will be using Python to implement code to solve interesting real-world problems. This course is based on the Book Coding the Matrix by Philip N. Klein.**Calculus**

A set of courses covering**Single Variable Calculus**and**Multi-Variable Calculus**with a focus on applications.

## March 2022

**Probability & Statistics**

It covers basic concepts of statistics and the logic of statistical reasoning.**Bayesian Statistics**

Covers drawbacks of frequentist statistics and introduces the field of Bayesian statistics and interference.**Numerical Methods**

Introduces numerical method and numerical analysis. We will be using Python to solve numerical methods problems.**Convex Optimization**

Covers recognizing and solving convex optimization problems. This course is based on the book Convex Optimization by Stephen