Skip to content

cdiak/intro-to-programming

Repository files navigation

Intro to Programming

Welcome to my Intro to Programming repository! This is a code portfolio documenting my self-directed learning in programming, covering multiple languages, paradigms, and frameworks.

Repository Purpose

This repository serves as:

  • A Learning Journal: A structured collection of notes, exercises, and projects as I progress through courses and resources.
  • A Code Portfolio: Demonstrating my growing skills in programming across various topics and languages.
  • A Reference Guide: Providing well-organized and reusable examples for future projects or study.

Current Structure

Here’s the structure of the repository and the topics it covers:

intro-to-programming/
├── Programming in Java/
│   ├── 01_Elements_of_Programming/
│   │   ├── 1.1_Your_First_Program/
│   │   │   ├── Code/
│   │   │   ├── Exercises/
│   │   │   └── Notes/
│   │   ├── ...
│   ├── 02_Functions/
│   ├── 03_OOP/
│   ├── 04_Data_Structures/
│   ├── 05_Theory_of_Computing/
│   ├── 06_A_Computing_Machine/
│   ├── 07_Building_a_Computer/
│   ├── 08_Systems/
│   └── 09_Scientific_Computation/
├── Programming in Python/
│   ├── (Similar structure to Java; focuses on Sedgewick & Wayne Python exercises)
├── SICP/
│   ├── Chapter-1-Building-Abstractions-with-Procedures/
│   │   ├── 1.1-The-Elements-of-Programming/
│   │   │   ├── Code/
│   │   │   ├── Exercises/
│   │   │   └── Notes/
│   │   ├── ...
│   ├── Chapter-2-Building-Abstractions-with-Data/
│   ├── Chapter-3-Modularity-Objects-and-State/
│   ├── Chapter-4-Metalinguistic-Abstraction/
│   └── Chapter-5-Computing-with-Register-Machines/
├── README.md
└── create_sicp_structure.sh

Highlights

  1. Programming in Java and Python:

    • Following Sedgewick and Wayne's curriculum.
    • Organized by chapter, with subfolders for exercises, code, and notes.
  2. SICP (Structure and Interpretation of Computer Programs):

    • Each chapter is divided into sections and sub-sections.
    • Includes:
      • Code: Implementations of exercises and examples.
      • Exercises: Solutions to practice problems.
      • Notes: Detailed write-ups of key concepts.

Current Focus and Progress

Topic Resource Status
Java Sedgewick and Wayne In Progress
Python Sedgewick and Wayne In Progress
LISP (SICP) Structure and Interpretation In Progress

Tools and Technologies

This repository showcases work in the following languages and tools:

  • Languages: Java, Python, LISP (Scheme)
  • Programming Paradigms: Procedural, Object-Oriented, Functional Programming
  • Concepts: Algorithms, Data Structures, OOP, Recursion, Scientific Computation, and more.

Goals

Short-Term

  • Complete exercises and projects for Sedgewick and Wayne and SICP.
  • Deepen understanding of algorithms, data structures, and functional programming.

Long-Term

  • Expand the repository to include additional languages (e.g., C, OCaml).
  • Explore frameworks (e.g., Flask, Spring Boot).
  • Develop larger real-world projects demonstrating learned skills.

How to Use This Repository

If you’re also learning to program:

  • Navigate to the appropriate directory (e.g., SICP/ or Programming in Java/) to explore exercises, notes, and code.
  • Use the create_sicp_structure.sh script as a template for setting up your own study folders.
  • Check the Notes/ subfolders for written summaries of key topics.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published