Welcome

Welcome to the Parallel and Distributed Programming course (Programming 3)! This course is designed to provide students with a comprehensive understanding of parallel and distributed computing concepts and practices. The emphasis is on practical problem-solving in diverse domains, ranging from graphics and image processing to evolutionary algorithms, optimization, games, networking, decentralized systems, fractals and more...

Each project is equipped with tags among the following:

Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge

About

Students are required to select one project from a curated list that is both intellectually stimulating and enjoyable. The projects cover a wide array of application areas to ensure engagement and relevance. Each project is carefully chosen to present opportunities for parallel and distributed implementations, allowing students to explore and harness the power of concurrent computing.

The course webpage, including detailed project descriptions, datasets, and implementation guidelines, is accessible to fellow educators and staff. It serves as a resource for inspiration and ideas for parallel and distributed programming courses. We encourage collaboration and the exchange of ideas among the academic community.

Rules & Grading

DOS detection
Force-directed graph layout
Genetic Algorithm
Heat Simulation
Kernel image processing
K-means Clustering
Transaction network analysis
Mandelbrot Set
Analysis of n-grams (simple text analysis)
Peer to peer Networks / Onion Routing
Page Rank
Particle effect engine
Particles
Algorithmic self-assembly
Sentiment analysis
Sierpitnski
Strassen's algorithm"
Evolutionary Graph Layouts with Genetic Algorithms
Railroads, an evolutionary approach to problem solving
Blockchain
Peer to Peer authoritative multiplayer game architecture