Welcome to Programming Abstractions in Python!

This class is the continuation of CSE20 class Beginning Programming in Python, where you have been introduced to the Python programming language and learned how to use standard Python library modules such as random, math, regular expressions, datetime, turtle graphics, tkinter, or others. 

In this class, you will continue to learn Python modules from standard and external libraries including NumPy, Matplotlib, Tkinter, OpenCV, SciPy, TensorFlow, PyGame, and others. You will be introduced to more advanced concepts in programming such as Abstract Data Types (ADT) and Data Structures (Stacks, Queues, Priority Queues, Trees, Graphs, and Hash Tables), programming approaches for Searching, Sorting, and Optimizing, as well as Recursions, Threading, Event-Driven Programming, Functional Programming, Linear Programming, and Dynamic Programming. We will cover some advanced topics in programming including AI, Machine Learning, Computational Complexity, and Satisfiability (SAT). 

Please, check the class Syllabus page for more information on the class policies, grading, DRC services, and the instructor's, teaching assistants' and tutors' contacts. We will be using online facilities for lectures, office hours, discussion and tutoring sections. They all will be held on UCSC Zoom.  (Links to an external site.)

Thank you for joining the class! I hope you will have a wonderful coding adventure with us! Good luck!

Important Information

Quizzes, labs, and programming assignments will be submitted on Canvas. If you encounter problems, let us know: post your question on Ed or Canvas, attend discussion sections, or contact the teaching assistants or instructor.

The class schedule can be found here: Class Schedule.pdf. All zoom lectures can be found in the Assignments folder under the name Video Lectures. All other class material can be found in the Canvas Files folders.