About
Experienced software engineer with a demonstrated history of working in deep learning…
Experience
Education
-
Vanderbilt University
Coursework: Machine Learning; Modeling & Simulation; Deep Learning; Advanced Algorithms; Distributed Systems; Web-based System Architecture; Concurrent Java Programming; Reinforcement Learning; Cloud Computing
-
Licenses & Certifications
Publications
-
NetsBlox and Wireless Robots Make Cybersecurity Fun
ACM SIGCSE
NetsBlox (https://netsblox.org) is a web-based collaborative learning environment extending Snap! with a few carefully selected abstractions that enable students to create distributed applications. These include online multi-player games and client-server applications that access online STEAM data such as maps, weather, earthquakes, movie information, etc. The distributed computing abstractions supported by NetsBlox also make it possible to write robot control programs. These programs issue…
NetsBlox (https://netsblox.org) is a web-based collaborative learning environment extending Snap! with a few carefully selected abstractions that enable students to create distributed applications. These include online multi-player games and client-server applications that access online STEAM data such as maps, weather, earthquakes, movie information, etc. The distributed computing abstractions supported by NetsBlox also make it possible to write robot control programs. These programs issue wireless commands to the robots which in turn reply with acknowledgements and sensor readings. The programs run in the browser making debugging much easier and eliminating the need to download anything to the robots. Furthermore, the environment makes it possible for other users to eavesdrop on the wireless messages and hijack the robots of others. This provides an excellent motivation for cybersecurity and makes it easy to teach it in a hands-on manner. We have created a cybersecurity curriculum for a week-long summer camp for high school students. Lessons include Denial of Service attacks, their detection and mitigation, cryptography, secure key exchange, replay attacks, etc. Each day student teams solve challenge problems that their robots have to carry out while under cyber-attack by the other participants. This technology demonstration is a companion to the paper "Teaching Cybersecurity with Networked Robots." It will provide the audience with a more practical view of this novel approach to hands-on cybersecurity education.
Other authorsSee publication -
Teaching Cybersecurity with Networked Robots
ACM SIGCSE
The paper presents RoboScape, a collaborative, networked robotics environment that makes key ideas in computer science accessible to groups of learners in informal learning spaces and K-12 classrooms. RoboScape is built on top of NetsBlox, an open-source, networked, visual programming environment based on Snap! that is specifically designed to introduce students to distributed computation and computer networking. RoboScape provides a twist on the state of the art of robotics learning platforms.…
The paper presents RoboScape, a collaborative, networked robotics environment that makes key ideas in computer science accessible to groups of learners in informal learning spaces and K-12 classrooms. RoboScape is built on top of NetsBlox, an open-source, networked, visual programming environment based on Snap! that is specifically designed to introduce students to distributed computation and computer networking. RoboScape provides a twist on the state of the art of robotics learning platforms. First, a user's program controlling the robot runs in the browser and not on the robot. There is no need to download the program to the robot and hence, development and debugging become much easier. Second, the wireless communication between a student's program and the robot can be overheard by the programs of the other students. This makes cybersecurity an immediate need that students realize and can work to address. We have designed and delivered a cybersecurity summer camp to 24 students in grades between 7 and 12. The paper summarizes the technology behind RoboScape, the hands-on curriculum of the camp and the lessons learned.
Other authorsSee publication -
Educational Robotics with a Twist
Splash Con (Blocks+)
We present a novel way to program wireless networked educational robots. RoboScape is a new service that we added to NetsBlox, a collaborative, blocks-based programming environment based on Snap! NetsBlox provides simple abstractions to create distributed programs. RoboScape uses these abstractions, Remote Procedure Calls (RPC) and message passing, to program the robot. The program runs in the browser and not on the robot. It remotely controls the robots with RPCs and the robot provides sensor…
We present a novel way to program wireless networked educational robots. RoboScape is a new service that we added to NetsBlox, a collaborative, blocks-based programming environment based on Snap! NetsBlox provides simple abstractions to create distributed programs. RoboScape uses these abstractions, Remote Procedure Calls (RPC) and message passing, to program the robot. The program runs in the browser and not on the robot. It remotely controls the robots with RPCs and the robot provides sensor values by sending messages back. This approaches makes programming robots as easy as programming sprites.
Other authorsSee publication -
A DSML for a Robotics Environment to Support Synergistic Learning of CT and Geometry
International Conference on Computational Thinking Education
Synergistic learning of computational thinking (CT) and STEM has proven to be an effective method for enhancing CT education as well as advancing learning in many STEM domains. Domain Specific Modeling Languages (DSML) facilitate the building of computational modeling frameworks that are directly linked to STEM content, thus making it easier for students to focus on concepts and practices. At the same time, teachers can more easily relate curricular content to the model building tasks. This…
Synergistic learning of computational thinking (CT) and STEM has proven to be an effective method for enhancing CT education as well as advancing learning in many STEM domains. Domain Specific Modeling Languages (DSML) facilitate the building of computational modeling frameworks that are directly linked to STEM content, thus making it easier for students to focus on concepts and practices. At the same time, teachers can more easily relate curricular content to the model building tasks. This paper discusses the design, development, and implementation of a robotics DSML to support a middle school geometry curriculum.
Other authorsSee publication -
Creating engaging science projects with netsblox
IEEE Blocks & Beyond
NetsBlox is a visual blocks-based programming language that supports distributed programming. NetsBlox includes Remote Procedure Calls (RPC) that provide access to a set of online scientific data sources such as maps, weather, earthquakes, astronomy imagery, air pollution, etc. This demonstration shows how to use these RPCs to create engaging science projects.
Other authorsSee publication -
You can teach computer networking in high school
IEEE
NetsBlox is a visual blocks-based programming language extending Snap! with a few carefully selected abstractions to support distributed programming. In this paper, we argue that with the help of NetsBlox, some of the fundamental concepts of computer networking can be included in the high school computer science curriculum. Specifically, we describe a set of curricular units that would fit nicely in the AP Computer Science Principles course. High school students in two short-term studies showed…
NetsBlox is a visual blocks-based programming language extending Snap! with a few carefully selected abstractions to support distributed programming. In this paper, we argue that with the help of NetsBlox, some of the fundamental concepts of computer networking can be included in the high school computer science curriculum. Specifically, we describe a set of curricular units that would fit nicely in the AP Computer Science Principles course. High school students in two short-term studies showed great engagement and were able to complete simple computer networking tasks.
Other authorsSee publication -
A Visual Programming Environment for Introducing Distributed Computing to Secondary Education
Journal of Parallel and Distributed Computing - Elsevier
The paper introduces a visual programming language and corresponding web and cloud-based development environment called NetsBlox. NetsBlox is an extension of Snap! and builds upon its visual formalism as well as its open source code base. NetsBlox adds distributed programming capabilities by introducing two well-known abstractions to block-based programming: message passing and Remote Procedure Calls (RPC). Messages containing data can be exchanged by two or more NetsBlox programs running on…
The paper introduces a visual programming language and corresponding web and cloud-based development environment called NetsBlox. NetsBlox is an extension of Snap! and builds upon its visual formalism as well as its open source code base. NetsBlox adds distributed programming capabilities by introducing two well-known abstractions to block-based programming: message passing and Remote Procedure Calls (RPC). Messages containing data can be exchanged by two or more NetsBlox programs running on different computers connected to the Internet. RPCs are called on a client program and are executed on the NetsBlox server. These two abstractions make it possible to create distributed programs such as multi-player games or clientserver applications. We believe that NetsBlox not only teaches basic distributed programming concepts but also provides increased motivation for high-school students to become creators and not just consumers of technology. NetsBlox is an educational visual programming language which extends Berkeleys Snap!Provides capabilities for building distributed applications.Introduces remote procedure calls and messaging networking abstractions.Provides access to external APIs, such as Google Maps, from within NetsBlox.
Other authorsSee publication
Projects
-
Roboscape
- Present
Roboscape (2018)
Educational robotics platform for teaching fundamental cybersecurity concepts using robots and NetsBlox C, JavaScript -
Falcon9 Simulation
See projectNumerical simulation and feasibility analysis of a reusable rocket Python, Matlab
-
Fog Alert
A 3-component fog based, intrusion detection system with basic threat detection mechanisms. Using a Raspberry Pi Zero, a beefy RPi 3, and NodeMCU modules Python, C
Other creatorsSee project -
Generalizable QLearning Framework
See projectA simplified deep Q learning framework with examples Python, JS
-
Sketch Adventures
A game made for Global Game Jam 2018 to learn Rust. It is a game that allows users to move with the arrow keys and draw with the mouse. User drawings are classified and come to life with different behaviors to help pass the levels. Watch our demo on my page (man.hamidzare.xyz). Rust, Python
Other creatorsSee project -
Visual Machine Learning
See projectMachine Learning and Reinforcement Learning abstractions for Snap visual programming environment. JavaScript, Tensorflow.js
-
NetsBlox
- Present
An educational visual programming language for learning distributed programming that extends Snap!, a visual programming environment from Berkeley, to provide simple networking abstractions which allow users to develop networked applications.
Other creatorsSee project -
Next Block Prediction
See projectPredicting and suggesting next blocks in block programming languages given the current flow of student's project using N-grams, Word2Vec and RNNs. Python, Tensorflow
-
Palantiri Gazing App
A toy app to demonstrate and exercises different concurrent programming paradigms and frameworks in Java. Java, Android, Concurrent Programming
-
UniDB
See projectUniversity Database is a crowdsourced database of universities and colleges in the states. In need of an accurate, comprehensive, and free source of information, I developed and published the platform as I was going through the graduate school application process. RoR, Ruby
-
Smarter Home w/ Raspberry PI & ESP8266
- Present
Building a smarter home w/ help of Homeassistant & hass.io
-
NetsBlox Player
-
See projectA mobile app to run networked, user-created, NetsBlox projects on IOS and Android. JS, Cordova, Ionic
-
Device Provisioning (Roboscape)
-
A set of solution for batch provisioning of heterogeneous robots used for provisioning Roboscape robots. C, JS, Vue.js
Other creatorsSee project -
Distributed PubSub Broker
-
Led a team of three to design and implement three different architectures of a resilient PubSub broker with QoS using ZeroMQ, CHORD, and Zookeeper from scratch.
Other creatorsSee project -
Finite Automaton
-
See projectDone as part of an optional class project "Automata & Formal Languages "
Programming NFA to DFA conversion algorithm -
On Campus RPI-Powerd File Sharing App
-
-
Process Timings Algorithms - FIFO & LIFO
-
Operation Systems course
-
Processing Bitmaps
-
Computer Graphics Course: Processing and redrawing bitmap images.
Selected as the best project of the course
Honors & Awards
-
Full Scholarship
Vanderbilt University, Graduate School
-
Top 1%
Iranian National University Entrance Examination
Ranked in the top 1% in the Iranian National Universities Entrance Exam
Other similar profiles
Explore top content on LinkedIn
Find curated posts and insights for relevant topics all in one place.
View top content