Programming in C++/Java/Python

Program: Diploma in Software Engineering
Program Level: Diploma
Language: English
Subject Syllabus

Subject Overview

A comparative, practice-oriented study of programming with C++, Java, and Python. The subject develops computational thinking, language fluency, object-oriented design, algorithms, testing, application integration, security, and professional software-development practices.

Learning Goal

Students will design, implement, test, debug, document, and evaluate maintainable programs in C++, Java, and Python; select an appropriate language and tools for a problem; and apply secure, ethical, and industry-aligned development practices.

Syllabus

1. Programming Foundations and Language Ecosystems

Learning Objective: Explain algorithms, pseudocode, compilation, interpretation, virtual machines, runtime environments, and the principal use cases and trade-offs of C++, Java, and Python.

Category: foundation

2. Development Environments and Source Control

Learning Objective: Configure compilers, interpreters, IDEs, command-line tools, package managers, build systems, Git repositories, and basic collaborative workflows.

Category: foundation

3. Syntax, Data Types, Operators, and Input/Output

Learning Objective: Write programs using variables, constants, primitive and reference types, type conversion, expressions, operators, console input, formatted output, and language-specific coding conventions.

Category: foundation

4. Selection, Iteration, and Program Flow

Learning Objective: Apply Boolean logic, conditional statements, pattern or switch selection, loops, nesting, scope, and flow-control techniques to solve structured problems.

Category: core

5. Functions, Methods, and Modular Programming

Learning Objective: Design reusable functions and methods using parameters, return values, overloading, recursion, scope, namespaces, modules, packages, and separation of concerns.

Category: core

6. Strings, Arrays, Collections, and Generics

Learning Objective: Manipulate strings, arrays, lists, sets, maps, tuples, iterators, comprehensions, templates, and generics while selecting suitable structures for common tasks.

Category: core

7. Object-Oriented Programming

Learning Objective: Model software using classes, objects, constructors, encapsulation, inheritance, composition, polymorphism, abstract classes, interfaces, and appropriate language idioms.

Category: core

8. Memory, References, and Resource Management

Learning Objective: Compare stack and heap storage, pointers, references, object lifecycles, garbage collection, smart pointers, copying, mutability, and safe resource-management practices.

Category: core

9. Exceptions, Files, Serialization, and Debugging

Learning Objective: Handle errors with exceptions and validation; use debugging and logging tools; and process text, binary, CSV, JSON, and serialized data safely.

Category: application

10. Algorithms, Data Structures, and Complexity

Learning Objective: Implement searching, sorting, stacks, queues, linked structures, trees, and hash-based structures; assess correctness and time-space complexity using Big-O notation.

Category: core

11. Software Design and Reusable Architectures

Learning Objective: Apply abstraction, cohesion, coupling, SOLID principles, selected design patterns, layered architecture, APIs, libraries, frameworks, and dependency management.

Category: application

12. Testing, Quality Assurance, and Maintainability

Learning Objective: Create unit, integration, and regression tests; use assertions, test frameworks, code coverage, static analysis, documentation, refactoring, and continuous-integration practices.

Category: application

13. Database, Network, and Application Integration

Learning Objective: Build small applications that access relational databases, consume REST APIs, exchange structured data, and use suitable desktop, web, or service frameworks.

Category: application

14. Concurrency and Asynchronous Programming

Learning Objective: Explain processes, threads, synchronization, race conditions, deadlocks, futures, tasks, and asynchronous execution, and implement basic responsive or parallel programs safely.

Category: advanced

15. Secure, Ethical, and Professional Programming Capstone

Learning Objective: Deliver a version-controlled multi-language project using requirements, estimation, code review, metrics, deployment, and technical decision-making; address secure coding, privacy, licensing, accessibility, governance, AI coding assistants, cloud-native development, and emerging language trends.

Category: contemporary

Programming in C++/Java/Python
Diploma in Software Engineering