• Contact Us Today!

    (925) 218-1816 or (510) 676-0415 | info@shengmengedu.com | 6691 Owens Dr, Pleasanton, CA 94588

  • Computer Programming and USACO

  • Shengmeng Education (SME) Center offers multiple year-round computer programming courses in Java and Python. SME also offers competition preparation labs for the yearly USA Computing Olympiad (USACO) contests in Java.

    Why learn computer programming?

    For many centuries, the ability to read - “literacy” - was the hallmark of the cultured and sophisticated individual.  Today, almost everyone can read; but with the rise of computing, “computer literacy” is now expected to replace regular book literacy as the need-to-know skill.

    Almost everyone can use a computer to some extent, but the very highest honor and skill in computing is the ability to control computers, through the art of programming them.  Currently, only 3% of Americans can code. Indeed, as the world becomes more automated, especially with the rise of artificial intelligence (AI), it is expected that those who know how to program computers will be some of the most privileged and respected members of society.  They will have the most exciting jobs, and also see the fastest growth in their careers, and the highest salaries, something we are already beginning to see in Silicon Valley today. The tech industry is one of the biggest industries in the US. It employs almost seven (7) million people and is growing continuously at a rate of 3% per year while many other industries are declining. Over one million good-paying technology job openings are unfilled currently in the US because of no qualified applicants. 

    Shengmeng Education (SME) Center in Pleasanton is pleased to get your student ahead of the curve, offering year-round Java and Python programming courses. Students will learn basic programming skills, advanced concepts in data structures, computing algorithms and software engineering, and gain the ability to solve complex problems. Meanwhile, for those participating in our USACO competition labs, students will train to compete and win in the United States of America Computing Olympiad (USACO).

  • Should my student study Python or Java?
    In this era of information technology (IT) and artificial intelligence (AI), it is well accepted that computer programming skills are rewarded with high salary and more job opportunities. Java has been and still is the No. 1 programming language in recent 20 years in IT industry. The prestigious TIOBE Programming Community Index ranked Java as No. 1 most popular programming language based on the number of skilled engineers, courses and third party vendors. It is also the designated programming language for high school AP Computer Science course, and runs faster than Python, which is important in competitive programming.


  • Python is the faster growing language in recent several years and it is best suited for data science, web development and artificial intelligence (AI). Python is easy and fun to learn and becomes the first choice of introductory programming languages.

    A student should learn Python first at Grades 5-6 to gain basic understanding of computer programming and to develop passion for coding. At Grades 7-8, a student should pick up another programming language such as Java. In high school, students may take AP Computer Science course in Java. Students who found passion in computer science and problem solving should take SME Java programming courses to prepare them for USACO contests. A high rank from USACO contests is a precious ticket for high school students to enter elite colleges.

    What is the best age to learn computer programming?

    Computer programming requires understanding of variables, equations and functions. Any student who understand these concepts is ready to learn computer programming. Computer programming is an abstract thinking process. Most students begin to develop these necessary abstract thinking abilities around an age of 12-13, roughly in the 7th grade.

    However, the Python programming language has a simple syntax. Its rich graphics, animation and game programming packages make Python easy and fun to learn, and we have had a great deal of luck teaching Python programming to younger students, as young as grades 4-6. It is ideal for students to develop their passion for computer programming before teen rebellion

    Why learn Python programming?

    The prestigious TIOBE Programming Community Index ranked Python as the 3rd most popular programming language, behind Java and C, based on the number of skilled engineers, courses and third party vendors. Python has been ranked consistently as the No. 1 programming language by IEEE Spectrum Report. Python now ranks as the most popular programming language by the Popularity of Programming Language (PYPL) website based on Google search statistics. Python was named the Programming Language of the Year in 2007, 2010, 2018 and most likely 2019 in the Programming Language Hall of Fame.

  • Python is the first choice of introductory computer programming languages because it is fun and easy to learn. Students at Grades 4-6 should start from Python coding, which is friendly and less intimating for young students. After that, students can learn more useful Python programming syntax and do hands-on Python coding projects. Python programming community has been growing rapidly because Python is best suited for web development, data science, machine learning, deep learning, and artificial intelligence (AI), which is supported strongly by Google, Facebook and many other top companies and universities. Python is also one of top three languages used for USACO competition. To sum up,

    1)     Python has a healthy, active and supportive community with plenty of documentation, guides, tutorials and active developers.

    2)     Python has great corporate sponsors and it is backed by Google

    3)     Python is the No. 1 choice for big data, data science, cloud computing, machine learning, deep learning, and artificial intelligence (AI).

    4)     Python has over 200,000 libraries hosted online for free download.

    5)     Python is reliable and efficient. One can accomplish more with fewer lines of code in Python than any other language.

    6)     Python is easy and fun to learn and great for both beginners and advanced users.

    7)     Python is free and platform independent. A python code can run on Windows, Linux and Mac without any change.

  • SME Java courses for USACO Contests

    Shengmeng Education (SME) Center offers competition labs to prepare students for USACO contests, which happen four times each year from roughly December through March (each year is a little different).  Based on the results of the web-based contests throughout the year (with particular emphasis on the US Open), as well as performance in the on-line training pages, approximately 16 - 24 students are invited to a rigorous academic training camp in the early summer, hosted at Clemson University. At camp, half a dozen more contests in addition to a full schedule of computing-related and extracurricular activities fill out the week of activities. At the end of camp, the top 4 students are selected by the USACO staff to represent the USA at the International Olympiad in Informatics (IOI). USACO 2019-2020 contest schedule is listed below

    Dec 13-16: First Contest
    Jan 17-20: Second Contest
    Feb 21-24: Third Contest
    Mar 27-30: US Open
    May 21-30: Training Camp
    Jul 19-26: IOI 2020 in Singapore


    Competition programming is a skill, not a memorized curriculum - students compete at a particular level until they have gotten fast enough and sophisticated enough to proceed to the next level.

    Specifically, USACO is a computer programming and problem solving competition for middle school and high school students in the USA, though students from around the world also participate. USACO offers four to six competitions during an academic year at four increasingly difficult levels: Bronze, Silver, Gold and Platinum. Participants in USACO contests submit computer programs in one of five programming languages: C, C++, Java, Pascal, and Python though C and Pascal are rarely used by students. SME students will compete in Java for USACO. Participants advance through the levels by performing well in their current division; some students may even be promoted through multiple divisions all in the same contest. More information about the United States of America Computing Olympiad (USACO), and sample contest challenges from past years, can be found on its official website: http://www.usaco.org/

    The very best performers in the USACO contests are invited to an elite training camp each June, and of those attendees, just 4 high schoolers are chosen to represent the United States each year in the International Olympiad in Informatics https://ioinformatics.org/. 

    Online USACO Contests

    The USACO contests are an open-book online computer programming competition. Students complete the contest problems on their own computer at home. USACO holds periodic web-based contests during the academic year, and in the late spring conducts the US Open, the "national championship" exam. Contests generally run for three to five continuous hours in length, although for maximum flexibility, you are free to schedule this block of time anywhere within a Friday-to-Monday contest weekend --- your timer starts when you log into the contest and download the problems. You submit your final solutions through a simple web interface. Participation is free and open to all. Contests are offered in four divisions:

    Bronze, for students who have recently learned to program, but who have no training in algorithms beyond basic concepts like sorting and binary search.

    Silver, for students who are beginning to learn fundamental problem-solving techniques (e.g., recursive search, greedy algorithms) and fundamental data structures.

    Gold, where students encounter more standard algorithms of a more complex nature (e.g., shortest paths, dynamic programming) and more advanced data structures.

    Platinum, for advanced students who are well grounded in algorithmic problem-solving techniques, who wish to challenge themselves with sophisticated and more open-ended problems.

    All participants start in the Bronze Division, and those who score particularly well in a contest will be promoted to the next division. Contestants scoring particularly highly (nearly perfect score) will be automatically promoted to the next division while a contest is still running, and they can take next-division contest during the same contest weekend. Others will need to wait until results are announced a few weeks after the contest to see if they meet the (contest-dependent) cutoff for promotion.


    Why USACO is getting increasingly popular?

    More and more middle school and high school students around the world participate in USACO contests. In last eight years, number of USACO contestants in December increased over 400%.

  • Why more and more students take USACO contests?

    1)     Each year hundreds of thousands of students take AMC math contests with intense competition. However, USACO is still at its early stage and its annual participants are less than 20,000. Fewer participants mean a better chance to succeed. Any student with good knowledge of algebra are ready to take USACO training courses and contests.

    2)     USACO contests are taken at the student’s home and on the student’s computer. It is also an open-book contest. The contest time is flexible and can be chosen within four days. Students can take the contest with ease and comfort. It is a blessing for stressful and frustrated teenagers.

    3)     USACO is a low-cost and time-saving contest without registration fee and out-of-town travel hassles and expenses.

    4)     A student may achieve a prominent USACO status in a short time. For example, a middle school student may achieve USACO Gold status in two (2) years.

    5)     Students from over 70 countries take USACO contests. The USACO contest award is a precious ticket to enter elite colleges around the world.

    6)     Good computer programming skills acquired through USACO contests will boost their grades of AP Computer Science classes and lead to highly-selective STEM summer camps and internships

    7)     USACO contests improve students’ technical literacy in an ever more digital world. Competing on technical tasks under pressure boosted students’ self-confidence.

  • James Dowdell, USACO instructor

    Mr. James Dowdell graduated from Harvard University in 2007 with a computer science degree. He is a seasoned software engineer (Java/Python/Scala/Javascript/C++) and has had a number of distinguished roles, including senior software engineer, data scientist, and manager, at several top technology companies including Microsoft, eBay, and Google. Recently he rediscovered his strong passion for teaching and hopes to transform Shengmeng Education Center into a launching pad for USACO rising stars and a center for training technical excellence. He looks forward to engaging new students who are eager to grow and excel in an environment where learning, questions, fun, participation, and some challenge, are all cultivated.