Details of various courses that I have taken and projects that I have conducted during my graduate and under graduate studies.

Graduate studies

Program: Master of Science in Software Engineering [MSSE]
University: International Technological University,
Sunnyvale, CA
& School
Department of Computer Science,
School of Engineering
Courses Taken:
Contents taken from The International Technological University Website.
§ SEN956 Unix Operating System [Fall '08]
Using Unix, fundamental Unix commands, pipes and redirection, shells, processes, Unix system administration basics, internals of Unix, history of operating systems.
§ SEN930 Software Testing and Tools [Summer '08]
Course Website1
Modern testing techniques based on black box or behavior testing, control flow and data flow testing, transaction based and finite state testing, domain testing, reliability testing, software reliability models, tools and automation.
§ SEN967 Web programming with AJAX [Summer '08]
Historical development of computer graphics, black and white graphics programming, color raster graphics, resolution and memory requirements, look-up tables, vector graphics and matrices, surfaces, rotation and scaling, graphics primitive, and transformation.
§ CEN940 Network Security Techniques [Spring '08]
Network security plays a key role in today's network computing environment. This course is designed to familiarize the students with fundamentals of network security issues, techniques, and applications. Topics include: introduction to computer networks, cryptography, secret and public key algorithms, authentication systems, digital signature, and secured e-mail systems. Some current hot topics, such as Internet security, e-commerce, and Virtual Private Network (VPN) will also be briefly covered.
§ SEN964 Java Programming [Spring '08]
Introduction to Java, Application versus Apple net, Installing Java, variables, types, expressions, and control constructs java. Lang, Strings, Vectors, Hash tables, File I/O, The Java AWT, components, events, layout managers, Improved GUI libraries, Threads, Synchronization, Java intervals, Sockets, Writing a server and a client.
§ SEN909 Object Oriented Programming with C++ [Fall '07]
Syntax of C++, classes and objects, encapsulation, inheritance, polymorphism, design for reuse, and programming with objects.
§ SEN999 Web Programming with Ruby on Rails [Fall '07]
This course will teach you the fundamentals of web progaming using Ruby on Rails.
Program: Master of Science in Electrical Engineering [MSEE]
(Transferred Out)
University: University of Southern California,
Los Angeles, CA
& School
Department of Electrical Engineering,
Andrew and Erna Viterbi School of Engineering
Courses Taken:
Contents taken from The University of Southern California Catalogue 2004-05 & 2005-06
§ CSCI570 Analysis of Algorithms [Summer '06]
Explores fundamental techniques such as recursion, Fourier transform ordering, dynamic programming for efficient algorithm construction. Examples include arithmetic, algebraic, graph, pattern matching, sorting, searching algorithms.
§ CSCI511 Personal Software Process (PSP) and Project [Spring '06]
Individual analysis, planning, development and maintenance of a software product or development artifact, using the principles and practices of PSP. Analysis of project's lessons learned
§ EE517 Statistics for Engineers [Spring '06]
Presents statistics with engineering emphasis. Topics include confidence intervals, hypothesis testing, estimation, regression, nonparametric tests, analysis of variance, quality control, and experimental design
§ EE554 Real Time Computer Systems [Spring '06]
Structure of real-time computer systems; analog signals and devices; scheduling, synchronization of multiprocessors; reliability, availability; serial/parallel computations; real-time operating systems and languages; design examples.
§ CSCI530 Security Systems [Fall '05]
Course Website1
Protecting computer networks and systems using cryptography, authentication, authorization, intrusion detection and response. Includes lab to provide practical experience working with such systems.
§ CSCI530L/proj/csci590 Security Systems Lab [Fall '05]
Course Website1
Some contents taken from course website. Part of CSCI530 Security Systems. Topics covered in this course include cryptography, key management, authentication, authorization, intrusion detection and prevention and wireless security.
§ EE550 Design and Analysis of Computer Communication Networks [Fall '05]
Applications of stochastic modeling and optimization techniques to communication network design and analysis. Data link control; performance models; multi-access channels; routing and flow control.
§ EE558 Optical Fiber Communication Systems [Fall '05]
State-of-the-art optical fiber communication systems. Emphasis on optoelectronic-device and communication-systems issues necessary to provide high-speed and/or networked optical communications.
§ CSCI585 Database Systems [Spring '05]
Course Website
Database system architecture; conceptual database models, semantic, object-oriented, logic based, and relational databases; user and program interfaces; database system implementation; integrity, security, concurrency and recovery.
§ EE457Lx Computer Systems Organization [Spring '05]
Register transfer level Machine organization; CPU data paths and control; micro-programming; timing, simple arithmetic units; basic I/O organization; design using register transfer languages.
§ EE555 Broadband Network Architectures [Spring '05]
ATM and BISDN, switch designs, high speed local, campus and metropolitan area networks, light wave and photonic networks, network management techniques, applications and gigabit test beds.
§ CSCI402x Operating Systems [Fall '04]
Course Website1
Basic issues in concurrency, deadlock control, synchronization scheduling, memory management, protection and access control, inter-process communication, and structured design. Laboratory experiences with Unix-like operating system.
§ EE465 Probabilistic Methods in Computer Systems Modeling [Fall '04]
Course Website1
Review of probability; random variables; stochastic processes; Markov chains and simple queuing theory. Applications to program and algorithm analysis; computer system performance and reliability modeling.
§ CSCI511 Personal Software Process (PSP) and Project [Spring '06]
  Project 1P: Check for a reasonable email address
  Process: PSP0.1.
  Wrote a sub-program to check that an Email address is legal & US based.
  Project 2P: Extend 1P to add checks for a valid US phone number
  Process: PSP1.0
  Extended Program 1P to accept a second data item per line, an extended US telephone number, and also check that for validity. The telephone number checker should be written as a separate, reusable subprogram.
  Project 3P: URL String Decoder
  Process: PSP1.1
  Wrote a package (class) to support cgi-bin invocation of a subprogram to parse an HTML "post"ed Form.
  Project 4P: Check for a bad entries
  Process: PSP1.1
  Modified the data structure underlying the package from 3P to use an external "CSV" file to store the table. Check additionally for required fields. Add a column indicating the result of checks.
  Project 5P: Restructure 4P for cgi-bin processing
  Process: PSP2.0
  Revised program 4P so that the control structure agrees with that which would be used for cgi-bin form processing.
  Project 6P: cgi-bin login processing
  Process: PSP2.1
  Wrote a login processing program, structured like cgi-bin programs, which compares the user name and password with valid users registered in the system (User Control File) and spoofs assumed hackers. The program allows each user 3 attempts to provide a valid user name/password combination, after which the program assumes it's being hacked and stops responding to that user. In any case, a user is timed out after 5 minutes without input.
  Project 7P: cgi-bin login processing (Modified and Improved)
  Process: PSP3.0
  Wrote a login processing program, structured like cgi-bin programs, which compares the user name and password with valid users registered in the system (User Control File) and spoofs assumed hackers. The program allows each user 3 attempts to provide a valid user name/password combination, after which the program assumes it's being hacked and stops responding to that user. In any case, a user is timed out after 5 minutes without input.
When the program checks the user name and password against the User Control File, it should reply with the code from the User Control File, and update the count in the User Control File.
  Project 8P: cgi-bin login processing and check for bad entries
  Process: PSP3.1
  Combined the functionality of user login checking (7P) with user information checking (5P)
Information from "CSV file" (5P) is included in User Control File (7P). User Control File contained a first row with "column headers", as in 5P. Some added functionality was incorporated.
Processing routines that would fit into a cgi-bin environment, servicing user requests from Web pages (forms); and A test driver which reads input from a test file and provides input to the processing routines in a cgi-bin fashion was developed. In particular, the test driver provides certain callback routines to the processing routines.
  Project 1J: Restructure 4P for cgi-bin processing
  Process: PRP1.1
  A new process to generate reports was defined. Corresponding Scripts were generated. The scripts were further tested and improved.
A Report was generated using this process.
  Project 2J: Restructure 4P for cgi-bin processing
  Process: PRP2.1
  The process generated in 1J was improved, adding new features. Corresponding Scripts were re-generated. The scripts were further tested and improved.
Again another Report was generated using this process.
§ EE517 Statistics for Engineers [Spring '06]
  Project Title: Statistical Modeling of USC Wireless Network
An experiment was conducted in which 170 data samples where used. The aim of the project was to determine whether a Statistical Model can be generated to determine the Data Transfer Rate between a Client on USC Wireless Network and a Server on the Internet.
Based on this the following Multiple Regression Model was generated
E(y) = 3.067 + 0.190x1 - +0.491x2 - 0.367x3 - 0.110x4 - 0.470x5 + 0.136x6 - 0.147x7
Following variables where chosen intuitively
x1: Day of the Week
x2: Time of the Day
x3: Location (The Wireless Access Point to which the client is connected
x4: Square of the Time
x5: Signal Strength
x6: Uploading or Downloading
x7: Server (Located at different hops)
§ EE554 Real Time Computer Systems [Spring '06]
  Project Title: Solar Array Drive Assembly
The aim of this project is to implement a scaled-down version of Solar Array Drive Assembly used for fine pointing of Spacecraft's Solar Arrays towards Sun.
As we know that Electrical Power Subsystem is the most critical system in satellites. Solar Arrays are employed to face the sun for all the time so as to generate electrical power. But as the satellite moves in its orbit or faces some external torques and changes its attitude, Solar Arrays cannot generate maximum power. In order to counteract this problem, a real time feedback control system is employed so as to rectify the position of the solar arrays with the help of motors.
Final Report:   (To be uploaded soon)
§ CSCI530L/proj/csci590 Security Systems Lab [Fall '05]
Contents taken from course website .
Steganography and Cryptography;PKI Management; Authentication on Linux and Windows; Authorization on Linux and Windows; Firewalls; Intrusion Detection; Incident Response and Forensics; Wireless Security; Software Security; Vulnerability Assessment; Security Policy and Risk Management
Note: Students have to complete atleast 80% of the class projects to get credit for this class.
§ EE550 Design and Analysis of Computer Communication Networks [Fall '05]
  Simulation of Adaptive Bit Loading for Wireless Network Channels
  Abstract: My project involved the study and analysis of Adaptive Bit Loading Technique used in Wireless Channels using Frequency Division Multiplexing (FDM). To understand this technique I simulated the same on MatLab platform. The reason for using MatLab was the ease in with which matrices can be manipulated. Hence I could store the parameters for the Sub Channel as a matrice.
My simulation consisted of two parts.
a. Generate a random wireless channel. Divide it into Sub Channels and then transform it into frequency domain using Fast Fourier Transform and Single Value Decomposition
b. Do Adaptive Bit Loading. The parameter of the Sub Channel which indicates the whether the Sub Channel is "Good" or "Bad" was the gain it provided.
The Algorithm which was used do Energy Allocation was Chow Algorithm and to do optimized Bit Allocation was Campello.
Project Report:  
Project Presentation:  
§ CSCI585 Database Systems Projects [Spring '05]
Contents taken from course website.
  Project 1: Use the Extended ER and Object Relational concepts to create a conceptual schema for a provided example application. Use your schema to build a sample database in Oracle. Write the given queries in SQL3 and execute them on your database.
  Project 2: Extend your schema of Homework 1 to support spatial datatypes. Use the new schema to build a database in Oracle. Write a GUI program that supports Graphical Query Language (GQL). The program must allow the users to select spatial attributes for spatial queries (e.g. selection from a map). The GQL must then parse these into SQL queries, which will be passed to your database.
  Project 3: Extend the schema from Homework 1 to XML. Create a DTD specification for the same. Write a custom XSL stylesheet (details will be provided). Write an XML parser module that reads the XML data and automatically populates your database (a sort of XML->SQL conversion). Write XML Queries using an XML Query Language (e.g., X-Query) to query the XML data.
§ CSCI402x Operating Systems Projects [Fall '04]
Implementation and simulation of Operating System concepts like thread synchronization, deadlock handling, system calls like fork & exec, memory management, virtual memory, and inter-process communication.
Here are the Write-Ups for the projects: Project 1, Project 2, Project 3 and Project 4. ()
§ EE465 Probabilistic Methods in Computer Systems Modeling Project [Fall '04]
Simulation of Slotted ALOHA System for various arrivals like Poisson, General and Bernoulli.
Source Code: .
Here are the arrivals and transmission data. ()
WARNING! I have put in lot of work, effort and time to conduct these projects. I am especially thankful to Apoorva Jindal, Tushar Makhija, Varun Salvi and Jahan Zeb for being great project mates. Therefore, please DO NOT copy or plagiarize my(our) work. You can definitely use them as a reference for your projects, in fact, I welcome it. By giving you the right to view and/or inspect them I am no way giving you any rights to these works. These works are automatically copyrighted to me(us) by the Digital Millennium Copyright Act. I(We) do not claim liability or responsibility for your actions if you, inspite of this warning, go ahead and decide copy/plagiarize my(our) work.
Research Papers:
§ ECSCI530 Security Systems [Fall '05]
  Digital Rights Management Techniques
  Abstract: We are currently living in a Digital Era. Because of this most of our sources of information and entertainment are digital in nature. While we want to have a hassle free and easy distribution of the digital content, unauthorized distribution and copying of data has become rampant over the years. While copyright holders try to protect their intellectual property from misuse and theft, many legitimate users feel that while doing so their right to "Fair Use" is been violated. In such times, Digital Rights Management comes in handy. What Digital Rights Management tires to do is to provide a way where digital content can be securely transferred from one person to another person without violating the copyrights or adding additional burden on the end user. Various Digital Rights Management Techniques and Systems exist. What this paper tries to do is analyze current techniques, discuss future ones and suggest improvements to the same. Over the course of this paper we will be not only be introduced the concept of Digital Rights Management but we will also try to understand them these concepts for apparent benefits and short comings.
Final Paper:  

Under graduate studies

Program: Bachelor of Engineering [BE]
University: Manipal University,
(Then known as, Manipal Academy of Higher Education)
Manipal, INDIA
& School
Department of Electronics & Communications Engineering,
Manipal Institute of Technology
Courses Taken:
§ Senior Year
VLSI Design; Introduction to Artificial Intelligence & Fuzzy Logic; Basic Computer Communication; Microwave Components; Electronic Instrumentation and Process Control; Essentials of Management; Introduction to Mobile Communication; Computer Graphics; Microwaves & Navigation; Introduction to Satellite & Optical Communication; Digital Signal Processing Lab; and Advanced Communication Lab.
Also conducted Seminar on Satellite Phones & Convergence Technologies.
§ Junior Year
Object Oriented Programming (Theory and Lab); Television Engineering; Linear & Digital Control Systems; Basic Microprocessors (Theory and Lab); Advanced Microprocessors (Theory and Lab); Antenna Systems; Digital Computer Architecture; Digital Signal Processing; Digital System Design and HDL Simulation; Power Electronics (Theory and Lab); and Basic Communication Lab.
§ Sophomore Year
Engineering Mathematics 3 & 4; Electronic Circuits 1 & 2; Electrical Network Analysis; Transducers and Instrumentation; Digital Electronic Fundamentals; Signal and Systems; Linear Integrated Circuits and Application; Digital Integrated Circuits and Application; Analog Communication; Fields and Waves; Electronic Circuits Lab 1 & 2; and Integrated Circuits Lab 1 & 2.
§ Freshman Year
Engineering Mathematics 1 & 2; Engineering Physics (Theory and Lab); Engineering Chemistry (Theory and Lab); Elements of Civil Engineering; Mechanical Engineering Science; Computer Concepts and Programming (Theory and Lab); Electrical Engineering; Basic Electronics; and Mechanical Engineering Workshops.
§ Major Project
  Simulation of OFDM System with Adaptive Bit Loading
  Abstract: The project was a demonstration of the OFDM with adaptive modulation applied to a Single Input Single Output system. It required application of optimization algorithms, namely Chow and Campello, to obtain bit and power allocations for each sub carrier, assuming instantaneous channel knowledge. The project simulated the complete system, including the transmitter, channel and the receiver. The channel simulated both noise as well as fading. Modulation was done using MQAM technique and error control was done using Convolutional encoding and Viterbi algorithm.
The entire simulation was developed in 4 months, with The Math Works MatLab 6.0 platform.
The project was demonstrated at Final Year Students' Project Exhibition 2003, held on 11th June, 2003, and was well critically well appreciated for its innovative idea.
§ Minor Project
  Digital Clock
  Abstract: The project that was presented was a general purpose digital clock, with the facility of setting time. It had wide area of industrial applications. It could be used as a general purpose clock, a portable one if DC back up was provided. It could also drive any device which, required time setting. The clock gave output both in BCD as well as 7 segment display.