Skip to content

skyla643/Python-2-class

Repository files navigation

Python 2 Course Guide

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.

Repository Structure

The repository is organized by lessons, projects, and exercises, covering advanced Python programming concepts and data structures.

Course Content and Weekly Schedule

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

Assignments

Week Two

  1. 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.
  2. Assignment 2: Implement a method remove(data) in the LinkedList class that removes the first occurrence of a node with the specified data.
  3. Assignment 3: Implement a basic queue using Python's built-in list data structure with methods enqueue, dequeue, is_empty, and size.
  4. Assignment 4: Use Python's collections.deque to implement a more efficient queue.

Week Three

  1. Assignment 5: Implement a recursive function to calculate the factorial of a non-negative integer.
  2. Assignment 6: Implement a recursive function to compute the nth Fibonacci number.

Week Four

  • Discussion 4: Focus on Notations and *args, **kwargs.
  • Discussion 5: Discuss pattern searching, regex, and its uses in Python.

Week Five

  1. Assignment 7: Implement the Bubble Sort algorithm.
  2. Assignment 8: Implement the Quick Sort algorithm.
  3. Assignment 9: Implement the Merge Sort algorithm.

Week Six

  1. Assignment 10: Implement a basic binary tree with methods for in-order, pre-order, and post-order traversal.
  2. Assignment 11: Implement a binary search tree (BST) with methods for inserting nodes and searching for values.
  3. Assignment 12: Implement depth-first search (DFS) methods for a binary tree using an iterative approach.

Student Learning Outcomes

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.

Tools and Technologies

  • 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.

How to Use This Repository

  1. Clone the Repository:
    git clone https://github.com/skyla643/Python-2-class.git
  2. Navigate through the folders to find specific projects, lessons, or exercises.
  3. Run any Python file using:
    python <filename>.py
  4. Use the lessons as a reference to understand each concept, then try the exercises for hands-on practice.

Future Goals

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.

Contribution

This repository is a personal learning project. However, feel free to suggest improvements or submit issues. Constructive feedback is always welcome!

License

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

About

Course review of python 2

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages