MY TIME AT ASU AS A GRADUATE STUDENT - MS IN CS
I am currently pursuing my Masters of Science in Computer Science from Arizona State University (ASU) in Tempe, Arizona, USA.
I have completed the following courses:
- Multimedia and Web Databases (MWDB) (Graduate Level Course) (Fall 2019)
- Foundation of Algorithms (Graduate Level Course) (Fall 2019)
- Data Mining (Graduate Level Course) (Fall 2019)
- Information Assurance and Security (Graduate Level Course) (Spring 2020)
- Software Security (Graduate Level Course) (Spring 2020)
- Data Processing at Scale (Graduate Level Course) (Spring 2020)
Project centric courses have made me well prepared to meet the requirements of the industry.
My first semester at ASU involved two courses concentrated on Machine Learning - MWDB and Data Mining and one on foundation of algorithms.
In MWDB, I worked on a project which deals with 11K Hands dataset (https://sites.google.com/view/11khands). Machine Learning concepts were implemented extensively on the above mentioned data set.
Feature extraction techniques like Local Binary Patterns (LBP), Histogram of oriented gradients(HOG), Color Moments (CM), Scale Invariant Feature Transformation (SIFT) on Images were implemented. Distance measures such as euclidean and Similarity measures like Cosine Similarity etc were also used to find the similarities and differences between the features. Dimensionality reduction techniques like Principle Component Analysis (PCA), Singular Value Decomposition (SVD), Non negative matrix factorisation (NMF), Latent Dirichlet Analysis (LDA) were used to derive the essential features from the derived features.
Implementation of Classifiers such as Decision Tree, Support Vector Machines.
Personalised page Ranks, use of personalised page ranks.
Locality Sensitive Hashing to hash Images into user specified layers and hashes and then query for similar images. User based relevance/irrelevance feedback mechanism to refine results on the basis of user input.
Clustering mechanisms for similar data and then identifying the type for incoming images.
Implementing a model for gender recognition and bio metric identification on the basis of image given and the metadata provided with the 11k dataset.
In Data Mining, I worked on a project that involved experimental classifiers on glucose time series data to predict if a person has consumed a meal or not using Random forest, SVM and DT.
Both of the projects above gave me a great understanding of the underlying concepts in Machine learning. I have become well equipped with concepts of machine learning and am confident of facing and solving problems in this particular domain.
In Foundations of algorithms, I learnt about various algorithms which are extremely useful in solving problems, especially when it comes to coding. A few problems as follows - Knapsack problem, Interval Scheduling, Divide and Conquer, Dynamic Programming, P - NP complete and NP hard classification problems, Gale Shapley algorithm etc. The syllabus helped me deal with Advanced topics in formal algorithm design and analysis, including advanced shortest-paths algorithms, amortized analysis, network flows, NP-completeness, and selected topics in computational geometry, distributed\parallel, randomized, and approximation algorithms.
In my second semester, I took courses which focused more on CyberSecurity of applications.
In Information Assurance and Security, I worked on a project report which shed light on the importance of Machine learning in Intrusion detection systems, under this project I worked on Identifying the advantages of Machine Learning in Cyber security and consequently, IDS. I also highlighted the limitations of current trends being used and also what disadvantages ML can bring in and how those can be avoided. Our project report consisted of topics dealing with the following topics:
- A comprehensive study of machine learning as a technology.
- Study in-depth on technical challenges, recent advances and the future trends regarding wireless network security
- Study of wireless network security and its vulnerability to hacking
- Study and describe various security threats in wireless networks
- Study and describe various intrusion detection techniques
- Study and describe the relevance of Machine Learning in security
- Machine Learning Classification in Wireless Intrusion Detection Systems
- Study and describe types of wireless networks, analyzing feature types, relevant features of KDD-99 dataset and study the evaluation of feature selection methods for the training and the test data based on performance metrics and also contributed for defining the scope of the project
- Compare the various performance evaluation metrics like accuracy and precision for various Machine Learning Algorithms.
I also acted as the Deputy Group leader for a group of 10 students and I was responsible for organising weekly scrum meetings. Timely submission of minutes of meetings and other project documents and working as a point of contact between the faculty and my team mates.
In the second phase of the project, I read through reports from two other submissions related to threats to web applications and cyber threats and countermeasures in social network systems and raised valid/ invalid arguments on those projects, this required a deep understanding of the project and the area of the topic which I gained by reading their submissions thoroughly.
The course work was centered around what Information Assurance policies a company should have to ensure the safety and security of its physical and digital assets, which includes its data, storage, people and policies. Emphasis was give on topics like blockchain, risk management, authentication and access control, contingency and disaster recovery, IA in cloud computing and outsourcing and physical and personnel security etc.
In Software Security, I worked on developing a secured skeletal banking application. I was the leader of my project group and hence was given the responsibility of managing the project development throughout the course of the semester. I was responsible to cover the blockchain aspect of the project where I had to establish a private ledger for the bank using hyperledger fabric to document all the approved transactions of the bank. This involved setting up a ledger on localhost and then on the GCP where through docker, I created multiple channels and orgs so that our application could interact with the ledger and store the transactions. I wrote the chaincode which was used to interact with the platform. I was also responsible for implementing the Merchant APIs which included coding all the backend to ensure the Merchant capabilities were present in the project. This module was developed using Python MVC and the response was sent through in JSON format to be received by frontend for further processing. The functionalities that were coded were credit/debit feature for merchant account, bank account amount transfer to both internal and external bank accounts and integrating the OTP module developed for bank account transfer. I was involved in the testing phase of the project too where all the APIs were tested through postman and client validation was checked for the frontend of the application. This helped in avoiding a lot of errors and possible malicious exploitation of the project. I also set up the EC2 instance where the application was hosted. I approved numerous PRs on github where our code repository was hosted. As a group leader, I was instrumental in ensuring that the project was always on track. I was involved at each step of project planning, be it deciding the Tech stack, designing the database, researching the security requirements or deciding the functional aspects of the application or the implementation of modules. I made sure that all the deadlines were met and assigned responsibilities to the group members accordingly. Coming up with the Vulnerabilities presentation, ensuring Minutes of Meetings were delivered on time (with the help of Deputy Leader). Majority of the functional requirement analysis and converting it to technical requirements was done by me, I also was responsible for hosting weekly group meetings (Scrum calls) where we decided on the further steps as per the gantt chart and design doc and discussed the latest developments from the past week. I acted as the tech lead too, hence, performed the job of a system architect. I ended up with maximum marks in the project in the whole class.
In the second phase of the project I was assigned the task of finding security and functional vulnerabilities in two other projects of the same topic. I was successful in finding out vulnerabilities like client side validation, XSS attacks, session management issues and backend validation with tools like Postman etc.
The course work was centered around making web applications secure and measures of planning, development, analysis and testing should be taken in order to ensure maximum security of a web application.
In Data Processing at Scale, I learnt about the concept of data processing and the steps we can take to process large amounts of data. Brief discussions about the major cloud services provider in the market, various types of database management systems and databses type. We had programming assignments which started with creating databases and went all the way till mutli threading and parallelization in them.
I worked on a project in Scala dealing with GIS data that helped in solvong problems like finding nearest locations to a given location, identifying regions and hot cell analysis and hot zone anaylsis.
I my third semester I have undertaken the following courses: (Fall 2020)
- Statistical Machine Learning
- Software Validation, Verification and Testing and
- Mobile computing
Meanwhile, I also started working as a Data Analytics research aide at the Knowledge Exchange for Resillience (KER) at the School of Urban Planning and Geographical Sciences where I am a part time student worker, working on data accumulation, analysis, processing and storing.