Foundations of Software Engineering

What You'll Learn

Lo que aprenderás


This foundational knowledge of how computers and programming languages work will allow you to optimize and debug anything later on in your professional career. You will also begin working with algorithms and data structures which are essential foundations for great Software Engineers - the type that the best companies hire.

El conocimiento fundamental de cómo funcionan las computadoras y los lenguajes de programación te permitirá optimizar y depurar cualquier cosa más adelante en tu carrera profesional. También comenzarás a trabajar con algoritmos y estructuras de datos que son bases esenciales para grandes ingenieros de software, de los que contratan en las mejores empresas.

In the first sprint of foundations, you’ll work in C and Unix programming, graphical programming, data structures, assembly language, and algorithms as well as reverse engineering and security protocols.

En el primer sprint de fundamentos, trabajarás en programación C y Unix, programación gráfica, estructuras de datos, lenguaje ensamblador y algoritmos, así como protocolos de seguridad e ingeniería inversa.

From there, you are introduced to higher-level languages, increasingly advanced algorithms, space and time complexity, database management, and front-end programming. Using the latest technologies, you will begin to create a complete web application project that will span the rest of the foundation sprints.

A partir de ahí, conocerás lenguajes de nivel superior, algoritmos cada vez más avanzados, complejidad de espacio y tiempo, administración de bases de datos y programación front-end. Usando las últimas tecnologías, comenzarás a crear un proyecto de aplicación de web completo que abarcará el resto de los sprints básicos.

The final sprint of foundations emphasizes automation, scalability, and reliability, so that you are familiar with the infrastructure and best practices similar to those in tech powerhouses. Alongside a continuation in web development, you’ll also advance in algorithmic understanding, technical writing, debugging, and project management.

El sprint final de los fundamentos enfatiza la automatización, la escalabilidad y la confiabilidad para que estés familiarizado con la infraestructura y las mejores prácticas similares a las de las potencias tecnológicas. Junto con una continuación en el desarrollo web, también avanzarás en la comprensión algorítmica, la redacción técnica, la depuración y la gestión de proyectos.

Examples of Projects

Ejemplos de Proyectos

  • Write your own printf function

  • Escribir su propia función printf

  • Web stack debugging

  • Depuración de web-stack

  • Build a video game

  • Construir un videojuego

  • Clone a marketplace

  • Clonar un mercado

  • Code your own Shell

  • Codificar su propio Shell

Foundation Overview

Descripción general de fundamentos

Curriculum
Foundation of Computer Science &
Software Engineering

Currículum
Foundation of Computer Science &
Software Engineering

Specialization
Especialización
01




1st Sprint
1er Trimestre

  • Git and command line editors
  • Git y línea de comandos
  • Introduction to Bash
  • Introducción a Bash
  • C - first statements
  • C - primeras declaraciones
  • C - pointers
  • C - punteros
  • C - recursion
  • C - recursividad
  • C - static library
  • C - biblioteca estática
  • C - memory allocation
  • C - asignación de memoria
  • C - preprocessor
  • C - preprocesador
  • C - variadic functions
  • C - funciones variadas
  • C - bit manipulation
  • C - manipulación de bits
  • C - file I/O
  • C - E/S de archivo
  • Singly linked lists
  • Lista simplemente vinculada
  • Create your own printf
  • Crea tu propia printf
  • Create your own basic Shell
  • Crea tu propio Shell básico






02




2nd Sprint
2do Trimestre

  • Python - first statements
  • Python - primeras declaraciones
  • Python - import and modules
  • Python - importación y módulos
  • Python - data structures
  • Python - estructuras de datos
  • Python - exceptions
  • Python - excepciones
  • Python - classes
  • Python - clases
  • Python - inheritance
  • Python - herencia
  • Python - file I|O
  • Python - E|S de archivo
  • Python - JSON serialization/deserialization
  • Python - serialización/deserialización de JSON
  • HTML/CSS introduction
  • Introducción a HTML/CSS
  • SQL - basic queries
  • SQL - consultas básicas
  • SQL - join queries
  • SQL - unirse a consultas
  • C- dynamic libraries
  • C - paquete de programas dinámicas
  • C- makefiles
  • C - archivos MAKE
  • Doubly linked lists
  • Listas doblemente enlazadas
  • Stack and Queues
  • Pila y colas
  • Hash tables
  • Tablas hash
  • Sorting algorithms
  • Algoritmos de clasificación
  • Binary trees
  • Árboles binarios
  • Bash - scripting
  • Bash - secuencias de comandos
  • Unix processes and signals
  • Procesos y señales Unix
  • Regex
  • Regex
  • Network introduction
  • Introducción a la red






03




3rd Sprint
3er Trimestre

  • Python - Object-relational mapping
  • Python - objeto-relacional cartografía
  • Python - Web framework
  • Python - marco web
  • Python - RESTful API
  • Python - API RESTful
  • Python - web scraping
  • Python - raspado web
  • Javascript - first statements
  • Javascript - primeras declaraciones
  • Javascript - objects
  • Javascript - objetos
  • Javascript - scobes and closures
  • Javascript - alcances y cierres
  • Javascript - web scraping
  • Javascript - raspado web
  • Search algorithms
  • Algoritmos de búsqueda
  • SSH
  • SSH
  • SSL certificate
  • Certificado SSL
  • Web server
  • Servidor web
  • Load balancer
  • Equilibrador de carga
  • Firewall
  • Cortafuegos
  • MySQL primary-replica
  • MySQL replica
  • Server monitoring
  • Monitoreo del servidor
  • Code deployment
  • Implementación de código
  • Postmortem
  • Post mortem
  • Webstak debugging
  • Depuración de pila web
  • Portfolio project
  • Proyecto de portafolio