Advanced Programming

Overview
Advanced Programming builds directly on Introduction to Programming, taking you deeper into concepts and techniques that real software projects rely on. Over 15 to 20 hours you move past the basics into more sophisticated data structures and algorithms, common design patterns, concurrent and parallel programming, deeper object oriented design, and database programming.
The course closes with advanced projects that push you to apply these concepts to real, more challenging problems, building the kind of problem solving skill that advanced programming work demands.
What You Will Learn
- Work with more sophisticated data structures such as graphs, hash tables, and advanced tree structures
- Apply algorithms for searching, sorting, and optimization
- Use common design patterns and architectural principles to write reusable, maintainable, and scalable code
- Understand concurrency and parallelism, including threads, processes, and synchronization
- Go deeper into object oriented programming, including abstract classes, interfaces, and design principles like SOLID
- Interact with databases using SQL and database management systems
- Apply everything learned in a challenging, real-world programming project
Course Curriculum
| Module | What you cover |
|---|---|
| Advanced Data Structures and Algorithms | Graphs, hash tables, and advanced tree structures, with algorithms for searching, sorting, and optimization |
| Design Patterns | Common design patterns and architectural principles for solving recurring design problems |
| Concurrency and Parallelism | Threads, processes, synchronization, deadlock avoidance, and multi-threading techniques |
| Advanced Object-Oriented Programming | Abstract classes, interfaces, SOLID design principles, and advanced inheritance and polymorphism |
| Database Programming | Interacting with databases using SQL, database management systems, and data access frameworks |
| Advanced Projects | Challenging programming projects that apply advanced concepts to real-world problems |
Who This Course Is For
This course is for students who have completed Introduction to Programming and want to move into more advanced, real-world programming work.
Target audiences
- Students who have completed Introduction to Programming
Requirements
- Introduction to Programming