Skip to content

Free-Computer-Science/free-computer-science.github.io

Repository files navigation

Current Paths and their names in the repo:

Trail 1: Introductory Computer Science. Route = "/foundations"

  1. Getting Started (IN PROGRESS)
  2. Introduction to Programming
  3. College Placement Computer Science Principles
  4. Computer Science Principles for non-Students
  5. College Placement Computer Science A in Java
  6. Foundations of Computer Science with Java

Note: If you are a high school student or teacher, use the "College Placement" version of the program. If you are coming up on your 10-year High School reunion, you should use the Non-Students form.

Trail 2: Basic Systems Programming in C and Assembly

  1. Basics of C Programming (IN PROGRESS)
  2. Basics of Assembly
  3. Introduction to Systems
  4. Non-Basic Ideas in C (These ideas are important to Operating Systems)
  5. Operating Systems
  6. Networking: A Top-Down Approach

Note: These Courses teach the foundational processes in what makes your computer tick at its very heart. They can be a touch complicated, so if you feel like you want to skip to algorithms for now, feel free.

Trail 3: Algorithms, Data Structures, and Discrete Structures (Discrete Math, but shhhhhh)

  1. Introductions to Algorithms in Java, C, or Python
  2. Data Structures in Java, C, or Python
  3. Discrete Structures

Note: All of the courses provided are available in Java, C, and Python. Discrete Structures will be the same regardless of the language.

Trails that Will exist at some point after creating the first two:

Trail 4: Math, Math, and Math (But, Like, In context, ya know!?)

  1. Calculus 1
  2. Calculus 2
  3. Calculus 3
  4. Linear Algebra
  5. Discrete Math
  6. Number Theory for Computer Science Folks
  7. Optimization
  8. Probability and Statistics
  9. Combinatorics
  10. Computational Math for Computer Science Students

Trail 5: Databases and Complex Systems

  1. SQL and Relational Databases
  2. Advanced Databases
  3. Distributed Systems
  4. Cloud Computing
  5. Scalable Web Applications

Trail 6: Professional Developer Skills

  1. Version Control
  2. Bash Scripting
  3. The Unix Programming Environment
  4. Remoting into computers and server access
  5. Agile for Developers
  6. Testing, Quality Assurance and CD/CI/Devops for progammers
  7. Documenting your Code (yes, this is important)
  8. Basic Security for developers

Trail 7a: GUIs and Graphics

  1. Intro to Computer Graphics
  2. 2d Computer Graphics
  3. 3d Graphics
  4. Shaders and GPU Programming
  5. Graphics Libraries
  6. Ray Tracing
  7. UX/UI principles for application development

Trail 7b: Web Development (but simplified, this is The Odin Project's domain)

Trail 7c: Mobile App development

Trail 7d: Software App development for desktops

Trail 8: Programming Languages, Theory, and foundations of Computation (Do you want to build a programming language??)

  1. Foundations of Programming Languages (Functional, OOP, Imperative, and Declarative Programming)
  2. Formal Language Theory
  3. Compiler Construction
  4. Parallel Programming

Trail 10: Preparing for Graduate School, a Job or an Interview

  1. Writing a Resume, Networking, and Interview Skills
  2. Technical Writing and Research

Trail 15: The Software Engineering Process in the Working world

  1. Version Control in the Real World (advanced Git practices for team collaboration)
  2. Technical Debt and Refactoring (managing and reducing technical debt in large projects)
  3. Software Maintenance and Evolution (handling long-term software projects, maintaining code quality)
  4. Understanding Legacy Systems (working with, updating, and improving legacy codebases)
  5. Cross-team Communication and Collaboration (working in larger, multi-disciplinary teams)

Wish List Trails, Trails that I don't have enough knowledge or experience in to give any education on. When I've learned enough in these areas, I would love to make a Trail for them.

Trail 9: ML/AI and Automation

  1. Introduction to Machine Learning and AI
  2. Introduction to Neural Networks
  3. Introduction to Natural Language Processing
  4. Introduction to Deep Learning
  5. Computer Vision
  6. Misc topics in ML/AI/DL

Trail 11: Cyber Security

  1. Introduction to Cybersecurity (overview of fundamental concepts)
  2. Network Security and Encryption (covering encryption protocols, SSL/TLS, VPNs)
  3. Penetration Testing and Ethical Hacking (introducing ethical hacking and pentesting tools like Metasploit)
  4. Secure Coding Practices (coding with security in mind, addressing vulnerabilities like SQL injection, XSS)
  5. Incident Response and Disaster Recovery (methods for identifying, responding to, and recovering from security breaches.
  6. Cryptography (in-depth study of cryptographic techniques and algorithms)
  7. Security Auditing and Compliance (learning about frameworks like GDPR, HIPAA, PCI-DSS)

Trail 12: Real-time and Embedded Systems

  1. Introduction to Embedded Systems (microcontroller programming, sensor integration)
  2. Real-time Operating Systems (RTOS) (concepts like task scheduling, priority, and preemption)
  3. Real-Time System Design (focus on system constraints, timing analysis, and control systems)
  4. Embedded C Programming (specific optimizations and constraints in embedded environments)
  5. IoT Systems and Networking (how embedded systems work within the Internet of Things ecosystem)
  6. Hardware Interfacing and Peripheral Management (communicating with external devices through protocols like SPI, I2C)

Trail 13: Developer Operations and Cloud Engineering

  1. Introduction to DevOps (concepts like CI/CD, infrastructure as code, automation)
  2. Containerization with Docker and Kubernetes (learn how to containerize applications and deploy them)
  3. Cloud Platforms: AWS, Azure, and Google Cloud (overview of services provided by major cloud providers)
  4. Continuous Integration and Continuous Deployment (CI/CD) (automating the testing and deployment process)
  5. Infrastructure as Code (IaC) (using tools like Terraform, Ansible to manage cloud infrastructure)
  6. Monitoring and Logging in Cloud Systems (tools and techniques for system observability)

Trail 14: Project Managements and Systems Architecture

  1. Software Project Management (time management, cost estimation, and resource allocation)
  2. Agile Methodologies (introduction to Scrum, Kanban, and other agile frameworks)
  3. Systems Architecture and Design Patterns (understanding software architecture patterns like MVC, microservices)
  4. Risk Management in Software Projects (identifying, analyzing, and mitigating risks in development)
  5. Requirements Engineering (capturing and managing functional and non-functional requirements)
  6. Team Collaboration and Communication (tools and practices to facilitate team collaboration and communication)

Misc Trails that don't fit anywhere else

Trail 15: Other Programming Languages

  1. ERPs and their programming languages (This is a legitimate area of software development. If you work for a company that uses SAP or Peoplesoft, you should at least get familiar with one of the two).
  2. Non-game development C# and the .NET framework
  3. Ocaml
  4. Haskell
  5. Frameworks for Java
  6. Frameworks for Python
  7. Historic Programming Languages Overview: LISP, PERL, FORTRAN, and COBOL

Note these Trails will not be created for some time and are so far down on my list it isn't even funny.

About

No description, website, or topics provided.

Resources

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages