- Notifications
You must be signed in to change notification settings - Fork0
The "really" small subset of courses I took at IIIT Hyderabad.
License
iiithf/iiithf.github.io
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
The "really" small subset of courses I took at IIIT Hyderabad.
- 🕸️Research activities (RA)
- 🚂Queuing Theory (part of ACN)
- 🌐Advanced Computer Networks (ACN)
- 👥Concurrent Data Structures (CDS)
- ⛱️Software Foundations (SF)
- 💻Advanced Computer Architecture (ACA)
- 📊Optimization Methods (OM)
- ⚙️Compilers
- 📖Principles of Programmng Languages (PoPL)
- 🖊️Discrete Mathematics and Algorithms (DMA)
- 📻Distributed Systems (DS)
- SIR Model, Disease Modelling, Epidemiology
- Medical organizations, USA and India
- Nonblocking k-compare-single-swap
- Concurrency in Distributed Systems, Leslie Lamport papers
- DDR, GDDR, HBM SDRAM Memory
- WAN for File sharing, Energy & Gas metering, Fire alarm, Burglar security between 1 Village & 2 Apartments
- LAN Design for Golf View Apartments
- Distance Vector Multicast Routing Protocol (DVMRP)
- Submarine cables, Indian Perspective
- Internet Hierarchy, APNIC
- Request For Comments (RFC)
At IIIT Hyderabad, I take courses focusing on the systems side. These include Concurrent Data Structures (CDS), Advanced Computer Networks (ACN), Independent Study (IS), Advanced Computer Architecture (ACA), Software Foundations (SF), Optimizations Methods (OM), Compilers, Principles of Programming Languages (PoPL), Discrete Maths and Algorithms (DMA), Distributed Systems (DS), Software Engineering (SF), and Internals of Application Servers (IAS).
In the courseConcurrent Data Structures (CDS) taught by late Prof. R. Govindarajulu; I implementk-compare single-swap (KCSS) - an extension of CAS that enables atomically checking multiple addresses before making an update - as thecourse project, in Java. It is based on the paper"Nonblocking k-compare-single-swap" by V. Luchangco, M. Moir, and N. Shavit. As a part of course requirement, Ipresent on"DDR, GDDR, HBM SDRAM Memory","Concurrency in Distributed Systems, Leslie Lamport papers", and"Nonblocking k-compare-single-swap". We also do a lot ofexercises - these were optional, but I enjoy them. These includemutual exclusion problems and solutions, such as,Sleeping Barber Problem,Dining Philosopher Problem,Dekker's Algorithm,Peterson's Algorithm,Bakery Algorithm,Semaphore, and aMonitor;locks for synchronization, such as,Simple Reentrant Lock,Simple Read Write Lock,FIFO Read Write Lock,TAS Lock,TTAS Lock,Backoff Lock,Array Lock,CLH Lock,MCS Lock, andBathroom Lock;concurrent data structures, such as,Locked Queue,Array Queue,Array Stack,Backoff Stack,Elimination Backoff Stack,Coarse Set,Fine Set, andOptimistic Set; data structures forsoftware combining, such asCombining Tree;balanced counting networks, such as,Bitonic Network andPeriodic Network; and a concurrent in-memorySavings Account.\ignore{During the course, we study the following research papers:"Nonblocking k-compare-single-swap","RISC-V offers simple, modular ISA","Real-world Concurrency","The Concurrency Challenge","Data Structures in the Multicore Age","Software and the Concurrency Revolution","Turing Lecture - The Computer Science of Concurrency - The Early Years", and"Solution of a Problem in Concurrent Programming Control".}
While studying the courseAdvanced Computer Networks (ACN), taken by Prof. Shatrunjay Rawat; Ram, Ravi and I design aLocal Area Network for Personal and Common Internet connections along with Security Cameras at Golf View Apartments, and aWide Area Network for File sharing, Energy & Gas metering, Fire alarm, Burglar security between 1 Village & 2 Apartments - as the course project. I also present on"Distance Vector Multicast Routing Protocol (DVMRP)","Submarine cables, Indian Perspective","Internet Hierarchy, APNIC", and"Request For Comments (RFC)", as a part of the requirements. We are also given assignments on reading RFCs, reading on CIDR, Farthest (Hop) traceroute, Switch comparision from various companies, and Firewall comparision from Cisco, Juniper, Checkpoint, Fortinet, Sophos, Barracuda, Sonicwall.
While doingIndependent Study (IS) ofInfectious Disease Modeling under the guidance of Prof. Kishore Kothapalli; I prepare presentations on"SIR Model, Disease Modelling, Epidemiology","Medical organizations, USA and India", and write an animated demo ofSIR Model simulation with Processing - a Java based graphical language and IDE. I also study C++, includingLvalues and Rvalues, and practice a number of CUDA programming examples, such as, queryingDevice Properties,Choosing a Device, computingVector Sum,Dot Product,Matrix Multiplication,Histogram, and measuringMemory Allocation Performance.
During the courseAdvanced Computer Architecture (ACA), taken by Prof. R. Govindarajulu; I write aturing-complete 32-bit CPU in VHDL with data movement, branch, arithmetic, and logical instructions. It follows the instruction format of Intel x86 processors, where each instruction takes 2 register operands and an optional immediate value. Like x86, this has 16 32-bit registers, a flag register, and an instruction pointer. The memory address is made to be 16-bit for simulation purposes. A program running on the CPU (a simulation/testbench) was able to compute factorial of integers.
In the courseSoftware Foundations (SF), by Prof. Venkatesh Chopella; I modelBalanced sliding window - a protocol used where reliable in-order delivery of packets is required (like TCP) - as a transition system, in Elm. Here, two communicating processesP
andQ
send packets to each other, through a channel.P
is considered to be the main sending process, andQ
is sending acknowledgements. Each process has a send and a recieve buffer, and the channel is thought of as having2
buffers (P → Q
,Q → P
). We also submit assignments ofbasic and induction based proofs on Coq - an interactive theorem prover, and modelMerge sort as a multi-stage transition system in Elm.
I also take the courseOptimization methods (OM) by Prof. C.V. Jawahar. As a part of the assignments, I write Python scripts to get introduced to the basic concepts ofGradient Descent; performSpectral Clustering - a graph-based data grouping algorithm; tryManifold Learning - an approach to non-linear dimensionality reduction; learndata visualization techniques, such as,Isomap,Locally linear embedding (LLE), andMulti-Dimensional Scaling (MDS); andEstimating COVID-19 new cases and unlockdown date.
While taking the courseCompilers, taken by Prof. Suresh Purini; I implement an LLVM based parser in C++ for aSimpler version of the BASIC programming language. It supports comments (with'
), numbers, strings, variables (with type suffix), expressions, single line IF-ELSE, multiline IF-ELSE-ElSE IF-END IF, FOR-NEXT, WHILE-WEND, DO WHILE-LOOP, and DO-LOOP UNTIL loops, SUB-END SUB subroutines and FUNCTION-END FUNCTION functions, and a number of in-built commands, such as, CLS, INPUT, PRINT, DIM, REDIM, EXIT FOR/WHILE/DO, OPEN, CLOSE, EOF, and LINE INPUT.
In the coursePrinciples of Programming Languages (PoPL) by Prof. Venkatesh Chopella; I implement anInterpreter that parses an S-expression to AST, and then evaluates the AST. We implement it in steps - supportingArithmetic,Lexical,Functional,Recursive, andStores (variables) in both Haskell and Racket - a Scheme-like programming language. We solve assignments for performing a number of operations onLists,S-Lists/Expressions, andTrees in Racket.
During taking the courseDistributed Systems (DS) by Prof. Kishore Kothapalli; I write Python scripts forUnit Conversion with gRPC server and client and forDisplaying who is logged in on remote server using gRPC. In the courseSoftware Engineering (SE) taught by Prof. Prof. Raghu Reddy; I improve upon an existingBowling Alley Management System (in Java). We also do in-class activities on the Design of an Automobile Maintenance Diagnostic System, and a Drawing Editor. While taking the courseInternals of Application Servers (IAS) managed by Prof. Ramesh Loganathan, I develop aBasic HTTP server; and aBasic FTP serverimplementation using sockets in Python. We later use these with Tensorflow and ZeroMQ to design an AI model running platform as a service.
During the Summer of 2019, I work with Prof. Vishal Garg as a part of his ongoing Smart metering project. Here, I learn about using the ESP32 microcontroller through a number ofExamples. These include usingFAT FS for file read/write,SPIFFS for file operations,Scan and log WiFi networks,WiFi access point setup,WiFi station setup,WiFi in AP and station mode with AP scanning,Internet time synchronization with NTP,Periodic alarm using timer group,Static website server in access point mode,Read temperature and humidity from SHT21 sensor,MQTT client for sending repeated messages, andSHT21 sensor with MQTT over WiFi.
The coursesDiscrete Mathematics and Algorithms (DMA) by Prof. Bapi Raju andQueuing Theory (QT) by Prof. Prof. Sujit Gujar (part of ACN) are purely theoretical. I also enjoy the onlineVirology course by Prof. Vincent Racaniello.
About
The "really" small subset of courses I took at IIIT Hyderabad.