Ariel Ortiz

dblp:08/5686 · DBLP profile ↗
← Back
15ranked-venue papers
11as first author
3since 2021 · last 2025
0009-0004-4181-2336ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Human-computer interaction and ubiquitous computing · 15 · 11 first-author · 3 since 2021Applied, interdisciplinary, general and emerging computing · 1 · 1 since 2021
YearPublicationVenuePosition
2025 Narrative-Driven Gamification in Data Structures and Algorithms Learning Projects
abstract
The Data Structures and Algorithms II course integrates gamified learning elements inspired by the Learning Mechanics-Game mechanics model to enhance student engagement, motivation, and the learning process. Students collaboratively develop a laboratory project, applying core concepts in data structures and algorithms. The Laboratory Guide has been designed to adopt progressive challenges, clear objectives, and creative customization opportunities. A mixed-methods study assessed the approach's impact, revealing improved engagement, comprehension, and self-regulation skills. While feedback validated the method's effectiveness, areas for improvement include enhanced guidance and group dynamics. Future iterations aim to refine gamification elements, further aligning educational goals with engaging learning experiences.
Ariel Ortiz, Aitana Gonzalez
ICALT2
2024 Technology We Can't Live Without!
abstract
This panel is the evolution of seven years of Technology that Educators of Computing Hail (TECH) Birds of a Feather sessions, grew into popular panels, and a regular column in ACM Inroads. Leveraging our experiences of teaching during the pandemic, many of us have incorporated technology we were forced to rely on during our time online, making for an even better experience for our students. This forum will provide a chance for a seasoned middle school, high school, community college, and university educator to showcase the technologies they can't live without, what problems they solve, and how to use them.
Dan Garcia 0001, Delnavaz Dastur, Kimberly Hermans, Nery Chapeton-Lamas, Ariel Ortiz
SIGCSE (2)5
2022 Using WebAssembly to Teach Code Generation in a Compiler Design Course
abstract
For many students, code generation is the most demanding topic covered in a typical undergraduate Compiler Design course. In this poster, the author will present how he has successfully used the fairly novel and promising WebAssembly technology in his course in order to make the said topic more relevant and engaging for learners. Once we have a compiler frontend that produces an abstract syntax tree (AST) and a symbol table for a given source program, the code generation phase involves traversing the AST and emitting the corresponding WebAssembly instructions in a generally straightforward fashion. The code generation phase is significantly simplified given that WebAssembly is actually an intermediate code for a stack-based virtual machine. The real machine code is produced later by the WebAssembly runtime's just-in-time (JIT) compiler. During execution, the generated code may call functions written in a high-level language directly supported by the runtime. This allows having basic I/O capabilities, like printing to the screen or reading input from the keyboard. At the end of the semester, students have authored the frontend and backend of a fully working compiler that translates a simple C-like procedural language into platform-neutral executable WebAssembly code.
Ariel Ortiz
SIGCSE (2)1
2019 Architecting Serverless Microservices on the Cloud with AWS
abstract
A microservice architecture decomposes the entire functionally of an application into a set of services that can be deployed and scaled independently. Each service does only one job and does it well. Thus, it's simpler to develop, test and maintain. Additionally, it has its own database and provides access to datasets and services through a well-defined application programming interface (API). Highly successful Internet companies, such as Amazon, Netflix, and Twitter, use microservice architectures to build their software. This workshop is aimed at CS instructors that wish to teach students how to design and build microservice-based applications using cloud services and products provided by the Amazon Web Services (AWS) free tier. We'll start creating a cloud development environment with the AWS Cloud9 IDE. Afterwards, we'll code in Python several RESTful web services using AWS Lambda functions, which are serverless cloud computing services that are executed in response to events. The advantage of going serverless is that you build and run applications and services without thinking about servers. Your application still runs on servers, but all the server management is done by AWS. Finally, we'll demonstrate how to persist our information in a NoSQL database using the Amazon DynamoDB service. More information available at: http://microservices.arielortiz.info/ Laptop required.
Ariel Ortiz
SIGCSE1
2018 Programming Web Services on the Cloud with Node.js: (Abstract Only)
abstract
Node.js is one of the hottest open source web platforms currently available. It's used by companies like PayPal, DowJones, Walmart, Netflix, and Yahoo. Node.js allows you to use JavaScript to write all kinds of network servers in just a few lines of code, definitely easier than using other platforms based on languages such as C++, C# or Java. If you know how to use JavaScript on the front end (i.e., the browser), it's a breeze to use it on the back end (i.e., the server). This workshop is aimed at CS instructors that wish to teach students how to use and write RESTful web services (a.k.a. web APIs) using Node.js on a cloud platform. The only thing you need is a computer with a modern web browser and a Wi-Fi connection. Participants will use the free service provided by the Cloud9 platform (https://c9.io/) to learn how to write scalable web services using Node.js, the Express web framework, MySQL, and Ajax via jQuery. Web services allows us to build powerful web based applications using data from multiple online sources. And, by using a cloud platform, we have all our tools readily available through a web browser, thus eliminating the hassle related to installing a complete and fully functional web development environment. Participants are expected to have a working knowledge of JavaScript, SQL and HTML. Additional information available at http://node.arielortiz.info/ Laptop required.
Ariel Ortiz
SIGCSE1
2016 Programming Web Services on the Cloud with Node.js (Abstract Only)
abstract
Web services (a.k.a. web APIs) allow developers to build web and mobile applications using data from multiple online sources. This workshop is aimed at CS instructors that wish to teach how to use and write web services using Node.js on a cloud development environment. Node.js is an open source JavaScript platform that is currently used by companies like PayPal, DowJones, Walmart, Netflix, and Yahoo. Over 120 companies in the fortune 500 are not only using, but embracing Node.js in their everyday operations. Using and writing web services in Node.js is significantly easier than using other environments based on languages such as C# or Java. Because we will be using a cloud platform, all our tools are readily available through any modern web browser, thus eliminating the hassle related to installing a complete standalone development environment. Teaching web API design with Node.js on the cloud provides our students a relevant real life technical skill. Workshop participants will use the free service provided by Cloud9 IDE (https://c9.io/) to learn how to write scalable RESTful web services using Node.js, the Express web framework, MySQL, and jQuery. Participants should have a working knowledge of HTML, JavaScript, and SQL. Additional information available at: http://node.arielortiz.info/ Laptop required.
Ariel Ortiz
SIGCSE1
2015 A Bottom-Up Approach to Teaching Server-Side Web Development Skills (Abstract Only)
abstract
When dealing with the topic of back-end programming many CS web development courses typically focus on how to use a popular web framework, for example Spring MVC or Ruby on Rails. The problem with this approach is that students will most likely end up using some other different framework or technology if ever they decide to become professional web developers. Our students need to learn concepts and skills that serve as a foundation to learn whatever different technologies are used now or happen to appear in the future. This poster presents the author's experience on using a bottom-up approach to teach the fundamental aspects of how the HTTP protocol works, and how this knowledge can be used to get a deep understanding of the inner workings of the web by building a simple yet complete server-side web framework. Using Node.js as the development platform, students are able to take TCP sockets as the building blocks for higher-level web abstractions. This approach allows covering a variety of specific topics that are essential for a professional web developer: request and response structure and headers, HTTP methods, form processing, cookies and sessions, text encodings, MVC software architectural pattern, database integration using ORM (Object-Relational Mapping), REST (Representational State Transfer) architecture, security issues (HTTPS protocol, common web vulnerabilities), and client-side integration using AJAX (Asynchronous JavaScript and XML). Anecdotal evidence shows that students with this knowledge repertoire are better suited for learning, using and debugging new and existing web technologies.
Ariel Ortiz
SIGCSE1
2014 Server-side web development with JavaScript and Node.js (abstract only)
abstract
Node.js is one of the hottest open source web platforms currently available. It's built on Google Chrome's V8 JavaScript runtime engine and it allows you to write all kinds of network applications and servers in just a few lines of code. Node.js uses an asynchronous programming model built on non-blocking I/O and a single-threaded event loop. What this means, basically, is that you don't need to be concerned with awful race conditions or synchronization issues that arise when programming for a concurrent multi-user environment. This workshop is aimed mainly at web development instructors that would like to consider teaching a single programming language, JavaScript, for both client-side and server-side coding. Participants will learn how to employ Node.js on Windows, Mac OS or Linux in order to write scalable web servers and applications. Additionally, the Express web framework will be introduced in order to demonstrate how to quickly program traditional webapps and single-page applications (SPA) with the aid of jQuery, AJAX and RESTful web services. The resulting programs will be usable from any modern web browser, including those found in desktop and laptop computers, and mobile devices such as tablets and smart-phones. Participants should have prior working knowledge of client-side (running on a browser) JavaScript and HTML. More information: http://node.arielortiz.info/ Laptop Required.
Ariel Ortiz
SIGCSE1
2012 Web development with python and django (abstract only)
abstract
Many instructors have already discovered the joy of teaching programming using the Python programming language. Now it's time to take Python to the next level. This workshop will introduce Django, an open source Python web framework that saves you time and makes web development fun. It's aimed at Computer Science instructors who want to teach how to build elegant web applications with minimal fuss. Django follows the Model-View-Controller (MVC) architectural pattern. Its goal is to ease the creation of complex, database-driven websites. Django emphasizes reusability and "pluggability" of components, rapid development, and the principle of DRY (Don't Repeat Yourself). Python is used throughout, even for settings, files, and data models. Topics that will be covered during the workshop include: setup and configuration, template language, and database integration through object-relational mapping. Participants should have some familiarity with Python, HTML and SQL. Laptop Required.
Ariel Ortiz
SIGCSE1
2011 Teaching concurrency-oriented programming with Erlang
abstract
Teaching how to write correct programs is hard; teaching how to write correct concurrent programs is even harder. There is a desperate need for a better concurrency programming model than what most people are currently using. The Erlang programming language might be a step in that direction. This paper provides an overview of Erlang and how it has been successfully used to teach concurrency-oriented programming (COP) in a sophomore level course at the Tecnológico de Monterrey, Campus Estado de México.
Ariel Ortiz
SIGCSE1
2010 Multicore education: pieces of the parallel puzzle
abstract
Although Moore's Law continues to hold at present, Moore's Dividend - where software developers could rely on increasingly faster CPUs to make their software faster - has expired [5]. Instead of manufacturing uni-core CPUs with faster clocks, hardware manufacturers are producing multi-core CPUs, and many-core CPUs (with 32 or more cores) have begun appearing. Traditional sequential applications will not take advantage of these new hardware capabilities, and thus will not run any faster. To gain performance on these new and future hardware platforms, applications must be designed and written in pieces that run simultaneously on different cores. Ideally, the performance of such parallel applications should scale as the number of available cores increases.
Joel Adams 0001, Daniel J. Ernst, Thomas Murphy, Ariel Ortiz
SIGCSE4
2010 Building server-side web language processors
abstract
This paper discusses some useful insights for instructors who might want to consider using a web approach in courses in-volving language design and implementation. The basic idea is to have students build a language processor that actually runs on the web, instead of a processor that just runs on a command-line shell. The author documents the advantages and possible shortcomings of this approach, as well as his class experiences.
Ariel Ortiz
SIGCSE1
2008 Language design and implementation using ruby and the interpreter pattern
abstract
In this paper, the S-expression Interpreter Framework (SIF) is presented as a tool for teaching language design and implementation. The SIF is based on the interpreter design pattern and is written in the Ruby programming language. Its core is quite small, but it can be easily extended by adding primitive procedures and special forms. The SIF can be used to demonstrate advanced language concepts (variable scopes, continuations, etc.) as well as different programming styles (functional, imperative, and object oriented).
Ariel Ortiz
SIGCSE1
2003 Teaching the SIMD execution model: : assembling a few parallel programming skills
abstract
This paper gives an overview of what the SIMD (single-instruction/multiple-data) parallel execution model is, and provides an approach for presenting it to undergraduate students. We specifically propose a few assembly language idioms and programming projects which we have successfully used in the past to teach this non-trivial topic.
Ariel Ortiz
SIGCSE1
2000 Influence of JAVA on Software Engineering Education (panel)
abstract
Issues: How much influence will Java have on SE Education, and why? How should SE Education change to accommodate Java/OOD? What are some good Java-specific SE practices?
Peter J. Knoke, Wendy Doubé, Ariel Ortiz, Alejandro Teruel
CSEE&T4