Computer Classes / Camps


Intro to Programming with Scratch

This course is intended for students in 3rd thru 6th grades. Students will learn fundamentals of programming while they are working on projects and having fun using Scratch programming language. The focus of the course is problem solving skills. 

Who should take this course: Programming background is not required whereas grade level Math background is required. 3rd through 6th Graders.

math7.png

Introduction to Virtual Reality Programming in Unity for Oculus Platform

Virtual reality is an artificial environment that is created with software and presented to the user in such a way that the user suspends belief and accepts it as a real environment. This one of a kind class is specifically designed to introduce students to virtual reality concepts and programming.

The course is intended for beginners (Grade 5-8) and no prior programming experience or knowledge is assumed.

By attending this class, you will:

  • Create your own virtual world!! What would you change if you can create your own world?? It is your rules only in this world!! Simulate your three-dimensional environment that can be interacted with in a seemingly real or physical way by a person.
  • Learn the basics of C# programming language and Unity game engine
  • Test your game in Oculus Rift or Gear VR

Unity is a cross-platform game engine developed by Unity Technologies and used to develop video games for PC, consoles, mobile devices and websites.

C# (pronounced "C-sharp") is an object-oriented programming language from Microsoft that aims to combine the computing power of C++ with the programming ease of Visual Basic. C# is based on C++ and contains features similar to those of Java.

The Oculus Rift is a virtual reality headset developed and manufactured by Oculus VR, a division of Facebook Inc., released on March 28, 2016. The Samsung Gear VR is a mobile virtual reality headset developed by Samsung Electronics, in collaboration with Oculus, and manufactured by Samsung.


CS101: Introduction to Java Programming

This course is designed to teach students the basics of Java programming with the overview of Java language, variables and operations, program flow, arrays and lists, classes and objects, and simple game development. The purpose is to inspire students from game playing (too much?) to explore computer programming. This 24-week course is suitable for students from 4th grade to 8th grade. The course will expand the Fall semester (12 weeks) and Spring semester (12 weeks). No prior programming experience is required.

Students will need to bring their laptop computers to class.

The sessions of this course are listed below.
1.     Java Overview
2.     Variables and Operations
3.     Math Functions
4.     For-Loops
5.     If Statements
6.     Switch Statements
7.     Java Input
8.     Strings
9.     Arrays
10.   While Loops
11.   Nested Loops
12.   Binary and Hexadecimal Numbers

13.   File Input and Output
14.   Multidimensional Arrays
15.   ArrayLists
16.   Objects and Classes
17.   Methods
18.   Application: Rock Paper Scissors
19.   Text and Shapes in a Window
20.  Picture and Animation
21.   Application: Game 2048
22.  Application: Game 2048
23.  Application: Connect Four
24.  Application: Connect Four


Introduction to Java (Summer Camp) 4 weeks Half Day

This course is designed to teach students the basics of Java programming with the overview of Java language, variables and calculations, program flow, and arrays, ArrayLists, object-oriented programming, graphical user interface, and simple game development. The purpose is to inspire students from game playing (sometimes too much) to explore computer programming. This four-week summer camp course is suitable for students from 6th grade or up. Upon successful completion of this course, students can take the AP Computer Science course in high school or participate the USACO contests.

No prior programming experience is required. Students will need to bring their laptop computers to class.

The sessions of this course are listed below:

Week 1
1. Java Overview
2. Variables and Operations
3. For-Loops
4. Conditional Statements
Week 1 Labs

Week 2
5. Java Input
6. Java Strings
7. While Loops
8. Objected Oriented Programming
Week 2 Labs

 

Week 3
9. Nested Loops
10. Arrays
11. ArrayLists
12. Inheritance
Week 3 Labs

Week 4
13. GUI: Text and Shape in a Window
14. Animation: Moving Car
15. Game Design: Space Invader
16. Game Design: Space Invader
Week 4 Labs


CS201: Intermediate Java/AP CS Java

This course is designed to deepen the understanding of computer programming in Java. Topics include the input/output, arrays and arrayLists, inheritance, recursion, searching and sorting, and graphics user interface development. Upon completion of this course, students will be able independently design and implement some sophisticated programs. This 24-week course is suitable for students at 7th grade and up. The course will expand the Fall semester (12 weeks) and Spring semester (12 weeks). Algebra I and Computer Science I (Intro. to Comp. Sci.) are prerequisites.

Students will need to bring their own laptop computers to class.

The sessions of this class are listed below:
1.     Introduction and Java Overview
2.     Program Flow
3.     Java Strings
4.     Java Input and Output
5.     Arrays and ArrayLists
6.     Inheritance
7.     Polymorphism
8.     Abstract Classes and Interfaces
9.     Recursion
10.   Program and Class Design
11.   Program Testing
12.   Program Debugging

13.   Searching
14.   Sorting I
15.   Sorting II
16.   Algorithm Analysis
17.   Numeral Systems
18.   Application: Get 24
19.   Application: Get 24
20.  Simple Graphics User Interface
21.   Layout and GUI Components
22.  Application: Bubble Game
23.  Application: Bubble Game
24.  Application: Bubble Game


usaco_logo.jpg

CS301: USACO Bronze

This course is designed to help students to prepare for the USACO Bronze division competition and promote to the Silver division. Students will be extensively trained to properly interpret the questions and design algorithms to solve the problems. Accurate translation of the algorithms to code is the focus for the Bronze level competition. Students must be familiar with programming (Java or C++) to take this course.

Students will be trained to master the fundamental skills including operations, program flow, arrays, ArrayLists, and recursion. These skills will be practiced extensively to help students accurately implement their algorithms to solve the USACO problems. Since each test case of the problems is allowed to no more than three seconds in Java, students will develop the sense of computational complexity to recognize when efficient algorithms are necessary if the brute force approach is too expensive. Problems from past contests will be examined closely.

The sessions of this class are listed below.

1.     Java Overview
2.     Loops: Game Score
3.     Arrays: Finding Primes
4.     Strings: Very Long Integers
5.     Bases: Numeral System Conversion
6.     Matrix: Connect Four
7.     Case Study: Speeding Ticket (USACO 2015 Dec)
8.     Case Study: Angry Cows (USACO 2016 Jan)
9.     Case Study: Load Balancing (USACO 2016 Feb)
10.    Case Study: Cow Routing (USACO 2015 Jan)
11.    Case Study: Cow Routing II (USACO 2015 Jan)
12.   Test Case: Clustering


CS401: USACO Silver

This course is designed to help students to prepare for the USACO Silver division competition and promote to the Gold and Platinum divisions. In addition to the commonly used tools, data structures including stacks, queues, lists and the corresponding searching and sorting algorithms will be introduced and used frequently. As brute force algorithms normally won’t be able to finish the computation within time limit, complexity analysis will be the focus of this course.

Students will be trained to design algorithms to solve the problems with simpler test cases and then improve the algorithms to pass test cases with higher complexity. Loops and recursion will be compared to work for different circumstances. Also dynamic programming will be introduced as a powerful tool for some Silver problems. Problems from the most recent contests will be examined closely.

The sessions of this class are listed below:

1.    Data Structures
2.    User Defined Classes
3.    Functions and Recursion
4.    Sorting and Searching
5.    Dynamic Programming
6.    Brute Force and Improvement
7.    Case Study: Cities and States (Dec 2016)
8.    Case Study: MooCast (Dec 2016)
9.    Case Study: Secret Cow Code (Jan 2017)
10.    Case Study: Censoring (Feb 2015)
11.    Case Study: Paired Up (US Open 2017)
12.    Case Study: Bovine Genomics (US Open 2017)


CS501: USACO Gold

This course is designed to help students to prepare for the USACO Gold division competition and promote to the Platinum division. The standard data structures including lists, stacks, queues, heaps, sets and maps and the corresponding algorithms will be used intensively. The more advanced data structures of graphs and trees and the associated algorithms will be introduced. Also included are dynamic programming and computational geometry, which are used frequently in USACO upper division contests. An emphasis is put on the combination of the various techniques to solve the challenging problems. Past USACO problems will be closely examined as case studies to help illustrate the skills.

The sessions of this class are listed below:

1.    Data Structures I: Stack, Queue, Set, LinkedList, Generics
2.    Data Structures II: Tree, Heap, Priority Queue, Hash Table
3.    Data Structures III: Graph
4.    Shortest Paths
5.    Dynamic Programming I
6.    Dynamic Programming II
7.    Computational Geometry
8.    Greedy Algorithms
9.    Case Study: Meeting Time (Jan 2015)
10.    Case Study: Cow Navigation (Jan 2017)
11.    Case Study: Bovine Genomics (US Open 2017)
12.    Case Study: Modern Art (US Open 2017)