Phone: 312-479-2594 (Cell)
Email: ashishgup@gmail.com
Home page:
http://www.cs.northwestern.edu/~agupta

Ashish Gupta

Academic Background


Northwestern
University, Evanston, IL

Phd:   Department of Computer Science (June 2004 - March 2008). PhD Adviser: Prof. Peter Dinda

Thesis TitleBlack Box Methods for Inferring Parallel Applications' Properties in Virtual Environments (defended March 2008)

Masters: Master of Science in Computer Science September (2002-June 2004)  GPA: 4.00/4.00

Indian Institute of Technology, New Delhi, India (IIT Delhi)

Bachelor of Technology in Computer Science and Engineering, July 1998 - May 2002.
Grade Point Average (CGPA): 9.04/10.00

Thesis Title: QoS Aware Path Protection Schemes for MPLS Networks, Advisor: Prof. B.N. Jain
Awards:
* Best Undergraduate Project Award and the ICIM Stay Ahead Award in Computer Science 2001-2002 for our Senior Thesis
* Ranked 5th in the Computer Science Department
* Ranked 10th nationally among 130,000 candidates appearing for the IIT Joint Entrance Examination in India.


Industry Experience


D.E.Shaw and Co.
(quantitative hedge fund based in Manhattan, NY) link


  • Software developer for quantitative Options trading strategies




Google Inc., Mountain View 
July  2006 - Nov 2006 with Deepak Jindal


  • Worked with AdSense Team to design and implement an algorithm to improve effectiveness of ad campaigns.
  • Development Platform: C++, MySQL, OS: Redhat Linux


Intel Research Labs, Cambridge, UK April 2006-June 2006 with Dr. Lukas Kencl, Intel Research

Low overhead Runtime Adaptation for Packet Search Trees to improve packet classification

  • Packet search trees are popular ways of understanding and classifying high speed traffic into different categories
  • We developed a space-optimal algorithm which can output the heaviest nodes in the tree using negligible space. We could identify top k nodes using only O(k) space independent of tree size. This is useful for understanding traffic characteristics. Also Developed a C Implementation of this algorithm for integration into a real Linux prototype.
  • We developed methods to optimize and modify the tree as to improve classification performance based on the input pattern. Using these techniques, we could achieve a speedup of up to 40%-50% for realistic traces for the purpose of packet classification.
  • Development Platform: Matlab/Windows, C++/Linux


Intel Research Labs, Pittsburgh June 2005-September 2005 with Dr. Padmanabhan Pillai, Intel Research

Design of Distributed Algorithms and Toolkit for Dynamical Physical Rendering: An extremely large scale distributed system

Project covered by New Scientist magazine as a
cover story .

  • DPR aims to render physical reality using real life millions of small modules which have the ability to compute, communicate and actuate around each other. The challenge is completely decentralized and scalable control of these modules to achieve coherent global behavior.
  • We developed new distributed algorithms and programming techniques to and then wrote a toolkit for writing high level applications for this system. Specifically I worked on various novel techniques to establish communication/coordination trees with termination detection, achieving atomic distributed actions over a set of independent entities, mutual distributed synchronization techniques, geometrical primitives to perform actions over a geometrical region, and many other decentralized algorithms. 
  • Over this toolkit, we successfully implemented an application which could achieve self reconfiguration into user-specified shapes using completely decentralized methods that are extremely scalable. We demonstrated that  typical hierarchy based approaches may not work for such a large scale system and identified a new hybrid paradigm consisting of deterministic and probabilistic control of the system at various levels. 
  • Implementation: Developed a distributed algorithms simulation and visualization framework (OpenGL based) in C++ which allowed implementation and testing of above-mentioned distributed techniques.
  • Development Platform: C++/Linux, OpenGL 3D Library


IBM Research Labs (New Delhi) (Summer 2001) with Dr. P.V. Kamesam , Research Scientist, IBM Watson Research Labs

Content Management and Large Scale Distributed Application Development in context of eGovernance & Security/Audit Management in Distributed Databases

  • Using IBM's Content Manager, I developed a new C++ API and middleware for special distributed data storage needs of eGov applications (distributed storage and replication) and then developed a prototype eGov application on top of it for national voter registration.
  • I then worked on the problem of managing Security/Audit Information in Distributed Database Systems (like eGovernment) and our team suggested a new scalable Architecture for the above problem and also worked on other issues like secure transfer and storage.
  • Development Platform: Visual C++/Windows, IBM's Content Manager DB

CS Research Publications


Research Interests: Distributed Systems, Distributed Information Retrieval,  Web Applications, Networking and Security

  • P. Dinda, G. Memik, R. Dick, B. Lin, A. Mallik, A. Gupta, S. Rossoff, The User In Experimental Computer Systems Research, Proceedings of the Workshop on Experimental Computer Science (ExpCS 2007)

  • Bin Lin, A. Gupta, Peter Dinda, Measuring, Understanding, and Exploiting Direct User Input In Resource Scheduling,  Journal paper in submission

  • Robert Schweller et al., Reversible Sketches: Enabling Monitoring and Analysis over High-speed Data Streams, Journal paper in IEEE/ACM Transactions on Networking, 2006.

  • Robert Schweller et al., Monitoring Flow-level High-speed Data Streams with Reversible Sketches, In Proceedings of IEEE INFOCOM 2006..

  • Ashish Gupta, Ananth Sundararaj, Marcia Zangrilli, Peter Dinda, Bruce B. Lowekamp, Free Network Measurement For Adaptive Virtualized Distributed Computing, In Proceedings of 20th IEEE International Parallel & Distributed Processing Symposium, 2006.

  • A. Sundararaj, A. Gupta, P. Dinda, Increasing Distributed Application Performance in Virtual Environments through Run-time Inference and Adaptation, In Proceedings of the 14th IEEE International Symposium on High Performance Distributed Computing (HPDC 2005)

  • Robert Schweller, Ashish Gupta, Elliot Parsons, Yan Chen, Reverse Hashing Algorithms for Sketch-based Change Detection on Highspeed Networks:, In Proceedings of ACM SIGCOMM Internet Measurement Conference, October 2004, Taormina, Sicily

  • A. Sundararaj, A. Gupta, P. Dinda, Dynamic Topology Adaptation of Virtual Networks of Virtual Machines for Increased Performance, Proceedings of the 7th Workshop on Languages, Compilers, and Run-time Systems for Scalable Computers, Houston, 2004

  • A. Gupta, P. Dinda, Inferring the Topology and Traffic Load of Parallel Programs Running In a Virtual Machine Environment, In Proceedings of the 10th Workshop on Job Scheduling Policies for Parallel Processing, June, 2004

  • A. Gupta, B. Lin, P. Dinda, Measuring And Understanding User Comfort With Resource Borrowing, In Proceedings of the 13th IEEE International Symposium on High Performance Distributed Computing (HPDC 2004), Honolulu, Hawaii

  • Ashish Gupta, Ashish Gupta, B.N. Jain, Satish Tripathi, QoS Aware Path Protection Schemes for MPLS Networks, In Proceedings of International Conference on Computer Communications, August 2002 (ICCC 2002)

Accepted Posters

  • Ashish Gupta, Peter Dinda, Fabian Bustamante, Distributed Popularity Indices, Poster Presentation at ACM SIGCOMM 2005, Philadelphia

  • Ashish Gupta, Manan Sanghi, Peter Dinda, Fabian Bustamante, Magnolia: a novel DHT architecture for Keyword based search, Poster Presentation at Network System Design and Implementation (NSDI 2005), Boston

  • Ashish Gupta et al., Free Network Measurement For Adaptive Virtualized Distributed Computing, Poster Presentation at Supercomputing 2005, Seattle

Conference Demonstrations ( Distributed Modular Robotics )

  • Burak Aksak et al., Claytronics: highly scalable communications, sensing, and actuation networks, In Proceedings of the 3rd International Conference on Embedded networked sensor systems, 2005, San Diego

Honors and Awards


Algorithm/Programming Contest Awards


  • Achieved 29th position internationally at the ACM-IBM International Collegiate Programming Contest World Finals among 2,200 competing teams from 70 countries, March 2001, Vancouver. Sole team selected from India.
    URL :
    http://icpc.baylor.edu/past/icpc2001/Finals/Standings.html
  • 2nd position among 70 teams in South Asia Regionals of ACM-IBM International Collegiate Programming Contest held at IIT Kanpur and were selected for the World Final, Dec 2000
    URL:
    http://decenturl.com/cs.northwestern/acm-iitkanpur, http://decenturl.com/cs.northwestern/iit-delhi-acm (mirrors)
  • Programming Excellence Award by Upsilon Pi Epsilon International Honor Society for Computing Sciences for participation in the ACM-IBM ICPC 2001 World Finals, March 2001
  • 2nd position in Bitwise: an Algorithm Intensive International Programming Contest organized by IIT Kharagpur, amongst 300 teams, Feb 2002
    URL:
    http://decenturl.com/cs.northwestern/bitwise-2002 (mirror)
  • 1st prize twice (during 1st year and 3rd year) in 'Software Programming Contest' in the All India Technical Festival (TRYST) organized by IIT Delhi (Feb 1999 and Feb 2002)
  • 2nd prize in OpenGL Game Development Contest, Computer Science Department, Northwestern University (Link)
  • Reached National levels twice (amongst top 8 in India) of All India High School Computer Programming Contest organized by Computer Society of India in class IX and X. (Feb 1995 and Feb 1996)


Research Related

  • Awarded Best Undergraduate Project Award in the Department of Computer Science, IIT Delhi for our Final Year Project: QoS Aware Path Protection Schemes in MPLS Networks, May 2002
  • Awarded the ICIM Stay Ahead Award for the best Undergraduate Final Year Project, IIT Delhi in Information Technology and Computing Sciences among Undergraduates, March 2002
  • Selected for the Summer Undergraduate Research Award after 2nd year at IIT. This is given to selected project proposals from various departments for encouraging research at UG level after a highly selective process, May 2000
  • One of my papers (Reversible Sketches for Efficient and Accurate Change Detection over Network Data Streams) was included as part of the "Cool System Ideas: Inspirations from Theory" course at Princeton University.
    URL:
    http://decenturl.com/cs.princeton/system-ideas
  • Selected for the Student Volunteer Program at Supercomputing 2004, the premier supercomputing expo and conference.( November 2004, Pittsburgh).

Academic Awards

  • All India Rank 10th among 130,000 students in JEE '98 (Joint Entrance Examination) for admission into Indian Institutes of Technology (IITs)
  • All India Rank 17th in Roorkee Engineering Exam, 3rd Rank in Common Engineering Test. and 9th Rank in Punjab Engineering Test (National Level Engineering Exams in India, conducted after High School)
  • Awarded the IIT Merit Award 3 times for being among top 7% in Department of Computer Science, IIT Delhi in 3rd year (2nd position) and 4th year (1st position).
  • Received 1st prize for topping D.A.V. College in High School, XI class (batch of 400 students)
  • Air Force Trophy for the "Best All Round Student" in School for excellence in academics and extracurricular activities
  • Co-curricular: Numerous prizes during my schooling and college, such as English writing, Quizzing, Special Distinction in Math and Computers.

Independent Projects and Media Honors

  • www.doubletrust.net, my first website, was featured in Businessweek as one of the web's best mash-ups in their article on the new revolution with web services. (July 25th, 2005, Special Annual Issue)
  • Same site was featured on ABCNews on TV as one of the "top three fun and useful sites of the week". (June 25th, 2005)

University Professional Experience (Development and Research)


Research Assistantship
with Prof. Peter Dinda, Computer Science Department, Northwestern University (Fall 2002 - present)


Magnolia : An Efficient P2P architecture for large scale web-like searches for P2P content

Magnolia is a system which provides keyword like query functionality for arbitrary content with very low latency and highly scalable load balancing properties. Apart from focus on latency/performance , it also features a decentralized architecture to provide ranking based on user access patterns to provide a relevant search list to the user, which is absent in P2P searches today. We are also building a Firefox toolbar to tag popular websites and rank sites based on user access which uses Magnolia as a backend.

Platform: C++/Linux, Perl

Virtuoso


URL: http://www.cs.northwestern.edu/~plab/Virtuoso


Imagine ordering a bunch of machines (or even a cluster) from a website and just start using them with a single click, within your browser. Virtuoso aims to leverage Virtual Machines and the distributed computing mechanisms to provide a new abstraction for computing. This infrastructure offers us unique opportunities for performance adaptation according to user�s needs. I have worked on automated application inference, which can automatically figure out the network/computational needs of a distributed application and then automatically adapt the underlying network and virtual machine placement to optimize performance and cost for the user as well as the providers. We have demonstrated that we can significantly boost application performance without any user intervention.

Platform: C++/Linux, Perl

Understanding and Measuring User Comfort with Resource Borrowing

URL: http://comfort.cs.northwestern.edu

How much of CPU, Memory and disk can be borrow (for useful computation like Folding@Home or Google Compute) from a typical machine without irritating the user? Our results suggest that more aggressive resource usage is possible, not just in screen saver mode, but all the time. This has many other interesting applications.. The results of our work could be applied in many different ways:

  • to enable applications like SETI@HOME and Folding@HOME to borrow resources more aggressively
    without invading users' comfort zone,
  • understanding resource requirements for several virtual machines located on a single host so that they
    feel like full machines,
  • inspire design of new interactivity-aware scheduling algorithms,
  • understand how to provide cheaper computing while ensuring user satisfaction
  • Platform: Borland C++ Builder/Windows


Research Project: Online Detection of Traffic Anomalies on very High speed links using Sketch Techniques


With Prof. Yan Chen, Northwestern University. http://list.cs.northwestern.edu/hpnaidm.html


This project looks at finding anomalies in very high-speed traffic streams (10-20 Gbps links) in real-time. We propose algorithms to detect heavy change in network traffic without the need of any off line analysis of traffic. These algorithms are based on a newly proposed data structure, the k-ary sketch which is very useful for storing condensed frequency summaries of large number of records.

Platform: C++/Linux

Teaching Assistant: Real Time Systems and Sensor Networks (Winter 2005)


As a teaching assistant and developer, I am actively involved in development of a sensor network infrastructure with Pocket PC and Berkley Motes, which talk to each other to convey real time sensor, audio and video information to desired locations and the web. I am involved in designing and developing protocols, interfaces and necessary middleware to support such applications. I've had significant experience in programming over Bluetooth, Zigbee, WiFi, audio/video programming and streaming, and heterogeneous platform message transfers. Our goal is to design a complete building monitoring system using sensors and Pocket PCs.

Platform: Visual C++/Windows

Summer Undergraduate Research Award for project titled “Optimal Resource Utilization in VSAT networks (Summers 2000)

With Prof. H.M. Gupta, Electrical Dept. IIT Delhi

URL: http://www.cs.northwestern.edu/~agupta/_projects/visual_mac_simulator


In this project our aim was to provide optimal resource utilization for various traffic streams in VSAT networks
We looked at various types of traffic such as
bursty, demand based traffic and multimedia traffic and worked on
the problem of optimal utilization of the satellite bandwidth under various traffic conditions We also developed a
GUI oriented discrete-event simulator in Visual C++ and implemented many MAC layer protocols like ALOHA,
R-ALOHA, FDMA, TDMA, frequency hopping and their combinations for simulation and study of various
scenarios.


Platform: Visual C++/Windows


System Administrator of Computer Lab at IIT Delhi (2000-2001)

I was selected for the position of Computer Secretary (a voluntary position) of my hostel and was the System Administrator of the 24 Hr Computer Lab for one year in my student dorm, IIT Delhi in 3rd year, which had over 400 users. The position demands lot of interaction with the students and maintaining orderly conduct of machines as well as the users round the clock.


Teaching Assistantships

  • Computer Networks (involved in teaching)
  • Real Time Systems and Sensor Networks (involved in teaching)


Technical Skills


Development/Programming Skills


  • Proficiency in C, C++, STL, Perl/CGI and familiarity with Java (Swing, Network Programming), Assembly , VHDL, Scheme, SML, Pascal,and shell programming
  • Well Experienced in Visual C++/Microsoft Foundation Classes (MFC), Visual Basic, Borland C++ Builder, Borland JBuilder, Borland Delphi
  • Well experienced in Simulator Design, Systems Programming, Socket Programming, GUI Development (in many environments), Database Programming, 3D Development/OpenGL Programming, Image Processing
  • Experience and interest in System and Graphics Programming including Game programming


Mobile and Sensor Platforms

Pocket PC 2003 (Audio, Video, Bluetooth and Wireless Programming), Experience with MicaZ sensor motes programming (TinyOS, nesC programming), and intercommunication between micaZ and Pocket PC devices

Past Major Research/Development Projects


My research and development experience briefly: (Most publications and software are available for download from http://www.cs.northwestern.edu/~agupta )


Computer Science Area

Projects and Software

Systems/Networking

Virtuoso
Understanding User Comfort w/ Resource Borrowing,
Online Anomaly Detection in very high speed networks
Fast Resource Dissemination using Gossip Models in P2P Networks
QoS Aware Path Protection in QoS Networks
Optimal Resource Util. in VSAT Networks

Architecture/Hardware

Analysis and Visualization for Automated Synthesis of Embedded Systems
Hardware Level SPARC Simulator
SPARC Assembler
Design/Implementation of 4 Port Packet Switch

Web Projects

DoubleTrust ( http://www.doubletrust.net

Graphics

Lights! Camera! Action! : 3D Rendering and Animation
Fractal Image Compression
Space Invaders 3D: OpenGL implementation
Image Morphing using Delaunay Triangulation

AI

An Intelligent Agent for Chinese Checkers using minmax

Algorithms/Theory

Optima: Tool for Linear Optimization
Study of Evolutionary Algorithms
Visual Graph Studio with Graph Algorithms

Distributed Databases

Distributed Content Management and Application for eGovernance
Implemented from scratch of a relation database system in C++

 

 

 

 

Project Descriptions


Fast Resource Information Dissemination in a P2P Network using Gossip Models (Winter 2003)

With Prof. Fabian Bustamante, Northwestern University.


With the goal of designing an efficient P2P resource information dissemination system, we have focused on finding an efficient communication model for propagation of this information with network resource scalability and freshness of information as two primary concerns. We studied various combinations of dynamic gossip schemes using simulation (including a rank based spatial gossip scheme called bin-halving) and found that depending on the metric, different schemes may be preferred. One of the main parts of our work was design of meaningful metrics for representing freshness and then evaluating various schemes with respect to these.

Platform: C++/Linux

Design, Simulation and Implementation of a simple 4 port Packet Switch (Spring 2000)

With Prof. Balakrishnan, CSE Department, IIT Delhi


This project involved design and implementation of a prototype packet switch. The switch had the ability to switch packets between various ports based on packet destination address. We designed the Switch in Xilinx Design Tools and simulated it and also wrote the Behavioral and Structural Description of the Switch in VHDL. Then we finally implemented the Switch on FPGA.

Platform: VHDL, Xilinx Schematic Designer

Discrete-Event Hardware Level SPARC Simulator with a two pass Assembler (Fall 1999)

With Prof. Anshul Kumar, CSE Dept. IIT Delhi
URL :
http://www.cs.northwestern.edu/~agupta/_projects/sparc_simulator


This project involved understanding the working of the SPARC processor and then developing a simulator for its data path. We developed an event-driven hardware block level simulator for the SPARC chip, which also supports instruction pipelining. It also allows timing simulation taking into account the various delays in the datapath and aids in determining the optimal clock speed. A two pass Assembler was also written to convert SPARC assembly to SPARC machine code. The simulator has a comprehensive GUI written in Visual C++ to illustrate what happens inside the processor at each step of execution (for educational purposes)

Platform: Visual C++/Windows

Integrated Framework for Analysis and Visualization for Automated Synthesis of Embedded Systems (Fall 2000)

With Prof. Balakrishnan and Prof. Anshul Kumar, CSE Dept. IIT Delhi (Mini Project, 2000)
URL:
http://www.cse.iitd.ernet.in/esproject


The project involved development of a Java-based tool to assist in the development of embedded systems. The user should be able to analyze and visualize his design of the embedded system and hence come up with the optimum partitioning of the tasks between hardware and software. The tool also allowed automatic hardware/software partitioning. It allows specification of the various components of the embedded system like processors, memory, cache, bus, ASICs and so on and their interconnections. Further, it allows analysis of the entire system to test the performance of the target platform configuration. It also provides visualization of the performance of the resultant system as well as the overall architecture.

Platform: Java/Swing

Lights, Camera, Action! A 3D Rendering and Animation Package in Java (Spring 2001)

With Prof. K.K. Biswas, CSE Dept., IIT Delhi
URL:
http://www.cs.northwestern.edu/~agupta/_projects/3d_rendering/Web/index.html


This project involved design of general purpose 3D software which illustrates various concepts learnt in Computer Graphics course. It allows rendering and animation of a scene consisting of multiple 3D objects, features a complete scripting language for scene description and animation control, includes lots of primitive objects like cylinder, sphere, cone, ellipsoid, donut, super-ellipsoids etc. with wire-frame based modeling. We also implemented various lighting models like Diffusion and Specular models. We also implemented 3D fractals like trees and rough terrain modeling. Animation includes straight-line motion as well curvilinear motion and supports animation of multiple objects. It also allows animation of light sources to provide interesting lighting effects to the scene.

Platform: Java/Swing

Study and Implementation of Fractal Image Compression (Spring 2001)

With Prof. Prem Kalra, CSE Dept, IIT Delhi
URL:
http://www.cs.northwestern.edu/~agupta/_projects/image_processing/web/FractalImageCompression/


In this project we studied the technique of fractal image compression and implemented it in C++. We carried out various analyses to study its efficiency and advantages and also compared it to JPEG.

Platform: C++/Linux

Artificial Intelligence : An Intelligent Chinese Checkers playing program (Fall 2001)

With Prof. K.K. Biswas, CSE Dept., IIT Delhi
URL :
http://www.cs.northwestern.edu/~agupta/_projects/chinese_checkers/web

In this project we developed an Intelligent Chinese Checkers playing program. We developed five heuristics, which made it almost impossible to beat the computer player. We also studied and did some optimizations in the Minimax algorithm which greatly improved the speed of the computer player. We were able to greatly improve alpha-beta pruning in the Minimax algorithm.

Platform: Borland C++, Builder/Windows

Other programming projects

  • Visual Graph Editor, which allows for point-n-click construction of directed graphs with export option to files (in Data Structures course). C++
  • Discrete-Event Simulator in Java to simulate queues (M/M/1 and other) for analysis and comparison with Queuing Theory.
  • Client/Server remote access software in Linux involving Berkley sockets and I/O Multiplexing.
  • Multi-threaded Simulator for 1 bit Sliding Window Protocol with analysis in Java.
  • Optima - a tool for linear optimization using the Simplex Algorithm in Visual C++.
  • Complete database program with implementation of indexes and relations in C++/OOP.
  • Studied and implemented the JPEG Digital Image Compression Format in C++.
  • Image Morphing based on 2-D triangulation method in C++ as a part of Digital Image Processing.
  • Implementation and Study of Fibonacci and Binomial Heaps as part of Algorithm Design/Analysis.

Administrative roles

  • Was elected as the Class Convener during 2nd year and was responsible for facilitating teacher-student interactions.
  • Organized a trekking trip to McLeod Ganj (the home of Buddhists in India) in Himachal Pradesh for the CSE Department in Feb 2000.

Teaching Experience

  • Teaching Assistant for Computer Networks course, Winters 2004 (Rated Excellent)
  • Teaching Assistant for Real Time Systems. Winters 2005
  • Have taught many students Physics and Mathematics for IIT JEE engineering entrance examination.
  • Have taught many company employees and students in developing computer and programming skills

Memberships

Student Member of ACM and ACM SIGCOMM

References

Prof. Peter Dinda
Assistant Professor
Computer Science Department
Northwestern University
Phone: (847) 467-7859
Email: pdinda@cs.northwestern.edu

Prof. Fabian E. Bustamante
Assistant Professor
Computer Science Department
Northwestern University
Phone: (847) 491-2745
Email: fabinb@cs.northwestern.edu

Prof. Ming-Yang Kao
Department Chair
Computer Science Department
Northwestern University
Phone: (847) 563-0426
Email: kao@cs.northwestern.edu

Prof. Yan Chen
Assistant Professor
Computer Science Department
Northwestern University
Phone: (847) 491-4946
Email: ychen@cs.northwestern.edu

 

 

Courses Done

Graduate

  • Network Security: A Measurement based approach
  • Analysis and Prediction of the Dynamic Behavior of Applications, Hosts, and Networks
  • Advanced Operating Systems
  • Resource Virtualization
  • Introduction to Networking
  • Operating Systems
  • Computer Graphics
  • Giving Effective Research Talks

Undergraduate

Theory and Mathematics

  • Introduction to Computer Science
  • Data Structures and Algorithms
  • Discrete Structures
  • Programming Languages
  • Introduction to Logic for Computer Science
  • Theory of Computation
  • Algorithm Design and Analysis
  • Optimization - Methods and Applications
  • Introduction to Analysis and Differential Equations
  • Mathematics II - Complex Analysis, Linear Algebra, Fourier Series
  • Probability & Stochastic Processes

Systems and Networks

  • File Structures and Systems
  • Database Management Systems
  • Operating Systems
  • Computer Architecture
  • Advanced Computer Networks
  • Computer Networks I

Computer Engineering

  • Introduction to Electronic Circuits
  • Digital Electronics
  • Electronics Laboratory I
  • Signals and Systems
  • Computer Architecture
  • Digital Hardware Design
  • Digital Hardware Design Lab
  • Mini Project (Embedded Systems)

Other

  • Artificial Intelligence
  • Computer Graphics
  • Digital Image Processing
  • Technical Communications