Summer Camps & Short Courses

This page contains the descriptions for all the camps we may offer. We may not offer all the camps all the time (almost all of them are available any time for private camps though). We will continue to fine-tune our offerings and we may discontinue specific camps any time. 


Animate, Draw & Explore using ScratchJr!

It will be all about using your creativity – animate objects, draw cool stuff, make music, and even develop a simple game! Its friendly interface enables everyone including young children to get started, but it has tons of functionality to keep everyone interested for a long time, learning various programming concepts along the way! We encourage every one to bring an iPad – please download ScratchJr app and install before coming to the camp.


With abundance of web-based tools to learn coding, we hope to play with a different tool in every session and get introduced to coding concepts in an enjoyable way. If parents want to get an idea about these tools, visit and to see a few samples, but please do not prep your children and make the camp a boring experience! Just like Scratch, this camp is for freshers – no programming background is needed to attend this camp.

Animations using Scratch

MIT Scratch is a GUI based programming environment. While it has a friendly interface that appeals to young children, it has tons of functionality! You can do 2D animations of objects, create cool drawings, make a character sing a tune, develop an interactive game (control it with various inputs including voice!) and even narrate a story with images! Go to to checkout the tool and lots of examples. Scratch uses drag-and-drop programming which means no syntax errors – program is always ready to run! It enables the young learners to focus on the logic instead. This camp is for beginners – no prior experience is required.

Advanced Scratch: Games & Music

Pre-requisite: Animation using Scratch
Once the students are comfortable with the basics covered in “Animations using Scratch”, they can do advanced camp to develop games & make music. We will typically use multiple sprites (objects) and even multiple code segments for each object. We will use programming concepts to make music and even utilize randomness to change the tunes along the way. We will use sophisticated concepts like event driven programming and cloning objects to complete the projects towards the end..

Coding with Robots

Pre-requisite (recommended): Animation using Scratch

Finch robots are tiny USB-powered robots that were developed specifically to learn programming. While these robots can be controlled from programs written in almost dozen languages, we are going to use MIT Scratch – it enables Elementary kids to write a few simple programs for the robot to move around, sense obstacles & light, play tunes etc.! Then, we will look at another sophisticated robot called Scribbler – it is suitable for a wide range of programming skills. In addition to light-seeking, object detection, object avoidance & line-following, it can do art-work: place a Sharpie marker in the pen port and it will draw as it goes around! We will use the Graphical User Interface (S2 GUI) tile-based programming tools. Finally, we will look at Sphero robotic balls – they enable us to bring several math and science concepts to life!


Circuits using MaKey MaKey kit

Pre-requisite: None

Circuits with MaKey MaKey kit uses a kit that lets you turn anything into a controller. No technical expertise is needed, letting your imagination run wild while you quickly prototype ideas and interactions. It’s basically a simplified Arduino processor that enables alternative ways for several inputs on your computer like mouse click, space, left-right-up-down keys, etc. through interesting objects like human body, vegetables, anything wet, pencil lead and almost anything that conducts electricity. We will be working “fun” projects every day! View the gallery of MaKey MaKey based projects @


LittleBits Circuit design

Pre-requisite: None

LittleBits is a platform of easy-to-use electronic building blocks that empower you to invent anything, from your own remote controlled car, to a smart home device. The Bits snap together with magnets, no soldering, no wiring and no programming needed. Click here to see more details.
Kodu Game Lab

Pre-requisite: None

In Kodu Game Lab, games can be programmed using a combination of the keyboard and mouse in a graphical environment. Many different types of games can be made in Kodu, such as racing, strategy, RPGs, adventure, platform, puzzle, 1st person shooters, and others.


Fancy Drawings using Logo

Logo is all about programming to generate drawings. Logo is a wonderful tool to bring math concepts to life! We can use Logo to teach angles, division, remainder, random numbers, recursion and more!! You can go into to checkout the environment. You will be amazed by the wonderful drawings those tiny programs can generate & develop passion towards programming! While a typical 3rd grader can get started on Logo, even adults will enjoy learning to program with Logo – so Logo is really for all ages! Participants will learn about syntax errors with free-form typing and realize how picky the computer’s user interface can be!


“Bring Math to Life!”

This camp is specifically for students who are super-excited about Math – we will highlight/focus on bringing math concepts to life through Computer Programming. We will use Scratch, Logo, Alice, JavaScript or Java to see the math in action! Here are a few major concepts that will be covered: Angles, 3-dimensional space, random numbers, remainder, rotation, scaling & recursion. We hope this camp will increase the students’ interest in Computer Programming.


“Scratch on Raspberry Pi”

Raspberry Pi is a stand-alone, credit-card sized Linux based computer with has a lot of powerful applications. Campers will be introduced to the GUI interface of the Raspberry Pi and different ways of logging into the Raspberry Pi. After a quick review of MIT Scratch, campers will connect it to Raspberry Pi and learn to do cool applications like streaming video and sending emails on specific events to users etc.


Learning with Minecraft

Students will learn about the world of Minecraft and explore game mechanics in a fun and creative way. You’ll learn about house design, efficient farming and resource gathering, and even make contraptions using Redstone! We’ll also explore some engineering concepts including regularity and modularity. Best suited for students with minimal Minecraft experience, or those with experience only with the mobile version of the game.

Enjoyable Coding with Alice

This workshop is perfect for middle school students who have not done any programming so far. It uses drag and drop programming, which means there is no room for syntax errors! You can convert your idea to code quickly and see it in action! You can code 3D animations or games with ease. Alice comes with a powerful graphics library that minimizes coding effort.  Since Alice does require “careful” drop operations, we do not recommend Elementary students to take Alice directly, we recommend them to do Scratch first.

We will start off with a short lecture on fundamental programming concepts, then we will start digging into Alice tool. We will work on a series of examples throughout the camp. Please bring Windows/Mac/Linux laptop with Alice 2.4 installed from Download the appropriate one from the list at the top there:

Current Release – XXXXXXXX (Release Notes)

  • Download Alice 2.4 for Windows
  • Download Alice 2.4 for Mac OS X
  • Download Alice 2.4 for Linux

Installation instructions are given in the same page. These are huge download files! If you cannot download and install it, do not worry – we will have the downloaded files ready to install. Ask for help as soon as you come in. Alice 3.1 software is quite different and we will NOT use it in this workshop. Windows laptop is preferred, since our expertise with Mac and Linux are limited. Once installed, Alice tool behaves exactly the same way in all environments though.


Introduction to 3D Printing

This camp will start with an introduction to 3D printing, a walk-though of a typical 3D printer(loading filament, etc.) and a session on how to find and print simple 3D models. No previous 3D printing experience is required.  Campers will leave camp with a solid foundation in how to setup and use a modern desktop 3D printer.


Enjoyable Coding with JavaScript

Pre-requisite: Enjoyable intro to Programming using Alice

This workshop is perfect for students who have done little bit of programming using Alice/Scratch/Robots, etc., but have not spent much time with C/C++/Java yet. While good % of high school students may be OK to start here without any prior programming experience, all freshers are strongly encouraged to complete Alice camp first. KhanAcademy-Javascript environment features a web-page with coding area and virtual canvass area for output. As you type the code, output appears/changes. This friendly environment comes with a powerful graphics library that minimizes coding effort. While instant drawing output keeps the students’ enthusiasm, students will get used to dealing with syntax errors in a friendly way.

There is no software to install and all the work is done in a website. Mozilla Firefox or Google Chrome browser is required since IE does not work well. Go to to test your configuration/browser – it should show a funny yellow colored head in your screen, then you are in good shape! Otherwise, try another browser or laptop.



Programming in Java

Pre-requisite: Enjoyable Coding with JavaScript

It is a bad idea for freshers to learn Java directly – We recommend every one to climb the steps – complete a few workshops from our Enjoyable series (specifically Alice and JavaScript) before this workshop. In other words, it will be better if you have already mastered the basic programming concepts and have done some free-form coding – that will make assimilating Java bit easier. This workshop will cover the following concepts using hands-on activities:

• Java fundamentals

• if and switch statements

• loops

• static methods

• Arrays

• Introduction to Object Oriented programming

You need to bring a laptop with WiFi capability to the workshop. Please try to download and install following 2 Software modules before coming to the workshop:

-> Latest Java Platform (JDK) from

-> Latest Eclipse Standard version from


Programming in C++

Pre-requisite: Enjoyable Coding with JavaScript

It is a bad idea for freshers to learn C++ directly – We recommend every one to climb the steps as explained in – We recommend every one to complete a few workshops from our Enjoyable series (specifically Alice and JavaScript) before this workshop. In other words, it will be better if you have already mastered the basic programming concepts and have done some free-form coding – that will make assimilating Java bit easier. This workshop will cover the following concepts using hands-on activities:

  • C++ fundamentals
  • if and switch statements
  • loops
  • functions
  • arrays
  • pointers
  • introduction to Object Oriented programming

You need to bring a laptop with WiFi capability to the workshop. Please download and install Code::Blocks IDE with mingw compiler before coming to the workshop: codeblocks-12.11mingw-setup.exe from In case you run into installation problems, no worries – we will have a few helpers to install it when the workshop starts.


Programming in Python

Pre-requisite: Enjoyable Coding with JavaScript

We recommend every one to complete a few workshops from our Enjoyable series (specifically Alice and JavaScript) before this workshop. In other words, it will be better if you have already mastered the basic programming concepts and have done some free-form coding. This workshop will cover the following concepts using hands-on activities:

  • Introduction to Programs Data Types and Variables
  • Python Lists
  • For Loops, While Loops in Python
  • Fun with strings
  • Functions


Advanced Python Programming

Pre-requisite: Programming in Python

This workshop will cover the higher level concepts on python and Model View Controller architecture. The participants will learn how python can be used to build powerful MVC and how to use Django, a very popular and powerful framework to build their very first web application. At the end of the session they should be able to build their own python web-apps using MVC.

In addition to basic programming experience with Python, knowledge about MVC architecture, HTML and JavaScript will be helpful to get the full value of this camp.


Programming using Python and Robots

Pre-requisite: Enjoyable Coding with JavaScript

This workshop is an introduction to the powerful yet easy to learn programming language Python using robots and graphics. The participants will learn the basics of computer programming by writing interactive Python programs that controlrobots or draw beautiful graphics. Basic programming concepts such as variables, loops, conditionals statements, etc… required by these programs will be explained in details. Furthermore the workshop will explain also the basic concepts of robotics such as movement and interaction with the environment via various sensors.


Programming in C#

Pre-requisite: Enjoyable Coding with JavaScript

We recommend every one to complete a few workshops from our Enjoyable series (specifically Alice and JavaScript) before this workshop. In other words, it will be better if you have already mastered the basic programming concepts and have done some free-form coding. Here are the topics that will be covered:

  • Introduction to C#.NET
  • Dissecting your First program
  • Overview of Visual C# Express Edition
  • Variables and Assigning Values.
  • Operators, Expressions, Statements
  • Iterations
  • Reading and Writing Data using Text Files
  • Working on Classes and OOP Concepts
  • Data Collection using LINQ
  • Understanding Event Driven Programming


Mobile Apps using MIT App Inventor

Pre-requisite: Enjoyable Coding with Alice

You have a great idea for mobile app, but do not know how to program in Java/Objective C? No worries. MIT App Inventor enables you to use drag-and-drop mechanism to put your creative ideas to work and make Android apps. It will be helpful to bring an Android phone to test your apps. While drag-and-drop mechanism is easy to get used to, you will come across lots of components that need to come together to make a complex mobile application. We encourage Elementary and middle school students to complete Alice camp first.


Object Oriented Programming in Java

Pre-requisite: Programming in Java

This advanced Java camp will cover the following concepts and related hands-on activities:

– Classes and methods

– Composition & Interfaces

– Polymorphism & Inheritance

– GUI and Swing classes

– Collections & Generics

There are several choices of IDEs to Java programs. Based on the past experience, following tools suit well for our needs in this camp. Please download and install Eclipse for Java:

-> Latest Java Platform (JDK) from

-> Latest Eclipse Standard version from


Object Oriented Programming in C++

Pre-requisite: Programming in C++

This workshop will cover the following concepts and related hands-on activities:

– Classes & Methods

– Composition & Inheritance

– Friend and Virtual Functions

– C++ STLs

There are several choices of IDEs to develop C++ programs.  We recommend you to download and install CodeBlocks for C++:
codeblocks-13.12mingw-setup.exe from


Advanced Java & Android Application Development

Pre-requisite: Programming in Java or C++

We will cover a few advanced Java concepts like Swing & Inheritance during the first 2 days, then we will proceed to cover a few simple Android applications. We recommend you to bring an Android device with your Windows laptop, since Android emulator tool comes with a few limitations.

Objective C & iOS Application development

Pre-requisite: Programming in Java or C++

We will cover the basics of Objective C for couple of days, then we will proceed to cover a few simple iOS applications. Macbook is required for this camp. We recommend you to download and install XCode before coming to the camp. We also recommend you to bring an iOS device, but Apple does provide a built-in iOS simulator to test the most features.


OOP & Games in Java using Greenfoot IDE

Pre-requisite: Programming in Java

Typically GUI is covered as the advanced topic in Java programming & requires lot of coding. Greenfoot IDE changes this around and enables us to work with GUI utilizing pre-built objects in Greenfoot IDE. Participants can build sophisticated games and work on animations quickly using those objects. Everything is based on object oriented programming concepts – participants can strengthen their understanding of OOP concepts while working with this interactive GUI platform.


Virtual Reality game Design using Unity framework

Pre-requisite: Programming in C#

This workshop is for students who are interested to develop Virtual Reality Game using Unity Framework (see for documentation). This framework supports C# and JavaScript. This is an advanced workshop – students should be comfortable with Java/C++/C# and Object Oriented Programming concepts, before attending this workshop. We will start familiarizing with Unity environment in the morning and start working towards a simple game..


Web programming using PHP

Pre-requisite: Programming in Java or C++

Topics that will be covered in the camp:

PHP Internals.



Classes and Objects,

Files and Directories.

Web Form Handling

Data Validation

Sessions and User Tracking


Web programming using JavaScript

Pre-requisite: Programming in Java or C++

This workshop would teach students how to use JavaScript to develop web pages. All modern HTML pages are using JavaScript to add functionality, validate input, communicate with web servers, and much more. We would be using w3scholl’s built-in editor for JavaScript, and later on create our own standalone web pages. This is perfect workshop for students who have very basic knowledge of HTML and interested in developing really nice and powerful websites using JavaScript. Following topics would be covered: • JS Statements • Data Types • Functions • Operators • Comparisons • Switch • Loops • Validations • Animations

Other than these topics we would also show some fancy examples using JQuery and students would be given challenging exercises to create their own JavaScript enabled web pages.



Programming in Ruby & Ruby on Rails

Pre-requisite: Programming in Java or C++

This is an advanced workshop – you need to know Linux command line, OOP and some scripting knowledge to complete this one successfully.

This workshop introduces RoR, a framework for rapid development of advanced Web applications. RoR is based on Ruby, a pure Object-Oriented language that combines the power of Object-Oriented programming techniques and the agility of scripting languages that make Perl and Python popular. The workshop will start with an introduction fo the Ruby language so that the audience can learn about this exciting and popular OO scrpting languagge, and then will cover the fundamental concepts that form the foundation of RoR, e.g. MVC pattern, ActiveRecord, scaffolding, Convention over Configuration (add whatever RoR topics that you want to cover here), etc…

Here are the topics that we are going to cover:

Introduction to Ruby

Introduction to Rails powered Ruby. (RoR)

We would teach concepts on the go while developing a small demo app.

Brief Installation and configuration instructions

Installing and using gems.

Information about gemFile, Routs file, rake file, migrations.

Flow of HTTP requests/response and its processing through MVC of RoR.

Creating resources, dynamic pages, generating global application.html.erb files.

If time permits we would teach user input validations.


Animation using Maya

Maya is an industry-standard animation software- it is available for free to school & college students! While one day (even one week!) is hardly enough time to learn about Maya completely, we are hoping to cover a few simple animation examples/hands-on exercises in this workshop and make you comfortable to use Maya. You are welcome to visit for more details.

Engineering Projects with Arduino

Arduino is a low cost, and open source MCU platform that can create easily designed electronics and homemade projects ranging from simple models to robots and satellites. With an unlimited spectrum of input and output add-ons like sensors, indicators, displays, motors etc. this hardware is a boon for hobbyists and engineers to create devices that can interact with the real world. This workshop on Arduino will not just help the trainees to use the board but will also enable them to built embedded systems around it.

Coding with Drone

Co Drone is an arduino based drone kit that will allow students to learn about construction of drone and how to program them to fly. We start with introduction to arduino IDE and explaining the building blocks on how a drone is constructed and laws that make them fly. Then we build up on using these basic building blocks and program the drone kit to make it fly and reach the sky.

Lego Mindstorm EV3 Robots

We aim to provide a series of free light-hearted tutorials that will allow you to learn how to program and build small robots using the LEGO EV3 MINDSTORMS kits, starting with simple programs and robots, building your skills as you go. No programming or building experience is required – the tutorials start from the beginning, and you learn by doing.

Embedded programming with Arduino & Raspberry PI

Pre-requisite: Enjoyable Programming using JavaScript

This workshop will start with low-level operations in C, such as shifting, then discuss pointers. Embedded-programming concepts such as memory-mapped I/O and interrupts will be covered. There will be a few exercises in C, and a final exercise using the Arduino board and other components.

Embedded Systems with TI-MSP430 & Quadcopter Design

Pre-requisite: Enjoyable intro to Programming using JavaScript

Micro-controllers are little chips that enable intelligence in everyday objects. These tiny computers can be integrated into anything and can enable inexpensive, anytime, anywhere computing! From your electric toothbrush to your vehicle’s key fob, a micro-controller is the ‘brain’ programmed by code.  Micro-controllers enable new inventions every day. They can be the building blocks of your next big idea. Connect them with wireless modules, lights, motors, and more to create new or better solutions for today’s problems. Click here to know more about this camp.

Introductory GameMaker

This camp is all about Game development! You do not need to have programming background to attend this workshop. We will useGameMaker software in this camp. GameMaker enables us to assemble the building blocks and develop the professional quality games quickly! After the campers get comfortable with the building blocks & drag-and-drop programming, scripting will be introduced to show the glimpse of advanced level capabilities of GameMaker.


Advanced GameMaker

Pre-requisite: Introductory GameMaker
This camp is all about Game development! This workshops assumes that you have some programming experience. We will write code using the built-in scripting language GML to develop the games. We will use GameMaker software in this camp.

Web page design

Students will learn basic page building techniques for creating professional quality web sites — perfect for family or school projects. From storyboards, digital art and page building to navigation, design and page linking, students will gain mastery of digital techniques for designing web sites, step-by-step. Prior programming knowledge would be helpful, but not required.

Learning to code with Minecraft (Python)

Pre-requisite: Enjoyable Coding with Alice (recommended)

We invite all Minecraft fans to come and attend this camp! Begin with some short, simple Python lessons and then use your new skills to modify Minecraft to produce instant and totally awesome results. Learn how to customize Minecraft to make mini-games, duplicate entire buildings, and turn boring blocks into gold.

Recommended laptop configuration for Minecraft camp:

Minecraft MODs development

Pre-requisite: Enjoyable Coding with JavaScript OR Learning to code with Minecraft (required) & Programming in Java (recommended)

We invite all Minecraft fans to come and attend this camp! We will setup the environment to work with Minecraft MODs and run through a few simple projects – making code changes and seeing their effects! Then, we will get into serious coding for complicated MODs that will require to be knowledgeable in Java to get the full value of the camp.

Recommended laptop configuration for Minecraft camp:

Robotic Art – STEAM camp

Robots! What can you do with them? Why are they important?  Find out where art and engineering fuse!  This camp will introduce students to common sensors and motors, simple microprocessors and programming robots to turn inputs into actions.  Students will build robotic “kinetic sculptures” (or whatever they want).  Students will also spend time working with real robots in UT Dallas Robotics Lab. Instructor: Dr. Nick Gans


ECS Research Experience

This summer camp is recommended only for mature high school students (10th and 11th graders) who has good coding experience. We try to limit to max 8 students in each session. Students will visit a different research lab in Engineering and Computer Science every day  & get introduced to something new! It can help them to make informed decision when selecting the college major. Typical lab session will be 1-2 hours of lecture & demos followed by 1-2 hours of hands-on activity.

Databases & SQL programming

Campers will learn about the importance of databases, then start hands-on activities with one of the open-source databases like MySQL to learn about various concepts including hash mechanism that enables super-fast searches! After learning to simple and complex SQL queries, campers will be introduced to accessing databases from the web applications.

Linux installation & command line usage

We will install one of the popular Linux distros, understand various components of Linux, then dig deep into Linux command line & realize its full power – specifically, we will learn how to do complex operations by combining several simple commands using pipes. Then, we will learn how to use scripts to avoid typing several commands repeatedly. We will also learn how to run tasks periodically (also known as cron jobs).

Hands-on tour of Computer Programming

Pre-requisite: None
This camp is for high school students who have NO previous experience with Computer Programming. Following schedule will enable the campers to learn programming aspects in fast-paced manner with interesting problems every day. Students should be able to proceed to learn coding in Java/C++ after this camp.
Day 1: Scratch
Day 2: Alice
Day 3: JavaScript
Day 4: JavaScript
Day 5: Java


Data Structures & Algorithms

Pre-requisite: comfortable with Computer Programming in Java/C++
There is lot more to Computer Science than coding! This advanced level camp is ideal for high school students who are comfortable with Java/C++ programming and considering Computer Science as college degree. Appropriate selection of data structure is crucial to run the algorithms efficiently and achieve the best running time for a program while keeping the memory requirements in check. Arrays, linked lists, hash tables, tree & graph structures will be covered alongwith algorithms to operate & utilize each structure. While a typical software engineer may select a data structures and use available library functions, we will cover how those library functions are implemented.


Computer Architecture

Computers are mysterious. Even when we know how to program them to do what we want, we still don’t know how they do it. Do computers really speak Java? Computers are electronic devices. How does electricity solve problems?

In this camp, we will look under the hood of a computer and learn the fundamental language of computing systems: Binary Logic. Using an open-source logic simulator called Logisim, we will explore the basic architecture of a computer. We will learn how information flows from memory to processor and how electricity can encode the computer’s instructions.

If you’re the curious one that always wondered how computers really work, this camp is for you!

Topics: Number Systems (only binary), Basic Logic (Everyday Logic Exercise), Compound Logic, Truth Table to Compound Statements, Intro to Logisim, Decoder/Multiplexer exercise in Logisim, Compound Logic to Truth Table Exercise in Logisim, Concept of a Computer discussion, Hex/Negative numbers, Full-Adder exercise, Flip Flops

Big Data

Cloud Computing