Welcome to the Python 2 Course repository! This repository contains all the projects, exercises, and assignments I completed during my Python 2 class, showcasing my journey and growth in understanding advanced Python programming.
The repository is organized by lessons, projects, and exercises, covering advanced Python programming concepts and data structures.
| Week | Topics | Work to Do |
|---|---|---|
| 1 | Introduction, Nodes, Linked Lists, Doubly Linked Lists | Get familiar with Learn 9, Python installation, in-class coding, quizzes, discussions, assignments |
| 2 | Queues, Stacks, Hash Maps | In-class coding, quizzes, discussions, assignments |
| 3 | Recursion | In-class coding, quizzes, discussions, assignments |
| 4 | Notation, Pattern Searching | In-class coding, quizzes, discussions, assignments |
| 5 | Sorting Algorithms | In-class coding, quizzes, discussions, assignments |
| 6 | Trees, Divide and Conquer, Final Exam/Project | In-class coding, quizzes, discussions, assignments, Final Exam |
- Assignment 1: Implement a singly linked list class with the following methods:
append(data): Adds a new node with the specified data at the end of the list.prepend(data): Adds a new node with the specified data at the beginning of the list.print_list(): Prints all the elements in the list.
- Assignment 2: Implement a method
remove(data)in the LinkedList class that removes the first occurrence of a node with the specified data. - Assignment 3: Implement a basic queue using Python's built-in list data structure with methods
enqueue,dequeue,is_empty, andsize. - Assignment 4: Use Python's
collections.dequeto implement a more efficient queue.
- Assignment 5: Implement a recursive function to calculate the factorial of a non-negative integer.
- Assignment 6: Implement a recursive function to compute the nth Fibonacci number.
- Discussion 4: Focus on Notations and *args, **kwargs.
- Discussion 5: Discuss pattern searching, regex, and its uses in Python.
- Assignment 7: Implement the Bubble Sort algorithm.
- Assignment 8: Implement the Quick Sort algorithm.
- Assignment 9: Implement the Merge Sort algorithm.
- Assignment 10: Implement a basic binary tree with methods for in-order, pre-order, and post-order traversal.
- Assignment 11: Implement a binary search tree (BST) with methods for inserting nodes and searching for values.
- Assignment 12: Implement depth-first search (DFS) methods for a binary tree using an iterative approach.
By the end of the course, students will be able to:
- Understand the concept of nodes in data structures.
- Learn how to implement linked lists and their variations.
- Implement basic and advanced queue operations.
- Use stacks and stack-based algorithms effectively.
- Implement hash maps for various problem-solving scenarios.
- Implement recursive solutions and analyze their efficiency.
- Analyze algorithmic complexities using asymptotic notation.
- Apply pattern searching algorithms to real-world problems.
- Implement and compare sorting algorithms.
- Implement and manipulate binary trees, AVL trees, and other tree structures.
- Apply divide-and-conquer strategies to solve complex problems.
- Python 3.x: All examples are developed in Python 3.x.
- Integrated Development Environment (IDE): I used Visual Studio Code and PyCharm, but any Python-compatible IDE will work.
- Git: Version control and collaboration through GitHub.
- Clone the Repository:
git clone https://github.com/skyla643/Python-2-class.git
- Navigate through the folders to find specific projects, lessons, or exercises.
- Run any Python file using:
python <filename>.py
- Use the lessons as a reference to understand each concept, then try the exercises for hands-on practice.
The goal of Python 2 is to prepare for more advanced programming topics, including automation, data analysis, and exploring Python's powerful libraries like Pandas and NumPy.
This repository is a personal learning project. However, feel free to suggest improvements or submit issues. Constructive feedback is always welcome!
This repository does not have a specific license since it consists of assignments for my Python course. However, it is shared publicly to demonstrate my work and skills to potential employers. Please respect this purpose and my academic work. With appreciation,
Skyla Miranda Reyes
— SMRCCC3302