



With “Programming Fundamentals”, students begin to study SoftUni’s in-house program for the comprehensive training of software engineers. The course examines fundamental concepts in programming, which are the basis for effective and quality training in the professional modules. Learners build on the knowledge gained in the Programming Basics course and begin to use more complex programming concepts and structures such as: arrays, sheets, objects and classes. Additional technologies needed by every software developer are studied, such as HTML and CSS, HTTP, bitwise operations, and more. The basics of web development are considered, as well as one of the most common technologies and tools, with which the course successfully builds an idea among students about the upcoming professional modules and knowledge, that they will acquire from them to become successful software developers.
- Basic Syntax, Conditional Statements and Loops
- Introduction and IDE
- JavaScript Syntax
- Conditional Statements
- Loops (while and for Loops)
- Debugging and troubleshooting
- Git and GitHub
- Software Configuration Management
- Introduction to Git
- Introduction to GitHub
- Data Types and Variables
- What is Data Type?
- let vs. var
- Strings
- Numbers
- Booleans
- typeofOperator
- Undefined and Null
- HTTP Basics
- HTTP Developer Tools
- HTML Forms, Request, Response
- URLs and ERL Structure
- Arrays
- What are Arrays?
- Array Operations
- Array Iteration
- for-of Loop
- HTML & CSS Basics
- Introduction to HTML
- HTML Common Elements
- Introduction to CSS
- Selectors
- Block Elements
- Dev Tools
- Fonts
- Functions
- What is a Function?
- Declaring and Invoking Functions
- Nested Functions
- Value vs Reference Types
- Arrow Functions
- Naming and Best Practices
- Software Development Concepts – Part 1
- The 4 Skills of Software Engineers
- Fundamental Software Engineering Concepts
- Software Architectures, Front-End and Back-End
- Arrays Advanced
- Array Functionality
- Array Operations (push, pop, shift, unshift, filtering and transforming elements)
- Sorting Arrays
- Objects and Classes
- Objects (definition, properties and methods)
- Reference vs. ValueTypes
- JSON
- Classes
- Software Development Concepts – Part 2
- Front-End Development Concepts
- Back-End Development Concepts
- Embedded Systems and IoT
- Software Engineering Concepts
- Associative Arrays
- Associative Arrays (definition, attributes, iteration)
- Map (methods, iteration)
- Set (methods, iteration)
- Bitwise Operations
- What is a Bit, Byte, KB, MB?
- Numeral Systems
- Representation of Data in Computer Memory
- Text Processing
- Strings
- Manipulating Strings (Concatenating, Searching, Substring, Splitting, Replacing)
- Problem Solving
- Fundamental Skills of Software Engineers
- Problems: Definition and Problem Solving
- Stages of Problem Solving
- Solving Exam Problems
- Regular Expressions
- Regular Expressions (Definition and Pattern, Predefined Character Classes)
- Quantifiers and Grouping
- Backreferences
- Database Basics
- Introduction to Databases
- SQL vs. NoSQL Databases
- DBMS Systems
- Relational Databases, SQL and MySQL Databases
- NoSQL Databases and MongoDB
- QA Introduction
- Software Quality Assurance
- QA Engineers and Responsibilities
- Bugs and Bug Trackers
- Testing, Test Types and Test Levels
- Test Automation, Frameworks and Tools
- Basic Web Project
- Node Modules (HTTP, Creating simple HTTP Server)
- Express.js Framework
- MVC
- MVC with Node, Express.js, Handlebars
- Handling the standard functionality of the programming language
- Basics of web development
- Understanding the interrelationship between different IT concepts
- Analysis of complex problems and reduction to computer-executable steps
- Basic HTML and CSS skills
- Working with linear data structures
