Software & Computing
Programming, algorithms, systems, networks, databases, security and AI.
104 topics: 36 beginner, 34 intermediate, 34 advanced.
Programming, algorithms, systems, networks, databases, security and AI.
104 topics: 36 beginner, 34 intermediate, 34 advanced.
Software engineering is the discipline of building programs that are correct, efficient and maintainable. Computing provides the ideas: algorithms that solve problems, data structures that store information, and systems that run on real hardware and networks.
The course starts with programming basics and algorithms, moves through data structures, object-oriented design and testing, then covers operating systems, networks, databases, security and machine learning.
Students of computer science and software engineering, engineers who write code for their own discipline, and professionals who want a sound base in algorithms and systems.
Beginner topics cover variables, control flow, functions, loops, recursion and basic algorithms. Intermediate topics cover data structures, graphs, object-oriented design, testing, operating systems and networks. Advanced topics cover databases, distributed systems, security, web development and machine learning.
Programming, algorithms, systems, networks, databases, security and AI.
104 topics, ordered from beginner to advanced: 36 beginner, 34 intermediate and 34 advanced.
Start with "What is a program" and work through the list in order. Each topic builds on the one before it.
Python is a good first choice because its syntax is clear and it is widely used for data analysis and automation. C is useful later for embedded work.
Discrete mathematics, logic and basic probability are most useful. Advanced topics such as linear algebra become important in graphics and machine learning.
Growth rate decides whether a method still works when data becomes large. A quadratic method may be fine for a hundred items and useless for a million.
Write a small unit test for each function, including edge cases and invalid inputs. Run the tests automatically whenever you change the code.
No. It adds a new tool. Engineers still need to define the problem, prepare data, check results, and make sure the system is safe and fair.
Practise in the interactive course with quizzes, tests and labs.