Tentative Outline

  1. Introduction - Review of the SWE lifecycle, software design techniques, UML, overview of the programming language that will be used in the course (i.e. Java, C#, C++, …)
  2. Introduction to Java - A crash course on Java, key concepts, introduction to IDE, tools for testing, version control, bundling and distributing software
  3. Object Level Design, Design Patterns - Key principles with hands-on examples on information hiding, delegation, inheritance and related most common design patterns
  4. Collections, Libraries and Frameworks - Introduction to contemporary collections, libraries and frameworks for implementing data structures, I/O operations and commonly used general purpose algorithms
  5. Data Persistence and Data Access and management - Dealing with data related issues in software systems. Learn tools for managing, storing and changing data on persistence storage, e.g. database
  6. Developing services and APIs - Learn to interact with other software, or subsystems, learn decoupling principles, communication via web services and web-based frameworks
  7. Software testing - incorporating test into development, unit test, component test, system test, writing test cases and automating software testing Server-side, DB, web services are completed
  8. Introduction to Concurrency and GUI - Event-based programming, interaction with the users, GUI programming concepts, introduction to GUI development frameworks
  9. Designing GUIs - GUI development frameworks, Design patterns for GUI development, decoupling the GUI from the execution logic
  10. Modeling using Design Patterns - Learn more advanced design patterns with use case examples, learn to apply them to the given problems
  11. Concurrency - Primitives, safety and structuring concurrent applications
  12. Concurrency - Parallelizing applications, concurrency frameworks
  13. Change management and deployment - Putting everything together and building the ready to ship software, handling the change, refactoring, bundling, versioning
  14. Review, Software construction in practice, outlook Real-world scenarios, meeting with industry experts to discuss the real-world examples of the course contents
Next