Syllabus
CSE 30: Programming Abstractions in Python
Course Information. CSE 30 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.
Thankyou 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 Canvas, attend
discussion sections, or contact the teaching assistants or instructor.
The class schedule can be found here: Class Schedule. All recorded lectures can be found in the Assignments folder under the name Video Lectures or YuJa. All other class material can be found in the Canvas Files folders.
Outcomes. CSE30 Programming Abstractions in Python is a class where you will continue learning the programming language Python and be introduced to new concepts in programming including Abstract Data Types (Stack, Queues, Trees, Graphs), Algorithm Analysis and Approaches (Greedy
Algorithms, Dynamic Programming), and Programming Paradigms (Functional and Event-Driven Programming) .
CourseWork. This course is a programming course. You will have five programming assignments, ten lab assignments, four quizzes, and the final exam. The final grade will be calculated according to the following schema :
Programming Assignments 20
Lab Assignments 30
Quizzes 30
Final 15
Class Participation 5
Participation includes participation in lectures, discussion sections, and Canvas posting.
Please note that you will receive points for attending lectures and discussion sections (three lectures and one discussion section a week). Discussion sections have been scheduled to accommodate students having different schedules.
If you cannot attend a lecture, you can watch a corresponding lecture video in the Assignment folder under the name Video Lectures or on YuJa. You have to submit the assignment to get credit for the lecture attendance (if you attend the lecture, you still need to submit the assignment, but you do not have to watch the video).
Assessments and Grades. You can calculate your own grade. All assignments have points, and you can obtain 1000 points in total (without extra credit). Letter grades are assigned according to the following schema:
Letter Grade Points
A+ 975
A 925
A- 900
B+ 875
B 825
B- 800
C+ 775
C 725
C- 700
D+ 675
D 625
D- 600
F 0