Animate, Draw & Explore using Scratch!

It will be all about using your creativity – animate objects, draw cool stuff, write a story, design a game or use sound effects! Responsible adult/parent is required to stay with the children throughout the workshop. 

.

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 www.calormen.com/logo to checkout the environment & look into the examples in www.utdallas.edu/~jeyv/logo, but do not introduce them to your child on your own! We do not want them to be bored when we are teaching :-) Hopefully, both you and your child 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.

.

Animations using Scratch

MIT Scratch is 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 scratch.mit.edu to checkout the tool and lots of examples. We will use a specific list of examples shown in www.utdallas.edu/~jeyv/scratch.  Do not introduce these sites to your child before coming to the class though – we do not want them to be bored when we are teaching! Hopefully, your child and you will be amazed at what Scratch can do. 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.

.

Advanced Scratch: Games & Stories

Once the students are comfortable with the basics covered in "Animations using Scratch", they can this advanced workshop to develop games & animated stories. We will typically use multiple sprites (objects) and even multiple code segments for each object. We will use sophisticated concepts like event driven programming and cloning objects to complete the projects in this workshop..

.

.

Playing with Finch Robots

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 Alice-like Finch Dreams Graphical IDE – it enables Elementary kids to write a few simple programs for the robot to move around, sense obstacles & light, play tunes and even draw pictures with a marker & a sheet of paper! # of participants are limited to 20 since we have only 20 robots in stock and we want every one to play with a robot individually!

.

Music using Scratch

While MIT Scratch is known for animations & games, it can make music too! Whether you are expert in music or have no clue, you will enjoy this workshop making music using simple computer programs in Scratch. Bring your earphones!

.

"Bring Math to Life" camp

This camp is specifically for students who are excited about Math – we will 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. After completing this camp, we encourage the students to take specific programming camps and delve into more complex scenarios.

Introduction to HTML and Internet concepts

Children taking the workshop "introduction to HTML and Internet concepts for elementary kids" will get their first taste of what the internet really is. While most children understand the word "Internet", they don't quite grasp how it works. This workshop aims to help them understand the concepts behind the internet and more specifically how it works. Children will learn how to code HTML using simple applications that they can find on their home computer. Time permitting, they will get an introduction into CSS (Cascading Style Sheet). By the end of the workshop, children should be interested in coding and able to create their own webpages (webpages will be local to the computer and not available on the internet).

.

Enjoyable intro to Programming using Alice (Animations)

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. If you want to preview the workshop content, visit www.utdallas.edu/~jeyv/alice. Since Alice does require "careful" drop operations, we do not recommend this workshop for Elementary school students.

We will start off with 1/2 hour lecture on fundamental programming concepts, then we will start digging into Alice tool. We will work on a series of examples throughout the day. Unless directed by the instructor, please do NOT work on your own ideas during the workshop – we really do not have that much time! Resist that temptation and follow the instructions provided in the classroom. You can always play with additional examples after you go home. 

Please bring Windows/Mac/Linux laptop with Alice 2.3 installed from http://www.alice.org/index.php?page=downloads/download_alice2.3. Download the appropriate one from the list at the top there:

Current Release – XXXXXXXX (Release Notes)

  • Download Alice 2.3 for Windows
  • Download Alice 2.3 for Mac OS X
  • Download Alice 2.3 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.

.

Enjoyable intro to Programming using Robots

This workshop is perfect for middle school students who have not done any programming so far. It uses Scribbler robots. The S2 robot 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 scribble as it drives! We will use the Graphical User Interface (S2 GUI) tile-based programming tools.

.

Enjoyable intro to Programming using JavaScript (Drawings)

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. 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. If you want to preview the workshop content, visit www.utdallas.edu/~jeyv/kajs. 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. We will use UTD Guest WiFi to connect to the web. Mozilla Firefox or Google Chrome browser is required. Go to https://www.khanacademy.org/cs/winston/823977317 - it should show a funny yellow colored head in your screen, then you are in good shape! Otherwise, try another browser or laptop. We request you to open the following sites in 2 tabs of the browser, put the computer to sleep mode and bring it to the class. Then, we won't even need to access the web in the workshop & makes the logistics simple!

.

Intro to Programming in Java

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:

• 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 http://www.oracle.com/technetwork/java/javase/downloads/index.html

-> Latest Eclipse Standard version from http://www.eclipse.org/downloads/.

.

Intro to Programming in C++

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 http://www.codeblocks.org/downloads/26 In case you run into installation problems, no worries – we will have a few helpers to install it when the workshop starts.

.

Intro to Programming in Python

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

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.

Pre-Requisites: Participants should have the following skillsets to get the full benefit from this workshop:

·         Knowledge of Python (complete “Intro to Programming in Python workshop first)

·         Knowledge about MVC architecture

·         Basic knowledge about HTML, Javascript . How web works.

.

.

Intro to Programming using Python and Robots

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.

.

Intro to Programming in C#

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 .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

.

Android applications using MIT App Inventor

Are you eager to develop apps for mobile phones, but do not know how to program in Java? 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 is a good idea to complete Alice workshop first.

.

Object Oriented Programming in Java

You need to be strong in introductory Java before taking this workshop. This workshop will go directly into Classes.

You need to bring a laptop with WiFi capability to the workshop. 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 http://www.oracle.com/technetwork/java/javase/downloads/index.html

-> Latest Eclipse Standard version from http://www.eclipse.org/downloads/.

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

- Classes & Methods

- Composition & Inheritance

- Polymorphism and Interfaces

- Collections and Generics

.

Object Oriented Programming in C++

You need to be strong in introductory C++, before taking this workshop. You need to bring a laptop with WiFi capability to the workshop. There are several choices of IDEs to develop C++ programs.  Please download and install CodeBlocks for C++: 

codeblocks-12.11mingw-setup.exe from www.codeblocks.org/downloads/26

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

- Classes & Methods

- Composition & Inheritance

- Friend and Virtual Functions

- C++ STLs

.

.NET programming with C#

.

Programming Competition problems

What is special about programming competition problems? It is all about algorithmic thinking & solving problems correctly & efficiently! If you are strong in programming fundamentals and can code well in Java or C++, you will get the maximum value from this workshop. We will show what it takes to compete in the programming competitions and start with a few simple competition problems. We will start with Bronze level problems in www.usaco.org and work towards harder problems.

.

.

Advanced Java (GUI applications) with Greenfoot

Typically GUI is covered as the advanced topic in Java programming. 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 using Unity framework

This workshop is for students who are interested to develop Virtual Reality Game using Unity Framework (see http://unity3d.com/learn 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 develop a simple game before the day is over!

.

.

Embedded C programming with Arduino

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.

.

Web programming using PHP

Topics that will be covered in the camp:

PHP Internals.

Datatypes,Arrays,

Functions,

Classes and Objects,

Files and Directories.

Web Form Handling

Data Validation

Sessions and User Tracking

.

Web programming using JavaScript

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.

.

Develop & integrate game/app with Facebook

.

Social Coding

What happens when you combine code development with social networking? Social coding – the newest trend in, and future of, development. Social coding approaches software development in a way that highlights collaboration between developers by providing them with an environment to discuss, share and create. In these repositories, developers can work together to change, adapt and improve software.

Although the term is often associated with social coding websites such as GitHub, BitBucket, CodePlex and Google Code, the term can be used to describe any development environment that encourages discussion and sharing. 

This workshop will cover the following items and topics:

• Git: Architecture of Git, Git basics, Installing git on your computer and on a server, Git on a distributed system, Customizing Git, Your first social coding project with Git.

• Maven:

o Architecture of Maven.

o Maven basics.

o Installing Maven on your computer.

o Communicating with a Maven server.

o Adding dependencies from a Maven server.

o First project with Maven.

o Building with Maven.

o Integrating Maven with Eclipse.

• Ant:

o Architecture of Ant.

o Ant basics.

o Compiling a project with Ant.

o Using Ant with Eclipse.

• Continuous integration systems:

o What it is?

o Basics.

o Hands-on with tools like Apache Gump and Hudson.

o Building a basic continuous integration system.

.

.

Intro to Programming in Ruby

.

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.

.

Introduction to 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 http://www.autodesk.com/products/autodesk-maya/overview for more details. Due to the complexity of software, we recommend it only to high school students.

MySQL database development & administration

 MySQL is the world's most popular open source database software, with over 100 million copies of its software distributed.

 With its superior speed, reliability, and ease of use; MySQL has become the preferred choice for Web 2.0, SaaS, and for proactive IT Managers. Many of the world's largest and fastest-growing organizations use MySQL to save time and money powering their high-volume Web sites, critical business systems, and packaged software — including Yahoo,Google, Adobe, YouTube, Wikipedia, Alcatel-Lucent and Booking.com. MySQL is a key part of LAMP (Linux, Apache, MySQL, PHP / Perl / Python), the fast-growing open source enterprise software stack. More and more companies are using LAMP as an alternative to expensive proprietary software stacks because of its lower cost and Platform independence.

 BY END OF THE WORKSHOP, YOU WILL BE ABLE TO:

 - Install and Configure MySQL Database/Server system

 - Recap SQL query language

 - Create and Manage Database by mastering queries

 - Work with MySQL DATATYPES|SCHEMAS|TABLES|VIEWS|TRIGGERS|EVENTS|STORED PROCEDURES

 - FETCH general information about DATABASES and SCHEMA PROPERTIES

 - Perform MySQL Administration : BACKUP|RECOVERY|ACCESS CONTROL|OPTIMIZATION

 - Get hands on MySQL Workbench (A GUI based user friendly MySQL server management client tool)

Download and install MySQL Community Server 5.5.x or 5.6.x and MySQL Workbench from http://dev.mysql.com/downloads/, in your laptop before coming to the workshop.

Java DataBase Connecitivity (JDBC) programming

Database programming has traditionally been a technological Tower of Babel. We are faced with dozens of available database products, and each one talks to our applications in its own private language. Java Database Connectivity is a standard Java API for database-independent connectivity between the Java programming language and a wide range of databases like Oracle,MySQL,MSSQL, etc. We will learn and implement the JDBC essentials:

- JDBC Introduction

- JDBC Driver types and connections

- JDBC Library and SQL syntax

- JDBC Statements and Resultsets

- JDBC Transactions

- JDBC Stored Procedure

- Examples and Applications

- Intro to Hibernate ORM

- Hibernate Configuration

- Hibernate Sessions and Mapping

- Examples

Prerequisites: You need to have a good understanding of the Java programming language. A basic understanding of relational databases, JDBC and SQL is very helpful. You are requested to bring your laptops (Windows preferred) and have JDK 7u45 & NetBeans 7.4 installed from http://www.oracle.com/technetwork/java/javase/downloads/index.html

LINQ – database access in .NET

Following topics will be covered in this workshop:

  • Introduction to LINQ
  • Standard Query Operators
  • Query Expressions
  • LINQ to Objects
  • LINQ to XML
  • Querying XML
  • LINQ to SQL
  • LINQ to SQL Mapping
  • LINQ and C#
  • Lambda Expressions
  • LINQ Queries

Introductory Game Maker

This workshop is all about Game development! You do not need to have programming background to attend this workshop.

Develop simple Minecraft MODs

We invite all Minecraft fans to come and attend this workshop! We will setup the environment to work with Minecraft MODs and run through a few simple projects – making code changes and seeing their effects!

Animation using Adobe Flash

We will learn the basics of animation using Adobe Flash. No background knowledge in animation is needed. Be ready to install a few Adobe tools and follow simple steps to do a few animations!

Advanced Game Maker

This workshop 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.

Develop advanced Minecraft MODs

This workshop assumes that you have some coding experience in Java. It will enable you to be comfortable with writing more code for MODs and enjoy the experience.

ECS Research Experience

This summer camp is limited to max 8 high school 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. 

.