Found 41 result(s) for "C"! Click on the links for more details
Tour Planner Web App
This app was built using Java Spark and Maven for the back-end and React and npm for the front-end. It was deployed to GitHub for releases, automation, workflows, and version control. It is an app that helps users build tours, whether for work or a vacation. Places can be added using the map or the add places button, both explained in detail in the belowe sections. These will appear as their names and display their coordinates in the list below the map. The app also allows you to optimize the tour so there are no overlapping lines and the trip can be efficient. The first location is the starting city and will also be the ending city so the distances are calculated using modulo so the last leg distance is between the last place and the first one. The tests were created using JUnit for unit testing, Jacoco and Jest for coverage testing, and Postman for integration testing.
Using Dijkstra to Route Packages in a Network Overlay
The goal of this project was to use an overlay to communicate between messaging nodes (clients) and the Registry (server) to send messages using threads. It follows the principles of TCP/IP protocols and overlays used in P2P systems. The registry accepts messaging nodes using a server socket and creates receiver and sender threads for that connection. The messaging nodes also have their own sets of threads for the registry and peers. The foreground process in the Registry allows the users to specify commands that creates the undirected graph with all registered nodes, connect to peers to form bidirectional connections, and start sending messages. When all nodes finish messaging each other randomly, the statistics are collected and can be compared to see if any packets were lost during the period.
Graph Algorithms and Visualization
This is a working graph visualization and algorithms program that produces outputs to common graph algorithms and images for certain graphs. It uses the Graphviz library for C++ to generate graph images, but the other algorithms are implemented by me. There are four graphs produced by the directed and undirected versions each. Each will have information regarding the operation and print the graph along with the paths in red if applicable. As for the algorithms, the results are outputted to the console, but the program supports most algorithms on graphs.
Distributed_Analytics_of_US_Residential_Zoning
This is a project that aims to do distributed analytics using clusters using a spatial dataset. Our goal with this project was to analyze the impact of single family rresidential zoning in the US and correlate it to quality of life measures in an effort to dissuade a segreggation of zoning types and promote inclusivity. We hoped to be able to compare the results against data from other countries that have more includive zoning laws, but this was not possible due to constraints on data availability and language barriers. For the distributed component, we are using a cluster of 10 machines that are managed by Yarn. To do the processing of data and calculations, we applied Spark using Java and Gradle. The data itself was stored using HDFS and totaled to ~3.2 GB. For more detail on our motivation, procedures, project structure, and results, please reference the latex file or the presentation in the GitHub repo.
Analysis of the MovieLens Dataset using Apache Spark
This project was an introduction to using Apache Spark to analyze a large file (~800 MB), namely the Movie Lens dataset containing movies, genres, ratings, etc. The files were stored using HDFS and cluster size consisted of 10 machines. There is 1 Java file with 7 Spark jobs which are focused on answering the 7 questions that can be found on GitHub.
Analysis of Million Songs Dataset using Hadoop MapReduce
This project was an introduction to using Hadoop MapReduce to analyze a large file (~1.6 GB), namely the Million Song subset containing 10,000 songs. The files were stored using HDFS and cluster size consisted of 10 machines. There are 10 Java files with jobs of their own which are focused on answering the 10 questions below. Please visit the github for more details on the questions, answers, and more.
Fast Multithreaded Matrix Multiplication
This is a very efficient matrix multiplication calculator built using Java and its concurrency libraries. It can be used to multiply matrices populated using a random seed, but it can also be modified to use predefined values. The command line gives you the option to define the size of the matrices, which will be the same for both matrices, the seed used in random to populate the matrices, and the number of threads. The features list below describes the optimizations.
Color Coordinate Generator
This is a color coordinate sheet generator that is actively used in Vision Therapy. The goal was to use web development tags and explore accessibility.
Japanese-To-English Translator
This is a translator program I built using Python that will take in a sentence in Japanese and translate the parts of the sentence into English and return an English translation. The original senetence is first split into various parts of speech using Japanese particles, which determines the transitivity of the verb if present and if a copula is present. Each part of speech is further broken down depending on the characters, length, conjugation, pairing, and use. This program does utilize the googletrans library as making a translator is a near impossible task, especially without the use of machine learning. The main feature of the program is to take the individual parts of the sentence, translate it using a csv with common words in Japanese, match it to a part of speech in English, and return that to the user. To learn more, click on the github icon next to the title of the project.
Personal Website
The website you are on! This is my personal website I created using Python's Django framework for the back-end and pure Javascript, HTML, and CSS for the front-end with some help from Bootstrap5. Please feel free to explore the website and the various projects, courses, and features. If you would like to contact me, you can do so using the contact tab or my contact information from the sidebar.
Handwritten Letters to 3D-Printed Braille Letters
This is a team project for my CS370 class that involved the use of a Raspberry Pi to communicate and coordinate two external devices. I acted as the team leader and inititated the project, managed the repository for the project, and coordinated the tasks of each member. The goal of the project was to use a camera to take a picture of some handwritten text, which is then uploaded to the Raspberry Pi. Using Python, we would preprocess the image, and use OpenCV to find and extract contours, leading to individual letters of specific size. The letters would then be sequentially classified by a convolutional neural network trained using the EMNIST dataset on handwriting. After this, the letters are combined using stl models into a single 3D model along the y-direction. We used slic3r to slice the stl file into gcode using the shell and sent that to the Raspberry Pi using ssh and sftp. The pi would then serially send each line of gcode to the printer to be printed.
Data Augmentation Using Generative Adversarial Networks
This was a team project for my CS345 class, where I worked with a teammate to research and use GANs as a way to improve the accuracy of classifiers. We first researched neural networks and the workings of GANs to understand how the model functions. Then, we used TensorFlow as the framework to implement the GAN model to generate data that could be augmented to the test set. We trained the generator on various splits of the original training data and noted how effective the augmentation was. This was compared to the baseline accuracy of just the original data on a SVC classifier to train and test. The use case for this was to improve the data on which to test as a mean of improving the accuracy of the classifier with better data produced by the GAN.
Heuristic Algorithms for Approximating the Traveling Salesman Problem
This program will approximate the Traveling salesman problem using 3 three different algorithms (Nearest Neighbot, 2Opt, and 3Opt). There are size different combinations and explanations for these can be found in the sections below. The program allows you to run each algorithm individually or run a benchmark for all 6 and the original unoptimized list. The results are formatted in a table and displayed in the console. As the algorithms have different time complexities, the time it takes increases for some algorithms drastically, so use caution when using many places.
Great Circle Distance Calculators
This program calculates the distances between coordinates using a possible of three formulas: Vincenty, Cosines, or Haversine. You can choose to use places through the command line or through a file. I would recommend using the file for more than 5 places as it becomes cumbersome to keep adding it through the shell. You can also choose to generate any number of places and then do the calculations.
Infix Expression Calculator
This calculator app utilizes Java and the Swing framework for the calculations and design. Each frame, panel, and component is custom design that is made to look similar in GUI to the calculator offered by Microsoft. It features tons of operations, help menus, an output screen, an operation screen, history tab with details abou the previous calculations, etc. For the actual calculations, it is programmed in Java, so it utilizes most available data structures, sorting algorithms, paring, error handling, etc.
Descriptive Statistics Calculator
This application was inspired by my statistics class, of which one of the chapter was descriptive. In the input screen, you are able to input any number of data values, which are used by the program to calculate and display the descriptive statistics associated with them. The output panel displays the count, frequency of data, min, max, median, IQR, sum, mean, range, variance, and standard deviation. Please look at the images below for reference. This is saved to the history tab each time, which can be clicked on to display all of the statistics in a screen.
CS314: Software Engineering
Introduced team-based development of large, complex systems that supported Scrum-based development while completing a semester-long web development project to prepare for the industry. Topics included clean code, configuration management, continuous integration, testing, requirements, project management and teamwork. The process tools used include Visual Studio Code, IntelliJ IDEA, Linux, Docker, Git, GitHub, Maven, NPM, Webpack, JUnit, Jest, Postman, Zenhub, and Code Climate. The technology tools used include: Linux, Java, JavaScript, ReactJS, Reactstrap, React Leaflet, SQL, MariaDB, Java Spark, Java Concurrency, SLF4J, uLog, JSON, and KML.
CS455: Introduction to Distributed Systems
Covered fundamental ideas and issues in building distributed systems. Examined issues related to concurrent programming, thread pools and safety, non-blocking I/O, scalable server design, file system design, distributed mutual exclusion and deadlock detection, consensus and consistency, pipelining schemes, distributed graph algorithms, distributed shared memory, distributed objects, and MapReduce.
CS445: Introduction to Machine Learning
An advanced machine learning course that covered computational data analysis, pattern classification, prediction, regression, reinforcement learning of single and multivariate data.
CS430: Database Systems
This course was based on database systems and recognizing the elements and components that compromise these systems. Topics included relational models, database design, DDL, DML, querying against the database, applying algebra and calculus principles, defining indexing options and the various data structures utilized, transactional SQL with ACID, and recovery plans. These were all supplemented with labs and projects using a MySQL database.
CS312: Modern Web Applications
Developed fully functional modern web applications which included rich graphical content and dynamic content. Explored service-based architecture, web UX design, asynchronous content delivery, and full-stack development.
CS320: Algorithms--Theory and Practice
Analyzed, designed, and implemented efficient algorithms and compared the results. Applied Big O, θ, and Ω notations, induction, recursion, invariants.
CS345: Machine Learning Foundations and Practice
Introduced machine learning algorithms and tools for predictive modeling presented using case studies that inform their use in real-world applications. Utilized python, numpy, pandas, matplotlib, R, etc. for data analysis and predictions.
CS370: Operating Systems
Introduction to operating systems including memory organization, I/O control, multitasking, process control, coordination, and relink management. Utilized hashing, encryption, linux, remote desktops, etc.
CT301: C++ Fundamentals
Learned and praticed C++ syntax, memory management, file input/output, pointers, references, exceptions, and object-oriented programming in C++.
CS 214: Software Development
Developed large software systems in teams. Designed and enhanced the features and quality of a large system while using tools for software engineering and project management.
DSCI369: Linear Algebra for Data Science
Learned and utilized techniques in linear algebra related to data science using MATLAB. Topics learned include matrices, bases, subspaces, linear independence, dimension, change of basis, projections, linear systems of equations, least squares, matrix factorizations, eigentheory, singular value decomposition, and angles between subspaces.
STAT315: Intro to Theory and Practice of Statistics
Studied descriptive statistics, probability theory, random variables, sampling distributions, hypothesis testing, confidence intervals, ANOVA, simple and multiple regression. Utilized R to analyze real world data sets.
CS220: Discrete Structures and their Applications
Practiced the use and implementation of integer representations and properties, propositions, predicates, sets, functions, program proofs, induction, counting, complexity, graphs, trees, invariants. Accompanied lectures with Python assignments and labs.
CS165: Data Structures
Studied and utilized various data structures, algorithms, and interfaces in Java. Some examples are arrays, lists, queues, stacks, BSTs, expression trees, B+ Trees, graphs, hash tables, iterables, etc.
CS250: Computer Systems Foundation
Learned about foundations of computer systems encompassing processors, networks, storage, and computing frameworks. Discussed, processors, cores, coprocessors, memory hierarchy, caching, storage systems, computing frameworks, etc.
CIS 455: Advanced Database Management
Learned and utilized advanced data management topics including performance tuning, concurrency control, security, object-oriented databases, and data warehousing. Reviewed physical and logical design, implementation, and administration of databases.
CIS 340: Advanced Application Design and Development
Developed practical and business-related skills in Java, fundamentals of GUIs using Java Swing, and the use of React and Javascript to develop applications.
CIS 350: Operating Systems and Networks
Studied multiuser and network operating systems; basic networking concepts including security, transmission, performance, and topologies.
CIS 320: Project Management for Information
Project management concepts including work breakdown structure, estimating, scheduling, tools, and reports.
CIS 360: Systems Analysis and Design
Introduction to the systems development life cycle and related methodologies. Emphasis on analysis and design activities, such as business process analysis, system requirements determination and specification, user interface design, and implementation alternative evaluation.
ECON 202: Principles of Microeconomics
Introduction to economic models of individual and business interactions in both competitive and non-competitive markets. Special emphasis is on efficiency and how different market structures (e.g., monopolies) affect both consumers and producers. Use these models to analyze a variety of public policies regarding the environment, taxation, poverty, inequality, health, and international trade, among others.
ECON 204: Principles of Macroeconomics
Development of the necessary tools to study economic issues that affect the whole economy, including recessions, unemployment, inflation, economic growth, and fiscal and monetary policy. Introduction to handling and interpreting real-world macroeconomic data.
FIN 310: Financial Markets and Institutions
Analysis of the functions and operations of financial markets and the primary and secondary securities created in those markets.
BUS 479: Strategic Management
An integration of various business subject areas in terms of top-level policy and decision making. Developed a strategic plan for a real business and observed results in teams.
ACT 220: Introduction to Managerial Accounting
Use of accounting information by decision makers; development of the basic accounting model, and issues concerning income and cash flows.