Paradigms
Programming Paradigms
Install / Use
/learn @oiraqi/ParadigmsREADME
Programming Paradigms
This course provides theoretical knowledge about, and practical skills in advanced programming paradigms. It builds on the background acquired in introductory programming courses (including OOP) and other computer science courses (OS, Computer Communication, Database Systems), to tackle programming models used in professional, enterprise-grade software development. Covered topics are organized in five parts, where each builds on previous ones:
- P1. Programming for communication: Client/server model and programming
- P2. Programming for integration: Service-oriented model and programming
- P3. Programming for performance: Multithreaded and asynchronous programming
- P4. Programming for extensibility: Functional and reactive programming
- P5. Programming for scalability: Distributed and parallelized programming
This course adopts the 3 most popular programming languages: JavaScript, Python and Java. It uses each time the most suitable language(s) to support and illustrate the concepts covered in each part.
Intended Learning Outcomes
This course enables learners to achieve the ability to:
- Master the client/server model and programming
- Master the service oriented model and programming
- Master multithreaded and asynchronous programming
- Master functional and reactive programming
- Master distributed and parallelized programming
Content
Part | Main Concepts | Language(s) | APIs / Libraries / Frameworks / Runtimes | | --- | --- | --- | --- | | P1 | Protocols, clients, servers, sockets, blocking I/O | Java | Socket API | | P2 | RPC, Service Definition Language, Web Services, XML/SOAP, REST | Java, Python | JAX-WS, Python Zeep, JavaScript Soap, Spring Boot, OpenAPI, curl | | P3 | Threads, non-blocking I/O, event loop, job queue, callbacks, promises, async/await | Java, JavaScript |Thread/Runnable, Fetch API, Node.js | | P4 | Observables, observable piping and Rx operators, asynchronous streams | JavaScript | RxJS, Node.js | | P5 | Distributed parallelized datasets, distributed map/reduce (family of) operations, clusters, drivers, workers, distributed streaming, brokers, producers, consumers, topics, partitions | Java, Python | Spark, Kafka |
Tools
Develop | Build | Run | Collaborate | | :---: | :---: | :---: | :---: | | VS Code | Gradle | Docker | Git |
Related Skills
node-connect
346.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
107.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
346.4kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
346.4kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
