Skip to content

velcroapple/APL

Repository files navigation

APL – Algorithmic Problem Solving

This repository contains implementations of algorithmic systems developed as part of coursework (Applied Programming Lab, IIT MADRAS).

Repository Structure

Assignment 2 – Climate Data Analysis Toolkit

A modular temperature analysis engine capable of:

  • Detecting extremes
  • Seasonal trend extraction
  • Decadal comparisons
  • Moving average trend analysis
  • Similarity detection across cities

Implements efficient single-pass aggregation for large datasets.


Assignment 3 – Keyboard Layout Optimisation

Simulated annealing-based layout optimization system.

Explores:

  • Temperature scheduling effects
  • Iteration sensitivity
  • Cost convergence behaviour

Demonstrates stochastic search for real-world optimization problems.


Assignment 4 – Digital Circuit Dependency Resolver

Implements ordered gate evaluation using dependency tracking.

Key ideas:

  • Graph-based evaluation ordering
  • Known-set propagation
  • Detection of cyclic dependencies
  • One-time scheduling for efficient simulation

This avoids recursive evaluation at runtime and improves execution efficiency.


Performance Work

Matrix computation benchmarking using:

  • Pure Python
  • Cython (multiple optimization levels)
  • NumPy

Includes speedup analysis and scaling behaviour across matrix sizes.


Skills

Across these implementations, the recurring focus is:

  • Efficiency
  • Ordering problems
  • Optimization under constraints
  • Graph-like dependency systems

Author

github.com/velcroapple/

About

Applied Programming Lab Codes

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors