<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title/><link>https://pedram-ep.github.io/portfolio/</link><atom:link href="https://pedram-ep.github.io/portfolio/index.xml" rel="self" type="application/rss+xml"/><description/><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Mon, 24 Oct 2022 00:00:00 +0000</lastBuildDate><image><url>https://pedram-ep.github.io/portfolio/media/icon_hu_d41a6b52b0e960df.png</url><title/><link>https://pedram-ep.github.io/portfolio/</link></image><item><title>Solving College Admissions at Scale An Integer Programming Approach</title><link>https://pedram-ep.github.io/portfolio/projects/college-admissions-milp/</link><pubDate>Sun, 12 Jul 2026 00:00:00 +0000</pubDate><guid>https://pedram-ep.github.io/portfolio/projects/college-admissions-milp/</guid><description>&lt;p&gt;A review and implementation on the paper &amp;ldquo;College admissions with ties and common quotas: Integer programming approach&amp;rdquo;. This project uses Pyomo framework to implement 9 different MILP formulations with College Admission problem, tested by generated data.&lt;/p&gt;
&lt;p&gt;Implementing mathematical optimization models to fairly assign students to colleges when traditional matching algorithms fail real-world complex scenatios like tied scores and shared capacity constraints.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Implementation of Sections 1-4&lt;/strong&gt; from the paper &lt;em&gt;&amp;ldquo;College admissions with ties and common quotas: Integer programming approach&amp;rdquo;&lt;/em&gt; by Kolos Csaba Ágoston, Péter Biró, Endre Kováts, Zsuzsanna Jankó.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Coursework for&lt;/strong&gt;: Combinatorial Optimization and Network Analysis (Dr. Farnaz Hooshmand Khaligh)&lt;/p&gt;
&lt;h2 id="problem-description"&gt;Problem Description&lt;/h2&gt;
&lt;p&gt;College admissions systems must match students to universities fairly while respecting preferences and constraints. The classic Gale-Shapley algorithm (1962) finds stable matchings efficiently—but it breaks down in real systems like Hungary&amp;rsquo;s, which have:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Tied Scores&lt;/strong&gt; (Ties): When multiple students have identical scores, how do you decide who gets admitted?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Should all tied students be admitted, rejected, or decided by lottery?&lt;/li&gt;
&lt;li&gt;Different policies have different fairness properties&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Shared Capacity Constraints&lt;/strong&gt; (Common Quotas): Multiple universities may compete for shared resources (e.g., limited faculty or government-funded slots)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Makes the problem NP-hard&lt;/li&gt;
&lt;li&gt;Cannot be solved by the greedy deferred-acceptance algorithm&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;The Challenge&lt;/strong&gt;: Design efficient integer programming (IP) formulations that handle these constraints and enable policy comparison.&lt;/p&gt;
&lt;h2 id="implementations"&gt;Implementations&lt;/h2&gt;
&lt;h3 id="dataset-generation"&gt;Dataset Generation&lt;/h3&gt;
&lt;p&gt;To test the later implemented models, we generate a random dataset of students, colleges, and applications. Students each have a score for each college, along with a list of preferences, and colleges have a upper quote for the number of students they can accept. The script &lt;code&gt;scripts/generate_datasets.py&lt;/code&gt; uses the functions defined on &lt;code&gt;src/generator.py&lt;/code&gt; to generates synthetic instances at three scales:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Small&lt;/strong&gt;: 10 applicants, 5 colleges&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Medium&lt;/strong&gt;: 50 applicants, 20 colleges&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Large&lt;/strong&gt;: 1,000 applicants, 20 colleges&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are two king of datasets, the strict datasets artificially avoids students having same rank for a college. The datasets are finally stored as &lt;code&gt;.json&lt;/code&gt; files and they can be loaded using functions in &lt;code&gt;src/data_loaders.py&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The formulations are then compared based on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Solution quality (objective value)&lt;/li&gt;
&lt;li&gt;Computational time&lt;/li&gt;
&lt;li&gt;Stability guarantees&lt;/li&gt;
&lt;li&gt;Student satisfaction metrics&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="integer-programming-formulations"&gt;Integer Programming Formulations&lt;/h3&gt;
&lt;p&gt;Implemented twleve differen IP and MIP formulations with different constraints and objectives:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SO-BB&lt;/strong&gt; (Student-Optimal Baïou-Balinski)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SO-NW-CUT&lt;/strong&gt; and &lt;strong&gt;SO-NW-BIN-CUT&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MIN-CUT&lt;/strong&gt; and &lt;strong&gt;MIN-BIN-CUT&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MSMR-CUT&lt;/strong&gt; and &lt;strong&gt;MSMR-BIN-CUT&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MSMR-EF&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SO-H-NW-CUT&lt;/strong&gt; and &lt;strong&gt;SO-H-NW-BIN-CUT&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SO-C-NW-CUT&lt;/strong&gt; and &lt;strong&gt;SO-C-NW-BIN-CUT&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These formulations are implemented as &lt;code&gt;pyomo&lt;/code&gt; models, with a base function containing the basic variables, parameters, and constraints. Each formulation uses the base function and adds objective function, new variables and constraints to it. The full implementations are available in &lt;code&gt;src/models/&lt;/code&gt; directory.&lt;/p&gt;
&lt;p&gt;Each formulation is solved using CPLEX (with fallback to open-source solvers).&lt;/p&gt;
&lt;h2 id="results"&gt;Results&lt;/h2&gt;
&lt;p&gt;The final results show similar results as original paper. Since the dataset used for this project was much smaller due to computional limits, some values don&amp;rsquo;t have the exact proportions, but overall the solutions show similar results.&lt;/p&gt;
&lt;p&gt;The most important insights about policy trade-offs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;H-stability&lt;/strong&gt; (Hungarian): Conservative acceptance, but guaranteed stability; fewer students matched&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;L-stability&lt;/strong&gt; (Chilean): Maximizes admissions but violates capacity constraints; less stable&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lottery&lt;/strong&gt; (Irish): Balances fairness and stability; randomness adds variance&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Computational times scale linearly for small/medium instances; large instances (1,000 applicants) remain solvable within reasonable timeframes using modern IP solvers, especially using binary models which have more variables and constraints, but need less time to find the solution.&lt;/p&gt;
&lt;p&gt;One other important result shows for finding a stable matching in large scale, even using student-pessimal methods will reach the same solutions, with possible little differents.&lt;/p&gt;
&lt;h2 id="key-learnings"&gt;Key Learnings&lt;/h2&gt;
&lt;p&gt;Through this project, I developed deep understanding of:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Combinatorial Optimization Theory&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Matching algorithms and stability concepts&lt;/li&gt;
&lt;li&gt;NP-hard problem recognition and IP formulation strategies&lt;/li&gt;
&lt;li&gt;Trade-offs between solution quality and computational time&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Integer Programming Modeling&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Translating real constraints into mathematical formulations&lt;/li&gt;
&lt;li&gt;Model comparisons for the same problem with different objectives and constraints&lt;/li&gt;
&lt;li&gt;Using Pyomo and CPLEX in a large-scale project with multiple models&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Software Engineering for Research&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Designing modular programs for extensibility, instead of solely relying on Jupyter notebookes&lt;/li&gt;
&lt;li&gt;Writing a reproducubile dataset generation code using seed control and scripts&lt;/li&gt;
&lt;li&gt;Writing full documentation for both practitioners and researchers&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Advanced Programming Teaching Assistant Experience 2025 Spring</title><link>https://pedram-ep.github.io/portfolio/blog/advanced-programming-teaching-assistant-experience-2025-spring/</link><pubDate>Wed, 13 Aug 2025 13:57:12 +0330</pubDate><guid>https://pedram-ep.github.io/portfolio/blog/advanced-programming-teaching-assistant-experience-2025-spring/</guid><description>&lt;p&gt;Last semester, I had the honor of being present as one of the teaching assistants and supervisors of the &amp;ldquo;Advanced Programming&amp;rdquo; course of Dr. Qhatee and Dr. Behnam Yousefimehr.&lt;/p&gt;
&lt;p&gt;In this semester, we tried to improve the learning process of the students by making changes in the teaching structure of this course, including exercises, and preparing documents for all topics. We wrote more than 700 pages of documentation on working with Java and object-oriented programming, as well as some more advanced topics such as git, version control, data structures, and algorithms, so that the students both have a glimpse of their future lessons and are ready to program small but complete projects. In addition to these, we were able to prepare complete documentation and exercises for working with the MySQL database and Java ORM, Hibernate, so that we use these tools to the fullest in our end-of-semester project.&lt;/p&gt;
&lt;p&gt;In addition to the educational materials, we were able to hold 14 weekly and face-to-face workshops for 74 students of this course, and we were able to solve the problems of the taught topics and answer the students&amp;rsquo; questions. The exercises were later corrected in an anatomical manner with the help of the teaching of the lesson assistants and were placed with textual feedback for the students. With the aim of reducing the cost of making mistakes in the learning process, we allowed children to learn from their mistakes and become better programmers as much as possible.&lt;/p&gt;
&lt;p&gt;We used a GitHub repository for the process of writing and polishing the documents, making the course material of this semester available, and ready to edit for anyone who needs it!
You can access the repository through
.&lt;/p&gt;
&lt;p&gt;Our goal is for the documents of this course to be reviewed and improved by the teaching assistants of that semester each year, and ultimately become a dynamic resource for the students of this course, and anyone who wants to learn Java and object-oriented programming.&lt;/p&gt;
&lt;p&gt;I would like to thank the professors of this course, Dr. Mehdi Ghatee and Dr. Behnam Yousefimehr, for giving us the opportunity to do all of these. I am also grateful to the last year&amp;rsquo;s teaching assistants for helping us with our planning, especially Parsa Khadem and Sina Moradi, who were always present and we could get advice from them wherever we had problems.
But all of this would not have been possible without our team, and in the last semester, a team of 20 undergraduate students was involved in this process, and without their efforts, none of these tasks would have been done. I would like to thank Arman Hosseini, Amir Mohammad Zaker, Amin Rezaeimehr, Ilya Asadi, Parya Ashabi, Sam Ghorbani, Sania Ezzati, Shahabuddin Garevani, Saleh Mollazadeh, Ali Tofighi, Fatemeh Vaziri, Kiana Pahlavan, Kiana Razavi, Mohammad Hossein Hashemi, Mohammadreza Sheikholeslami, Mehdi Jafari, Nastaran Afsari, Hooman Hamidipour, and Younes Kazemi for all their hard work this semester.&lt;/p&gt;</description></item><item><title>DAI DAY 2025</title><link>https://pedram-ep.github.io/portfolio/blog/dai-day-2025/</link><pubDate>Sun, 09 Feb 2025 05:24:12 +0330</pubDate><guid>https://pedram-ep.github.io/portfolio/blog/dai-day-2025/</guid><description>&lt;p&gt;We proudly passed the second event of the Artificial Intelligence and Data Mining Day of Amirkabir University of Technology (DAI-DAY 2025)!&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="5"
srcset="https://pedram-ep.github.io/portfolio/blog/dai-day-2025/DAI-DAY-2025-5_hu_458c8be39404cc93.webp 320w, https://pedram-ep.github.io/portfolio/blog/dai-day-2025/DAI-DAY-2025-5_hu_d76b23a888ef1940.webp 480w, https://pedram-ep.github.io/portfolio/blog/dai-day-2025/DAI-DAY-2025-5_hu_3f8bf1fdd6ebf674.webp 537w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://pedram-ep.github.io/portfolio/blog/dai-day-2025/DAI-DAY-2025-5_hu_458c8be39404cc93.webp"
width="537"
height="760"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;This scientific gathering was a unique opportunity for interaction between students, professors, and experts in the field of artificial intelligence and data mining.
As the secretary of the Student Scientific Association of Mathematics and Computer Science and one of head executive managers of this event, I sincerely thank all the dear ones who attended this event, gave speeches, shared their valuable experiences, and participated in scientific discussions. We are also grateful to the hardworking executive team and sponsor of the event, Datin Company, who were by our side to make this event the best possible event.&lt;/p&gt;
&lt;p&gt;Hoping for more scientific events and broader interaction between the university and industry!&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="1"
srcset="https://pedram-ep.github.io/portfolio/blog/dai-day-2025/DAI-DAY-2025-1_hu_18bfd008ada6bc4e.webp 320w, https://pedram-ep.github.io/portfolio/blog/dai-day-2025/DAI-DAY-2025-1_hu_c3eb8d52d5a7d87c.webp 480w, https://pedram-ep.github.io/portfolio/blog/dai-day-2025/DAI-DAY-2025-1_hu_7d72b3238443c846.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://pedram-ep.github.io/portfolio/blog/dai-day-2025/DAI-DAY-2025-1_hu_18bfd008ada6bc4e.webp"
width="760"
height="506"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="2"
srcset="https://pedram-ep.github.io/portfolio/blog/dai-day-2025/DAI-DAY-2025-2_hu_c9a512fc9eeef6df.webp 320w, https://pedram-ep.github.io/portfolio/blog/dai-day-2025/DAI-DAY-2025-2_hu_37b5cd8251ff168d.webp 480w, https://pedram-ep.github.io/portfolio/blog/dai-day-2025/DAI-DAY-2025-2_hu_9a2206e646e3a230.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://pedram-ep.github.io/portfolio/blog/dai-day-2025/DAI-DAY-2025-2_hu_c9a512fc9eeef6df.webp"
width="760"
height="506"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="3"
srcset="https://pedram-ep.github.io/portfolio/blog/dai-day-2025/DAI-DAY-2025-3_hu_1107a07d482a1e88.webp 320w, https://pedram-ep.github.io/portfolio/blog/dai-day-2025/DAI-DAY-2025-3_hu_c77d68eecb03cdf.webp 480w, https://pedram-ep.github.io/portfolio/blog/dai-day-2025/DAI-DAY-2025-3_hu_ef6f8b03032e1350.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://pedram-ep.github.io/portfolio/blog/dai-day-2025/DAI-DAY-2025-3_hu_1107a07d482a1e88.webp"
width="760"
height="506"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>Analysis and Classification of NF-ToN-IoT-V2 Dataset</title><link>https://pedram-ep.github.io/portfolio/mini-projects/nf-ton-iot-v2/</link><pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate><guid>https://pedram-ep.github.io/portfolio/mini-projects/nf-ton-iot-v2/</guid><description/></item><item><title>Comparison of UMAP Variants for Dimension Reduction</title><link>https://pedram-ep.github.io/portfolio/mini-projects/umap-variants/</link><pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate><guid>https://pedram-ep.github.io/portfolio/mini-projects/umap-variants/</guid><description/></item><item><title>Graph Clustering and Link Prediction</title><link>https://pedram-ep.github.io/portfolio/mini-projects/karate-club-clustering/</link><pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate><guid>https://pedram-ep.github.io/portfolio/mini-projects/karate-club-clustering/</guid><description/></item><item><title>Learning Neural Networks</title><link>https://pedram-ep.github.io/portfolio/projects/learning-neural-networks/</link><pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate><guid>https://pedram-ep.github.io/portfolio/projects/learning-neural-networks/</guid><description>&lt;p&gt;A collection of all projects and mini-projects I&amp;rsquo;ve developed in the field of neural networks. These projects were done with the goal of gaining more knowledge in the neural networks field, starting from MLP and moving towards more complex neural networks, eventually focusing on deep learning models such as CNNs and GNNs.&lt;/p&gt;</description></item><item><title>Patch-based Image Denoising via Higher Order SVD</title><link>https://pedram-ep.github.io/portfolio/projects/hosvd-image-denoising/</link><pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate><guid>https://pedram-ep.github.io/portfolio/projects/hosvd-image-denoising/</guid><description>&lt;p&gt;A near complete implementation of the method in the paper &amp;ldquo;Image Denoising using the Higher Order Singular Value Decomposition&amp;rdquo;. This project uses the Python language and vast libraries to apply this algorithm for grayscale images, and evaluates it by applying the method on the dataset &amp;ldquo;CBSD68&amp;rdquo; and calculating different image-difference scores.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;This project a Python implementation of patch-based image denoising using Higher Order Singular Value Decomposition (HOSVD), based on the method introduced in:&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&lt;strong&gt;&amp;ldquo;Image Denoising using the Higher Order Singular Value Decomposition&amp;rdquo;&lt;/strong&gt;&lt;br&gt;
Ajit Rajwade, Anand Rangarajan, and Arunava Banerjee.&lt;br&gt;
&lt;em&gt;IEEE Transactions on Pattern Analysis and Machine Intelligence&lt;/em&gt;, 2013.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p align="center"&gt;
&lt;img src="results/figures/image-00-results-cropped.png?raw=true" alt="Denoising example" width="600"&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="methodology"&gt;Methodology&lt;/h2&gt;
&lt;p&gt;The algorithm works by:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Partitioning images into overlapping 8×8 patches&lt;/li&gt;
&lt;li&gt;Grouping similar patches using spiral window search&lt;/li&gt;
&lt;li&gt;Constructing 3D tensors for each patch group&lt;/li&gt;
&lt;li&gt;Applying HOSVD decomposition&lt;/li&gt;
&lt;li&gt;Thresholding core tensor values (hard threshold at τ = σ√(s²K))&lt;/li&gt;
&lt;li&gt;Reconstructing denoised patches&lt;/li&gt;
&lt;li&gt;Aggregating patches with averaging&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;Note: Implementation is optimized for grayscale images and omits the Wiener filtering step from the original paper&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="evaluation-metrics"&gt;Evaluation Metrics&lt;/h2&gt;
&lt;p&gt;We used seven metrics to evaluate denoising performance on the CBSD68 dataset:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Formula&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Ideal Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;MSE&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$\frac{1}{MN}\sum_{i=0}^{M-1}\sum_{j=0}^{N-1}[I(i,j)-K(i,j)]^2$&lt;/td&gt;
&lt;td&gt;Mean Squared Error&lt;/td&gt;
&lt;td&gt;Lower is better&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;RMSE&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$\sqrt{\text{MSE}}$&lt;/td&gt;
&lt;td&gt;Root Mean Squared Error&lt;/td&gt;
&lt;td&gt;Lower is better&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;MAE&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$\frac{1}{MN}\sum_{i=0}^{M-1}\sum_{j=0}^{N-1}\|I(i,j)-K(i,j)\|$&lt;/td&gt;
&lt;td&gt;Mean Absolute Error&lt;/td&gt;
&lt;td&gt;Lower is better&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;PSNR&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$10 \cdot \log_{10}\left(\frac{L^2_{\max}}{\text{MSE}}\right)$&lt;/td&gt;
&lt;td&gt;Peak Signal-to-Noise Ratio&lt;/td&gt;
&lt;td&gt;Higher is better&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SSIM&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$\frac{(2\mu_x\mu_y + c_1)(2\sigma_{xy} + c_2)}{(\mu_x^2 + \mu_y^2 + c_1)(\sigma_x^2 + \sigma_y^2 + c_2)}$&lt;/td&gt;
&lt;td&gt;Structural Similarity Index&lt;/td&gt;
&lt;td&gt;Closer to 1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;NRMSE&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$\frac{\sqrt{\frac{1}{N}\sum_{i=1}^N(x_i - y_i)^2}}{\text{median}(\|x\|)}$&lt;/td&gt;
&lt;td&gt;Normalized RMSE&lt;/td&gt;
&lt;td&gt;Lower is better&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;UQI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$\frac{4\sigma_{xy}\bar{x}\bar{y}}{(\sigma_x^2 + \sigma_y^2)(\bar{x}^2 + \bar{y}^2)}$&lt;/td&gt;
&lt;td&gt;Universal Quality Index&lt;/td&gt;
&lt;td&gt;Closer to 1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="references"&gt;References&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Rajwade, A., Rangarajan, A., &amp;amp; Banerjee, A. (2013). &amp;ldquo;&lt;em&gt;Image Denoising using the Higher Order Singular Value Decomposition&lt;/em&gt;&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;Feschet, F. (2019). “&lt;em&gt;Implementation of a denoising algorithm based on High‑Order Singular Value Decomposition of tensors&lt;/em&gt;”&lt;/li&gt;
&lt;li&gt;Guo, J., Chen, H., Shen, Z., and Wang, Z. (2022). “&lt;em&gt;Image denoising based on global image similar patches searching and HOSVD to patches tensor&lt;/em&gt;”&lt;/li&gt;
&lt;li&gt;Wang, Z., and Bovik, A. C. (2002). “&lt;em&gt;A universal image quality index&lt;/em&gt;”&lt;/li&gt;
&lt;li&gt;Wang, Z., Bovik, A. C., Sheikh, H. R., and Simoncelli, E. P., “&lt;em&gt;Image quality assessment: From error visibility to structural similarity&lt;/em&gt;”&lt;/li&gt;
&lt;li&gt;CBSD68‑dataset: Color BSD68 dataset for image denoising benchmarks. Available at:
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Primal-Dual Calculator with GUI</title><link>https://pedram-ep.github.io/portfolio/mini-projects/primal-dual-calculator/</link><pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate><guid>https://pedram-ep.github.io/portfolio/mini-projects/primal-dual-calculator/</guid><description/></item><item><title>Simple Clustering on News Articles Passage</title><link>https://pedram-ep.github.io/portfolio/mini-projects/bbc-news-topic-modeling/</link><pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate><guid>https://pedram-ep.github.io/portfolio/mini-projects/bbc-news-topic-modeling/</guid><description/></item><item><title>Skip List Implementation</title><link>https://pedram-ep.github.io/portfolio/mini-projects/skip-list/</link><pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate><guid>https://pedram-ep.github.io/portfolio/mini-projects/skip-list/</guid><description/></item><item><title>Khayyam Turing 1403</title><link>https://pedram-ep.github.io/portfolio/blog/khayyam-turing-1403/</link><pubDate>Fri, 20 Dec 2024 12:07:03 +0330</pubDate><guid>https://pedram-ep.github.io/portfolio/blog/khayyam-turing-1403/</guid><description>&lt;p&gt;Had the honor of serving as Co-Executive Head for Khayyam Turing 2024! 🎉
As the head of the 18th Student Scientific Chapter of AUT-MCS and one of two Co-Executive Heads of this event, I had the privilege of working with a team of over 50 passionate and dedicated students for several weeks. Bringing this annual event to life and witnessing more than 600 participants engage with the activities we organized was truly an unforgettable experience.
A heartfelt thank you to everyone who participated, supported, or contributed to making this event a success. Your enthusiasm and engagement were the driving forces behind Khayyam Turing 2024’s success.&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Poster"
srcset="https://pedram-ep.github.io/portfolio/blog/khayyam-turing-1403/poster_hu_9829fdaef3c1a62c.webp 320w, https://pedram-ep.github.io/portfolio/blog/khayyam-turing-1403/poster_hu_2f8e50af51c2d869.webp 480w, https://pedram-ep.github.io/portfolio/blog/khayyam-turing-1403/poster_hu_73dbf69ce53960aa.webp 536w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://pedram-ep.github.io/portfolio/blog/khayyam-turing-1403/poster_hu_9829fdaef3c1a62c.webp"
width="536"
height="760"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Panorama"
srcset="https://pedram-ep.github.io/portfolio/blog/khayyam-turing-1403/festival-panorama_hu_b5545c7aad25aa80.webp 320w, https://pedram-ep.github.io/portfolio/blog/khayyam-turing-1403/festival-panorama_hu_849025c32630ecb7.webp 480w, https://pedram-ep.github.io/portfolio/blog/khayyam-turing-1403/festival-panorama_hu_c557990df44a533a.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://pedram-ep.github.io/portfolio/blog/khayyam-turing-1403/festival-panorama_hu_b5545c7aad25aa80.webp"
width="760"
height="260"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>Example Talk: Recent Work</title><link>https://pedram-ep.github.io/portfolio/slides/example/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>https://pedram-ep.github.io/portfolio/slides/example/</guid><description>&lt;!-- no-branding --&gt;
&lt;h1 id="example-talk"&gt;Example Talk&lt;/h1&gt;
&lt;h3 id="dr-alex-johnson--meta-ai"&gt;Dr. Alex Johnson · Meta AI&lt;/h3&gt;
&lt;hr&gt;
&lt;h2 id="research-overview"&gt;Research Overview&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Multimodal LLMs&lt;/li&gt;
&lt;li&gt;Efficient training&lt;/li&gt;
&lt;li&gt;Responsible AI&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="code--math"&gt;Code &amp;amp; Math&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;score&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;$$
E = mc^2
$$&lt;hr&gt;
&lt;h2 id="dual-column-layout"&gt;Dual Column Layout&lt;/h2&gt;
&lt;div class="r-hstack"&gt;
&lt;div style="flex: 1; padding-right: 1rem;"&gt;
&lt;h3 id="left-column"&gt;Left Column&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Point A&lt;/li&gt;
&lt;li&gt;Point B&lt;/li&gt;
&lt;li&gt;Point C&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style="flex: 1; padding-left: 1rem;"&gt;
&lt;h3 id="right-column"&gt;Right Column&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Detail 1&lt;/li&gt;
&lt;li&gt;Detail 2&lt;/li&gt;
&lt;li&gt;Detail 3&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;!-- Alternative: Asymmetric columns --&gt;
&lt;div style="display: flex; gap: 2rem;"&gt;
&lt;div style="flex: 2;"&gt;
&lt;h3 id="main-content-23-width"&gt;Main Content (2/3 width)&lt;/h3&gt;
&lt;p&gt;This column takes up twice the space of the right column.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;example&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;code works too&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div style="flex: 1;"&gt;
&lt;h3 id="sidebar-13-width"&gt;Sidebar (1/3 width)&lt;/h3&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;br&gt;
Key points in smaller column&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2 id="image--text-layout"&gt;Image + Text Layout&lt;/h2&gt;
&lt;div class="r-hstack" style="align-items: center;"&gt;
&lt;div style="flex: 1;"&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img src="https://images.unsplash.com/photo-1708011271954-c0d2b3155ded?w=400&amp;amp;dpr=2&amp;amp;h=400&amp;amp;auto=format&amp;amp;fit=crop&amp;amp;q=60&amp;amp;ixid=M3wxMjA3fDB8MXxzZWFyY2h8MTh8fG1hdGhlbWF0aWNzfGVufDB8fHx8MTc2NTYzNTEzMHww&amp;amp;ixlib=rb-4.1.0" alt="" loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div style="flex: 1; padding-left: 2rem;"&gt;
&lt;h3 id="results"&gt;Results&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;95% accuracy&lt;/li&gt;
&lt;li&gt;10x faster inference&lt;/li&gt;
&lt;li&gt;Lower memory usage&lt;/li&gt;
&lt;/ul&gt;
&lt;span class="fragment " &gt;
&lt;strong&gt;Breakthrough!&lt;/strong&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2 id="speaker-notes"&gt;Speaker Notes&lt;/h2&gt;
&lt;p&gt;Press &lt;strong&gt;S&lt;/strong&gt; to open presenter view with notes!&lt;/p&gt;
&lt;p&gt;This slide has hidden speaker notes below.&lt;/p&gt;
&lt;p&gt;Note:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;This is a &lt;strong&gt;speaker note&lt;/strong&gt; (only visible in presenter view)&lt;/li&gt;
&lt;li&gt;Press &lt;code&gt;S&lt;/code&gt; key to open presenter console&lt;/li&gt;
&lt;li&gt;Perfect for remembering key talking points&lt;/li&gt;
&lt;li&gt;Can include reminders, timing, references&lt;/li&gt;
&lt;li&gt;Supports &lt;strong&gt;Markdown&lt;/strong&gt; formatting too!&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="progressive-reveals"&gt;Progressive Reveals&lt;/h2&gt;
&lt;p&gt;Content appears step-by-step:&lt;/p&gt;
&lt;span class="fragment " &gt;
First point appears
&lt;/span&gt;
&lt;span class="fragment " &gt;
Then the second point
&lt;/span&gt;
&lt;span class="fragment " &gt;
Finally the conclusion
&lt;/span&gt;
&lt;span class="fragment highlight-red" &gt;
This one can be &lt;strong&gt;highlighted&lt;/strong&gt;!
&lt;/span&gt;
&lt;p&gt;Note:
Use fragments to control pacing and maintain audience attention. Each fragment appears on click.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="diagrams-with-mermaid"&gt;Diagrams with Mermaid&lt;/h2&gt;
&lt;div class="mermaid"&gt;graph LR
A[Research Question] --&gt; B{Hypothesis}
B --&gt;|Valid| C[Experiment]
B --&gt;|Invalid| D[Revise]
C --&gt; E[Analyze Data]
E --&gt; F{Significant?}
F --&gt;|Yes| G[Publish]
F --&gt;|No| D
&lt;/div&gt;
&lt;p&gt;Perfect for: Workflows, architectures, processes&lt;/p&gt;
&lt;p&gt;Note:
Mermaid diagrams are created from simple text. They&amp;rsquo;re version-controllable and edit anywhere!&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="research-results"&gt;Research Results&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Accuracy&lt;/th&gt;
&lt;th&gt;Speed&lt;/th&gt;
&lt;th&gt;Memory&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Baseline&lt;/td&gt;
&lt;td&gt;87.3%&lt;/td&gt;
&lt;td&gt;1.0x&lt;/td&gt;
&lt;td&gt;2GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ours (v1)&lt;/td&gt;
&lt;td&gt;92.1%&lt;/td&gt;
&lt;td&gt;1.5x&lt;/td&gt;
&lt;td&gt;1.8GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Ours (v2)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;95.8%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;2.3x&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;1.2GB&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&lt;strong&gt;Key Finding:&lt;/strong&gt; 8.5% improvement over baseline with 40% memory reduction&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Note:
Tables are perfect for comparative results. Markdown tables are simple and version-control friendly.&lt;/p&gt;
&lt;hr&gt;
&lt;section data-noprocess data-shortcode-slide
data-background-color="#1e3a8a"
&gt;
&lt;h2 id="custom-backgrounds"&gt;Custom Backgrounds&lt;/h2&gt;
&lt;p&gt;This slide has a &lt;strong&gt;blue background&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;You can customize:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Background colors&lt;/li&gt;
&lt;li&gt;Background images&lt;/li&gt;
&lt;li&gt;Gradients&lt;/li&gt;
&lt;li&gt;Videos (yes, really!)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Use &lt;code&gt;{{&amp;lt; slide background-color=&amp;quot;#hex&amp;quot; &amp;gt;}}&lt;/code&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="vertical-navigation"&gt;Vertical Navigation&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;There&amp;rsquo;s more content below! ⬇️&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Press the &lt;strong&gt;Down Arrow&lt;/strong&gt; to see substeps.&lt;/p&gt;
&lt;p&gt;Note:
This demonstrates Reveal.js&amp;rsquo;s vertical slide feature. Great for optional details or deep dives.&lt;/p&gt;
&lt;hr&gt;
&lt;section data-noprocess data-shortcode-slide
id="substep-1"
&gt;
&lt;h3 id="substep-1-details"&gt;Substep 1: Details&lt;/h3&gt;
&lt;p&gt;This is additional content in a vertical stack.&lt;/p&gt;
&lt;p&gt;Navigate down for more, or right to skip to next topic →&lt;/p&gt;
&lt;hr&gt;
&lt;section data-noprocess data-shortcode-slide
id="substep-2"
&gt;
&lt;h3 id="substep-2-more-details"&gt;Substep 2: More Details&lt;/h3&gt;
&lt;p&gt;Even more detailed information.&lt;/p&gt;
&lt;p&gt;Press &lt;strong&gt;Up Arrow&lt;/strong&gt; to go back, or &lt;strong&gt;Right Arrow&lt;/strong&gt; to continue.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="citations--quotes"&gt;Citations &amp;amp; Quotes&lt;/h2&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&amp;ldquo;The best way to predict the future is to invent it.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;— Alan Kay&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Or reference research:&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;Recent work by Smith et al. (2024) demonstrates that Markdown-based slides improve reproducibility by 78% compared to proprietary formats&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="media-youtube-videos"&gt;Media: YouTube Videos&lt;/h2&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/dQw4w9WgXcQ?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;Note:
Embed YouTube videos with just the video ID. Perfect for demos, tutorials, or interviews.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="media-all-options"&gt;Media: All Options&lt;/h2&gt;
&lt;p&gt;Embed various media types with simple shortcodes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;YouTube&lt;/strong&gt;: &lt;code&gt;{{&amp;lt; youtube VIDEO_ID &amp;gt;}}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bilibili&lt;/strong&gt;: &lt;code&gt;{{&amp;lt; bilibili id=&amp;quot;BV1...&amp;quot; &amp;gt;}}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Local videos&lt;/strong&gt;: &lt;code&gt;{{&amp;lt; video src=&amp;quot;file.mp4&amp;quot; controls=&amp;quot;yes&amp;quot; &amp;gt;}}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Audio&lt;/strong&gt;: &lt;code&gt;{{&amp;lt; audio src=&amp;quot;file.mp3&amp;quot; &amp;gt;}}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Perfect for demos, interviews, tutorials, or podcasts!&lt;/p&gt;
&lt;p&gt;Note:
All media types work seamlessly in slides. Just use the appropriate shortcode.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="interactive-elements"&gt;Interactive Elements&lt;/h2&gt;
&lt;p&gt;Try these keyboard shortcuts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;→&lt;/code&gt; &lt;code&gt;←&lt;/code&gt; : Navigate slides&lt;/li&gt;
&lt;li&gt;&lt;code&gt;↓&lt;/code&gt; &lt;code&gt;↑&lt;/code&gt; : Vertical navigation&lt;/li&gt;
&lt;li&gt;&lt;code&gt;S&lt;/code&gt; : Speaker notes&lt;/li&gt;
&lt;li&gt;&lt;code&gt;F&lt;/code&gt; : Fullscreen&lt;/li&gt;
&lt;li&gt;&lt;code&gt;O&lt;/code&gt; : Overview mode&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/&lt;/code&gt; : Search&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ESC&lt;/code&gt; : Exit modes&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;!-- hide --&gt;
&lt;h2 id="hidden-slide-demo-inline-comment"&gt;Hidden Slide Demo (Inline Comment)&lt;/h2&gt;
&lt;p&gt;This slide is hidden using the &lt;code&gt;&amp;lt;!-- hide --&amp;gt;&lt;/code&gt; comment method.&lt;/p&gt;
&lt;p&gt;Perfect for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Speaker-only content&lt;/li&gt;
&lt;li&gt;Backup slides&lt;/li&gt;
&lt;li&gt;Work-in-progress content&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note:
This slide won&amp;rsquo;t appear in the presentation but remains in source for reference.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="thanks"&gt;Thanks&lt;/h2&gt;
&lt;h3 id="questions"&gt;Questions?&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;🌐 Website:
&lt;/li&gt;
&lt;li&gt;🐦 X/Twitter:
&lt;/li&gt;
&lt;li&gt;💬 Discord:
&lt;/li&gt;
&lt;li&gt;⭐ GitHub:
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;All slides created with Markdown&lt;/strong&gt; • No vendor lock-in • Edit anywhere&lt;/p&gt;
&lt;p&gt;Note:
Thank you for your attention! Feel free to reach out with questions or contributions.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="-branding-your-slides"&gt;🎨 Branding Your Slides&lt;/h2&gt;
&lt;p&gt;Add your identity to every slide with simple configuration!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What you can add:&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Element&lt;/th&gt;
&lt;th&gt;Position Options&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Logo&lt;/td&gt;
&lt;td&gt;top-left, top-right, bottom-left, bottom-right&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Title&lt;/td&gt;
&lt;td&gt;Same as above&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Author&lt;/td&gt;
&lt;td&gt;Same as above&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Footer Text&lt;/td&gt;
&lt;td&gt;Same + bottom-center&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Edit the &lt;code&gt;branding:&lt;/code&gt; section in your slide&amp;rsquo;s front matter (top of file).&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="-adding-your-logo"&gt;📁 Adding Your Logo&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Place your logo in &lt;code&gt;assets/media/&lt;/code&gt; folder&lt;/li&gt;
&lt;li&gt;Use SVG format for best results (auto-adapts to any theme!)&lt;/li&gt;
&lt;li&gt;Add to front matter:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;branding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;logo&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;your-logo.svg&amp;#34;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# Must be in assets/media/&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;top-right&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;60px&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; SVGs with &lt;code&gt;fill=&amp;quot;currentColor&amp;quot;&lt;/code&gt; automatically match theme colors!&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="-title--author-overlays"&gt;📝 Title &amp;amp; Author Overlays&lt;/h2&gt;
&lt;p&gt;Show presentation title and/or author on every slide:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;branding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;show&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;bottom-left&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;text&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Short Title&amp;#34;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# Optional: override long page title&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;author&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;show&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;bottom-right&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Author is auto-detected from page front matter (&lt;code&gt;author:&lt;/code&gt; or &lt;code&gt;authors:&lt;/code&gt;).&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="-footer-text"&gt;📄 Footer Text&lt;/h2&gt;
&lt;p&gt;Add copyright, conference name, or any persistent text:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;branding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;footer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;text&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;© 2024 Your Name · ICML 2024&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;bottom-center&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Supports Markdown! Use &lt;code&gt;[Link](url)&lt;/code&gt; for clickable links.&lt;/p&gt;
&lt;hr&gt;
&lt;!-- no-branding --&gt;
&lt;h2 id="-hiding-branding-per-slide"&gt;🔇 Hiding Branding Per-Slide&lt;/h2&gt;
&lt;p&gt;Sometimes you want a clean slide (title slides, full-screen images).&lt;/p&gt;
&lt;p&gt;Add this comment at the &lt;strong&gt;start&lt;/strong&gt; of your slide content:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;&amp;lt;!-- no-branding --&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## My Clean Slide
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Content here...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;☝️ &lt;strong&gt;This slide uses &lt;code&gt;&amp;lt;!-- no-branding --&amp;gt;&lt;/code&gt;&lt;/strong&gt; — notice no logo or overlays!&lt;/p&gt;
&lt;hr&gt;
&lt;!-- no-header --&gt;
&lt;h2 id="-selective-hiding"&gt;🔇 Selective Hiding&lt;/h2&gt;
&lt;p&gt;Hide just the header (logo + title):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;&amp;lt;!-- no-header --&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Or just the footer (author + footer text):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;&amp;lt;!-- no-footer --&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;☝️ &lt;strong&gt;This slide uses &lt;code&gt;&amp;lt;!-- no-header --&amp;gt;&lt;/code&gt;&lt;/strong&gt; — footer still visible below!&lt;/p&gt;
&lt;hr&gt;
&lt;!-- no-footer --&gt;
&lt;h2 id="-quick-reference"&gt;✅ Quick Reference&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Comment&lt;/th&gt;
&lt;th&gt;Hides&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;!-- no-branding --&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Everything (logo, title, author, footer)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;!-- no-header --&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Logo + Title overlay&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;!-- no-footer --&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Author + Footer text&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;☝️ &lt;strong&gt;This slide uses &lt;code&gt;&amp;lt;!-- no-footer --&amp;gt;&lt;/code&gt;&lt;/strong&gt; — logo still visible above!&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="-get-started"&gt;🚀 Get Started&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Copy this example&amp;rsquo;s front matter as a starting point&lt;/li&gt;
&lt;li&gt;Replace logo with yours in &lt;code&gt;assets/media/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Customize positions and text&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;&amp;lt;!-- no-branding --&amp;gt;&lt;/code&gt; for special slides&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Pro tip:&lt;/strong&gt; Set site-wide defaults in &lt;code&gt;config/_default/params.yaml&lt;/code&gt; under &lt;code&gt;slides.branding&lt;/code&gt;!&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;Smith, J. et al. (2024). &lt;em&gt;Open Science Presentations&lt;/em&gt;. Nature Methods.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Experience</title><link>https://pedram-ep.github.io/portfolio/experience/</link><pubDate>Tue, 24 Oct 2023 00:00:00 +0000</pubDate><guid>https://pedram-ep.github.io/portfolio/experience/</guid><description/></item></channel></rss>