top of page

MS in Computer Science (Machine Learning Concentration)

 

Reflection: My MS Computer Science Journey at George Mason University:

As I reflect on my journey through the Master’s program in Computer Science at George Mason University, I am filled with a sense of accomplishment and growth. My pursuit of excellence has been rewarded with an impressive GPA of 3.82, but more importantly, the knowledge and skills I have acquired throughout my coursework will remain invaluable assets in my professional journey.

​

Foundations in Computer Systems:

My initial dive into the program with CS 531 under Professor Hal Greenwald fortified my skills in systems programming, data structures, and UNIX interfacing. This course was instrumental in developing my proficiency in the C programming language, along with a robust understanding of various data structures and their performance optimization. The exploration of Unix processes, multi-threading, and inter-process communication equipped me with the practical skills necessary for building high-performance systems.

​

Venturing into Artificial Intelligence:

Enrolling in CS 580 with Professor Ana L. Gonzalez Hernandez marked a transformative phase where I immersed myself in the world of Artificial Intelligence. From basic search strategies to probabilistic reasoning, I acquired foundational principles as well as cutting-edge methodologies. My venture into machine learning, knowledge representation, agent architectures, and constraint satisfaction algorithms, was complemented by practical applications, strengthening my grip on AI.

​

Unraveling Algorithmic Mysteries:

During the Summer of 2022, CS 583 with Dr. Fei Li was a deep dive into algorithmic theory. From understanding Asymptotic Notation to unraveling the mysteries of Dynamic Programming and Graph Theory, the course empowered me with a broad array of algorithmic techniques. My analytical thinking was sharpened, and I developed a deep appreciation for mathematical rigor in algorithm design.

​

Exploring the Realm of Data Mining:

In CS 584, guided by Professor Xavier Gitiaux, I sharpen my abilities in unearthing insights from massive datasets. Learning about classification, clustering, and association rule mining, I also explored ethical and societal challenges posed by data mining technologies. My proficiency grew in data preprocessing, dimensionality reduction, and numerous algorithms, preparing me for real-world data science applications. 

​

Mastering Software Design and Architecture:

SWE 621, facilitated by Dr. Rob Pettit, enriched my understanding of software design and architecture. I learned the importance of structured frameworks for scalable systems, and how modeling plays a pivotal role in complex software projects. Mastering UML and becoming adept in communicating and defending design choices were highlights of this course. This culminated in a teamwork project where we designed a Smart Home System, applying the skills and methodologies acquired throughout the course.

​

Delving Deeper into Specializations:

​

SWE 642: Software Engineering for the World Wide Web:

During the fall semester of 2022, I had the rewarding opportunity to participate in an academically rigorous course, 'SWE 642: Software Engineering for the World Wide Web', under the proficient guidance of Dr. Vinod Dubey. The course offered a detailed exploration of the engineering methodologies and numerous technologies necessary for the development of highly interactive and efficient websites for various applications, including e-commerce. We began our learning journey with an understanding of HTML5, CSS3, and JavaScript, then explored Ajax, jQuery, Angular, and TypeScript. Our exploration extended to the web components of the Java EE platform, specifically Servlets and JavaServer Pages (JSPs), as well as databases through JDBC and Java Persistence API (JPA 2.0). We also extensively studied RESTful Web services and ended with an introduction to Docker container technology. 

​

CS 678: Advanced Natural Language Processing:

In the Fall semester of 2022, I embarked on an extensive academic exploration through the complex domain of Natural Language Processing (NLP) in CS 678, under Professor Antonis Anastasopoulos. The course provided a deep understanding of core NLP problems and state-of-the-art methods, particularly focusing on large pre-trained neural language models, and included topics such as Word embedding, Neural Networks, and various parsing techniques. A notable aspect was the human-centric approach that encompassed Multilinguality, Ethics, and Interactivity.

​

CS 747: Deep Learning:

In the Spring semester of 2023, I immersed myself in CS 747, a comprehensive course on Deep Learning guided by Professor Mingrui Liu. The course facilitated a thorough understanding of the fundamental and advanced concepts, including machine learning, neural networks, Convolutional Neural Networks (CNNs), Generative Adversarial Networks (GANs), Recurrent Neural Networks (RNN), Transformers, and Deep Reinforcement Learning. The latter part emphasizes optimization techniques and finishes with the study of Distributed deep learning and Federated Learning.

​

Conclusion:

My journey through the MS in Computer Science at George Mason University has been one of profound learning and personal development. The diversity in coursework, coupled with the guidance of esteemed faculty, has instilled in me a solid foundation and an insatiable appetite for innovation. With gratitude and enthusiasm, I am ready to leverage my knowledge and skills to contribute positively to the field of Computer Science and to solve complex problems in this ever-evolving technological landscape.

CS 531: Computer Systems and Fundamentals of Systems Programming. Having successfully completed CS 531 facilitated by Professor Hal Greenwald, I acquired a versatile set of skills essential for systems programming and a deeper understanding of data structures and UNIX interfacing. Through rigorous hands-on assignments, I mastered the intricacies of the C programming language, ranging from foundational concepts such as control flow, functions, and memory management, to more advanced topics including pointers, address arithmetic and bitwise operators. The course also enabled me to appreciate the importance of algorithm complexity analysis, which is instrumental in optimizing performance. The exploration of various data structures such as stacks, queues, linked lists, trees, graphs, hashing, heaps, and priority queues enriched my toolkit for designing efficient algorithms and systems applications. Furthermore, I developed a strong competency in handling Unix processes, signals, and exceptions, which are pivotal in ensuring robustness and reliability in systems applications. The course also significantly expanded my horizons in multi-threading and inter-process communication, furnishing me with the knowledge to design scalable and high-performance systems. Moreover, the diverse range of topics covered in CS 531 has refined my problem-solving skills and laid the groundwork for a successful career in Computer Science.

For a full list of my programming assignments, please visit my GitHub repository for CS 531:

CS 580: Introduction to Artificial Intelligence. During the Spring 2023 term, I had the privilege to undertake CS 580 under the expert guidance of Professor Ana L. Gonzalez Hernandez. This transformative course allowed me to deeply immerse myself in the foundational principles and state-of-the-art methodologies of AI. The initial stages of the course were focused on search strategies, where I first built a strong base in uninformed methods like Breadth-First Search (BFS) and Depth-First Search (DFS). Gradually, I progressed to more complex informed techniques, including Greedy best-first Search, A*, as well as local search algorithms like Hill-Climbing, Simulated Annealing, and Genetic Algorithms. My exploration of adversarial search strategies like the Minimax Algorithm, Depth-Limited Search, and Alpha-Beta Pruning helped me build a solid understanding of game theory in AI. The course further introduced me to the world of probabilistic reasoning and models. I gained a robust understanding of key topics such as Probability, State Uncertainty, Utility Theory, and Decision Theory. I also had the opportunity to delve into Bayes' Rule, the intricacies of the Naïve Bayes' Model, and the practical implications of inference in Bayesian Networks. I broadened my AI horizons by journeying into the realm of machine learning, studying a range of topics from classification, decision trees, k-NN, clustering, K-means, Gaussian Mixture Models & EM, to the complexities of neural networks. The course also guided me through different facets of knowledge representation, including the design of a knowledge base, the creation of knowledge representation languages, the nuances of Ontological Engineering, and the structuring of Semantic networks. Further, the course exposed me to the world of logical agents, and I learned about various agent architectures such as Knowledge-Based Agents, Reflex Agents, Goal-Based Agents, Utility-Based Agents, and Learning Agents. I also navigated through Logical Reasoning, Model Checking, Propositional Logic, Predicate, and Disjoint, Decomposition and Partition methodologies, enhancing my problem-solving skills. This comprehensive course also encompassed constraint satisfaction search algorithms like the Arc Consistent (AC-3) Algorithm, Path consistency (PC), Forward checking (FC), and Backtracking (BT), besides Combinatorial optimization, Markov Decision Processes, and Hidden Markov Models (HMM). My learning was cemented by practical applications, where I applied the learned concepts to solve a variety of games and problems like Wumpus World, 8-Queens, Route-finding, Sudoku, mazes, Tic tac toe, Map-Coloring, and Umbrella World. Overall, CS 580 has provided me with a comprehensive and in-depth understanding of AI, equipping me to confidently tackle future challenges in this ever-evolving field.

For a full list of my programming projects, please visit my GitHub repository for CS 580:

CS 583: Analysis of Algorithms. In the Summer of 2022, I took a deep dive into the world of algorithmic theory and application in the course CS583 taught by Dr. Fei Li. I learned about Asymptotic Notation, which underpins the analysis of algorithm efficiency, and further explored standard notations and common functions. I engaged in complex problem-solving strategies such as the Maximum-Subarray Problem and Matrix Multiplication, utilizing divide-and-conquer techniques. The course equipped me with skills to solve recurrence relations, often found in recursive algorithms, using methods like Substitution and the Master Method. I was introduced to advanced sorting techniques like Radix Sort and Bucket Sort, as well as the Quickselect algorithm used for efficient selection tasks. I investigated mathematical lower bounds for sorting and examined various algorithms to find the minimum and maximum in a set. I learned about the probabilistic nature of randomized algorithms through the Hiring Problem and the concept of Indicator Random Variables. I developed a robust understanding of Dynamic Programming, mastering classic problems such as Rod Cutting and Matrix-Chain Multiplication, and even applying these techniques in data compression algorithms like Huffman coding. I further expanded my algorithmic arsenal with Greedy Algorithms, applying them in practical scenarios such as the Activity-Selection Problem. Amortized analysis techniques, such as Aggregate Analysis, The Accounting Method, and The Potential Method, formed part of my learning, providing me with different ways to assess the long-term performance of an algorithm. I also learned about dynamic tables, a key tool for managing dynamically sized arrays. As part of my exploration into graph theory, I studied graph representations, Breadth-First Search, Depth-First Search, Topological Sort, and the identification of Strongly Connected Components. I learned how to use Prim's Algorithm for determining the Minimum Spanning Tree, and absorbed the nuances of shortest path algorithms, including Dijkstra's and Bellman-Ford's methods. I was also introduced to specialized algorithms for Directed Acyclic Graphs. I learned about All Pairs Shortest Path algorithms, deepening my understanding with topics such as Shortest Paths and Matrix Multiplication, and Johnson's Algorithm designed for sparse graphs. The final part of my learning journey involved the study of flow networks, where I learned about The Ford-Fulkerson Method for computing maximum network flow and Maximum Bipartite Matching. Overall, my journey through CS583 has empowered me with a broad set of algorithmic techniques and a deep understanding of their mathematical analysis, positioning me strongly for tackling intricate computational problems.

For more information about the course content please see the course syllabus:

CS 584: Theory and Application of Data Mining. In Spring 2022, under the guidance of Professor Xavier Gitiaux, I successfully completed the course CS584, where I mastered techniques to unearth meaningful and intriguing insights from substantial data collections. I learned key data mining methodologies, including classification, clustering, and association rule mining, along with the ways to evaluate these techniques. I was exposed to diverse application examples of data mining, particularly in the areas of social media analysis, text analysis, and learning analytics. I gained an understanding of the ethical and societal challenges posed by these technologies in contemporary decision-making contexts. I applied probability and statistics concepts to scrutinize data, and learned how to use performance metrics to interpret and validate data mining algorithm results. I practiced comparing algorithms and implementing a complete data mining pipeline, which encompasses data preparation, model selection, software development, and performance evaluation. I deepened my knowledge in data preprocessing and text featurization, as well as understanding the importance of similarity measures and the KNN classifier. I explored concepts such as Bias/Variance Trade-off, distance calculation choices, and covariance. I became proficient in using performance metrics and handling TPR-TNR Trade-offs, as well as using ROC curves. I honed skills in dimensionality reduction techniques like Principal Component Analysis (PCA), Singular Value Decomposition (SVD), and Latent Semantic Indexing (LSI). I also learned about latent analysis, tokenization in the Bag of Words model, and techniques for model evaluation and handling class imbalance. My journey in the course also covered various algorithms, including Decision Trees, Perceptron, SVM, and Logistic Regression, as well as dealing with noisy labels and overlapping classes in the context of Linear Margin Optimization. I understood the concept of Non-Linear Decision Boundaries and the Kernel Trick, and studied Bayesian classifiers and ensemble methods. The course enabled me to navigate different clustering techniques such as k-means, K-means++, Density-Based Clustering (DBSCAN), Agglomerative, and Divisive. I learned to evaluate clustering algorithms using the Silhouette Coefficient, and studied Anomaly Detection. I also ventured into Association Analysis, becoming proficient with Market Basket Analysis, the A Priori Algorithm, and A Priori pruning. I explored the workings of Recommender Systems and delved into the ethical aspects of data mining. I became familiar with Fairness Criteria, Anti-Discrimination principles, and understood how to address issues related to statistical and inductive bias. Overall, the course CS584 has equipped me with a comprehensive understanding of data mining and its ethical implications, strengthening my capabilities in the data science domain.

For a full list of my programming assignments, please visit my GitHub repository for CS 584:

SWE 621: Software Design and Architecture. In the spring semester of 2022, I took a SWE 621 under the expert guidance of Dr. Rob Pettit. My understanding and skills in several crucial areas related to software engineering were enriched. Firstly, I gained comprehension of the interconnection between software requirements, architecture, and design models, with a special focus on large-scale system development. This area emphasized the importance of having a structured framework and approach for developing systems that are scalable and maintainable. Another important aspect of this course was the emphasis on the key role that modeling plays in contemporary software-intensive systems. This part of the course made clear the importance of using models as visual and structural representations, which help in better understanding, communication, and problem-solving in complex software projects. Additionally, the course equipped me with practical skills needed to create and work with UML (Unified Modeling Language) models. This helped me in developing software requirements and documenting design artifacts in a clear and efficient manner. The UML models served as a bridge to ensure that the technical aspects aligned with the system's requirements. Furthermore, an essential component of the curriculum was the development of the ability to communicate and defend software design choices clearly and effectively. This involved a deep analysis of various trade-offs that are often encountered throughout the design process and being able to explain and communicate the reasoning behind these decisions. Another insightful section of the course was an in-depth study of the various methods, processes, and notations that are essential for effectively working with architecture and design in software. This section provided me with a set of techniques and practices that can be used to develop strong and efficient software systems. Towards the end of the course, we explored design by looking at the listing, evaluation, and selection of design alternatives to achieve desired quality attributes. This was essentially learning how to systematically explore different design options and critically assess them based on a set of criteria to determine the most effective design choice. Finally, the course offered a broad view of various perspectives on design, incorporating elements such as risk minimization, domain modeling, abstraction, architectural styles, design patterns, and reuse. This comprehensive approach enabled me to understand that design is not just a single concept but a multifaceted discipline that requires the integration of various elements to develop software systems that are not only functional but also reliable, maintainable, and efficient. In teamwork, we designed a Smart Home System (SHS).

To open Smart Home System (SHS) design, please use an application that can open .vpp extension such as Visual Paradigm :

SWE 642: Software Engineering for the World Wide Web During the fall semester of 2022, I had the rewarding opportunity to participate in an academically rigorous course, 'SWE 642: Software Engineering for the World Wide Web', under the proficient guidance of Dr. Vinod Dubey. The course offered a detailed exploration of the engineering methodologies and numerous technologies necessary for the development of highly interactive and efficient websites for various applications, including e-commerce. A significant focus of the course was on the engineering principles that ensure high reliability, usability, availability, scalability, and maintainability of web applications. We delved into various approaches such as client-server programming, component-based software development, middleware, and reusable components. These collectively equipped us with the necessary skills to design and develop software for extensive websites. The teaching method of SWE 642 was primarily practical, with several programming assignments aimed at reinforcing theoretical concepts through hands-on experience. The main focus of the course was the software design and development aspect of web applications, excluding the policy, business, or networking perspectives. We began our learning journey with an understanding of HTML5, CSS3, and JavaScript, which form the foundational elements of web development. Subsequently, we explored Ajax, a vital technique for creating asynchronous web applications that enhances the user experience. Further, we studied jQuery, a powerful tool that simplifies client-side scripting, and Angular, a robust web development framework. Alongside this, we also delved into TypeScript, an open-source language that aids in building scalable and maintainable applications. Our exploration extended to the web components of the Java EE platform, specifically Servlets and JavaServer Pages (JSPs). The integration of Servlets and JSPs through the implementation of the Model View Controller (MVC) architecture provided a deeper understanding of constructing well-structured web applications. Our journey also involved a comprehensive study of databases through JDBC and Java Persistence API (JPA 2.0), enabling us to effectively manage relational data in applications. Additionally, we learned about Enterprise JavaBeans (EJB 3), Messaging, and Message-Driven Beans, providing insights into the enterprise application domain. We also extensively studied RESTful Web services, fostering an understanding of implementing web services that conform to REST architecture. The course ended with an introduction to Docker container technology, where we learned how to package web applications into containers, enhancing consistency across various environments. In conclusion, 'SWE 642: Software Engineering for the World Wide Web', guided by Dr. Vinod Dubey, was a detailed exploration of the multi-faceted domain of web development. The course played a pivotal role in enhancing my skills and expanding my understanding of the field, equipping me to contribute significantly to the landscape of web development in the future.

For a full list of my programming assignments, please visit my GitHub repository for SWE 642:

CS 678: Advanced Natural Language Processing. In the fall semester of 2022, I embarked on a comprehensive journey through the intricate terrain of Natural Language Processing (NLP), studying under the guidance of Professor Antonis Anastasopoulos in the course CS 678: Advanced NLP. The journey begin with a deep dive into the core problems of NLP, extending to state-of-the-art methods, predominantly large pre-trained neural language models that are shaping the future of language technologies. Throughout the course, we thoroughly examined the inherent limitations of contemporary language technologies. This scrutiny fostered a nuanced understanding of these limitations and equipped us with the expertise to navigate them. The course emphasized making calculated decisions and implementing advanced machine learning techniques to confront and resolve these challenges effectively. A significant aspect of our learning was devising, creating, and assessing computing solutions to address problems related to language. To achieve this, we harnessed state-of-the-art tools to construct systems capable of processing, understanding, and communicating in natural language. Our hands-on approach and consistent practice aided in enhancing our comprehension of the theory while refining our skills. Our academic voyage in CS 678 delved into the nuances of Word Embeddings, Binary/Multiclass Classification, and the foundations of Neural Networks, including Feed Forward Neural Networks. We also touched on the intricacies of Language Modeling, with an emphasis on n-gram models and Recurrent Neural Networks. Distributional Semantics was another significant aspect of our study, allowing us to explore Contextual Representations extensively. We studied models like ELMo, self-attention, and BERT, each of them offering unique insights into the field of NLP. Our journey further unfolded into Language Generation, with a detailed overview of various Neural Network Architectures such as Encoder-Decoder, Attention mechanisms, and Transformers. Alongside, we honed our skills in Experimental Design, as well as interpreting and debugging NLP models. Furthermore, we delved into the realms of Morphology and Syntactic Parsing, enriching our understanding of language structure and its complexities. In the latter stages of the course, we expanded our knowledge by learning about Semantic Parsing, Machine Translation, and different aspects of Language Generation like Dialogue Systems and Text Summarization. These complex topics served to broaden our understanding and competence in the field of NLP. A distinguishing feature of this course was the human-centric approach towards NLP, encapsulating areas like Multilinguality, Ethics, and Interactivity. This approach provided us with a holistic understanding of the field and its real-world applications and implications. The course concluded with a deep dive into the world of Question Answering and an insightful examination of Dataset Biases. This exploration prepared us to critically analyze data and draw meaningful inferences, an essential skill in the world of NLP. In essence, 'CS 678: Advanced NLP' with Professor Anastasopoulos was a comprehensive exploration into the dynamic world of Natural Language Processing, making us competent and informed individuals in the field. The knowledge and skills gained have undoubtedly enhanced my proficiency in NLP, equipping me with the essential tools to make significant contributions to the field in the future.

For a full list of my programming assignments and the project, please visit my GitHub repository for CS 678: (Note: the repository access is provided through gitfront URL because the repo is private)

CS 747: Deep Learning. In the Spring semester of 2023, I fully engaged in the captivating world of Deep Learning by enrolling in CS 747, a course wisely guided by Professor Mingrui Liu. My learning experience was marked by a thorough journey through various aspects of Deep Learning, where I acquired both foundational knowledge and insights into cutting-edge advancements. In the initial phase of the course, I grasped the essentials of machine learning. Of particular significance to me was my understanding of linear classifiers, which laid the groundwork for recognizing the importance of classification problems in machine learning. This further led me to appreciate the details of categorizing data into multiple classes through multi-class classification. As the course progressed, I dove into neural networks. Through examining neural network structures, I cultivated an understanding of backpropagation algorithms which, I came to realize, are essential in training neural networks. My learning extended to automatic differentiation, where I learned about computational techniques for efficient gradient calculation. My enthusiasm was especially high during the segments dedicated to Convolutional Neural Networks (CNNs), where I learned about their revolutionary applications in computer vision. Understanding the structure and operations of CNNs was enlightening regarding their effectiveness in image and video recognition. My learning experience took a practical turn as I dived into Neural Network Training, Optimization, and Generalization. Here, I improved my skills in mathematical and algorithmic approaches for neural network optimization and developed a critical eye for the balance between model fitting and generalization. A memorable aspect of my learning involved engaging with Generative Adversarial Networks (GANs). I was amazed at their capacity to generate new data similar to the training set and gained insights into the creation of adversarial examples, as well as defensive measures against adversarial attacks. Recurrent Neural Networks (RNNs) became another cornerstone of my learning, specializing in handling sequential data. This was vital in shaping my understanding of natural language processing and time-series analysis. Transformers, as a groundbreaking neural network architecture, became an area where I devoted considerable attention. Through this, I understood the reasons behind their preference over RNNs in natural language processing tasks, mainly owing to their efficiency and scalability. Furthermore, Deep Reinforcement Learning was an exciting intersection where I learned how deep learning and reinforcement learning are combined to tackle decision-making problems in contexts such as robotics and game-playing. The latter part of the course illuminated my understanding of optimization within Convex and Nonconvex Optimization, emphasizing convergence rates and mathematical properties. Concluding my learning journey, I explored Distributed Deep Learning and Federated Learning, absorbing strategies for training deep learning models across distributed environments and appreciating the value of learning from decentralized data sources. Reflecting upon CS 747, my learning experience under the guidance of Professor Mingrui Liu was a journey through the multifaceted landscape of Deep Learning. This journey enriched my intellectual knowledge and provided me with a comprehensive skill set that I am eager to use and build upon in the ever-evolving world of Deep Learning.

For a full list of my programming assignments and the project, please visit my GitHub repository for CS 747: (Note: the repository access is provided through gitfront URL because the repo is private)

CS 688 (Fall 2023)

For a full list of my programming assignments, please visit my GitHub repository for INFS CS 688:

  • Upcoming Soon 

INTO Mason non-degree Computer Science Pathway program

During my initial semester at INTO Mason, I acquired a myriad of vital skills integral to a successful graduate student experience. These abilities will undeniably prove beneficial throughout my continued academic journey at George Mason University. In the EAP 405 course, I was effectively trained in crucial skills such as note-taking while listening and annotating key information in articles or assignments. These skills are fundamental for every graduate student striving to stay organized and assimilate vast amounts of information efficiently. In the EAP 506 course, I was given a clear and structured understanding of how to identify rhetorical elements in an article, including exigence, the object of study, purpose, method, new offering, and relevance. This knowledge is indispensable for any student looking to compile comprehensive literature reviews or surveys on a given topic. Further enhancing my abilities in the EAP 506 course, I learned the art of summarizing articles within my discipline, computer science, and analyzing academic journals or articles. I was also taught the proper techniques to paraphrase and cite articles, skills essential for constructing a thorough literature review - a cornerstone of academic research. In the same course, I developed my ability to critically analyze any study and discern potential shortcomings, a skill that underscores the essence of academic rigor. In the INFS 519 course, my understanding of advanced data structures, such as Binary Search Trees, AVL Trees, Hash Tables, Graphs, and Heaps, among others, was significantly enhanced. By implementing these data structures from scratch using Java programming language, I gained a deep and comprehensive understanding of data structures. In the INYO 501 and 502 courses, I honed various skills pivotal to adjusting to a new academic environment, including the development of a professional network, crafting an impressive resume and personal statement, and creating a digital portfolio.

 

During my second semester at INTO GMU, I ventured into research methodologies and carried out a systematic literature review on "The Implementation of Internet of Things Energy Management System to reduce energy consumption on University Campuses in Saudi Arabia". This project enriched my ability in conducting rigorous research. Additionally, I delved into the Mathematical Foundations of Computer Science (CS 530), a course crucial for anyone intending to pursue advanced studies in computer science.

 

In conclusion, the graduate pathway program at INTO Mason was instrumental in helping me acclimate to American culture and the U.S. higher education system. The skills and knowledge gained during this program have fully equipped me to excel in my graduate school journey at George Mason University.

In EAP 506: Graduate Communication in The Disciplines I under the guidance of Professor Deborah M. Sánchez, I have learned how to complete research-based writing and presentations in my area of study and identify rhetorical elements and language choices that are typical in all scholarly communications in general. I have learned techniques for increasing the comprehension, reliability, and clarity of my writing skills at the sentence and debate stages. In this assignment, I have learned how to identify and analyze a suitable journal according to my needs in a specific topic. Moreover, writing a literature review is an essential skill required by every graduate student, and identifying the appropriate journal is the first stage in writing an excellent literature review.

Please click on the links below to see some examples of my assignments essays in EAP 506:

INYO 501 Graduate Transitions for International Students course facilitated by Dr. Aimee Weinstein presents an introduction to the academic environment in the United States, interaction with university services, and policy. In this course, I have learned the rules that regulate George Mason University, such as the honor code. In this assignment, I have learned the sections of Mason's honor code by analyzing a case study of honor code breach. Moreover, I have learned the importance of keeping my personal information secret, such as the username and password of my account. Furthermore, I have learned the citation format such as APA and the importance of citing recourses that I use in my writing.

Please click on the link below to see an example of my assignment in INYO 501: 

In EAP 507: Graduate Communication in The Disciplines II course conducted by Professor Deborah M. Sánchez, I have learned how to write literature review about an academic article in my discipline which is computer science. Moreover, I learned how to conduct a systematic literature review which is a crucial skill in graduate studies.

Please click on the link below to see an example of my assignment in  EAP 507: 

INYO 508: Intercultural Dialogue And Professional Development with Prof. Steven Harris-Scott, provided me with invaluable knowledge and abilities that are crucial to my professional and academic development. This training gave me a thorough understanding of how to create a diverse portfolio that successfully highlights my accomplishments, abilities, and competencies. Additionally, it provided helpful advice on creating an effective CV, a crucial tool for any job seeker. In addition, the course taught us how to write a strong Statement of Purpose, a vital document that explains individual motivations and objectives to academic or professional institutions. The course also covered the creation of a thorough Plan of Study, which allowed me to carefully plan out my academic path.

Please click on the link below to see some examples of my assignments in INYO 508: 

In INFS 519: Program Design and Data Structures facilitated by Professor Hal Greenwald which focused on the fundamentals of data structures and algorithms. This program allowed me to apply these concepts to develop programming solutions for complex application problems. Notably, I mastered a range of topics including algorithm analysis, recursion, various sorting algorithms, and implementing key data structures such as arrays, arraylists, stacks, queues, linked lists, and diverse forms of trees (binary search trees, B-trees). I also delved into hash tables, graphs, and the application of Huffman encoding. The course emphasized the importance of programming in Java, further strengthening my coding proficiency. Additionally, I explored a variety of special topics which broadened my understanding of the field. This robust foundation enables me to approach complex computing problems with a solid toolkit of skills and knowledge.

For a full list of my programming assignments, please visit my GitHub repository for INFS 519:

In the course CS 530: Mathematical Foundations in Computer Science, which was instructed by Professor Dmitri Kaznachey, I revisited and deepened my understanding of the fundamental mathematics that underlie Computer Science. The course emphasized key mathematical structures, logical reasoning in mathematics, and probability theory. It equipped me with the skills needed to apply these mathematical concepts to solve problems and engage in logical reasoning. Additionally, the course offered ample practical experience in utilizing computational tools. Throughout the course, I gained mastery over a range of topics, including Proofs, Sets, Relations, Induction, Recursion, and Number Theory with a focus on the greatest common divisor and its application in cryptography. Moreover, I delved into Propositional Logic, understanding propositional formulas, equivalence, and validity, as well as explored Propositional Algebra and Predicate Algebra. The course also involved practical computing applications and offered an in-depth understanding of Classical Probability, Probability Spaces, Conditional Probability, and Random Variables.

Please click on the link below to see an example of my assignment in  CS 530: 

bottom of page