---
id: expected
title: Expected Knowledge
author: Nathan Wang, Benjamin Qi
description: What you're expected to know before continuing onto the rest of USACO Bronze.
---

import { Problem } from "../models";

export const metadata = {
  problems: {
    general: [
      new Problem("Bronze", "Promotion Counting", "591", "Very Easy"),
      new Problem("Bronze", "Word Processor", "987", "Very Easy"),
      new Problem("Bronze", "Square Pasture", "663", "Very Easy"),
      new Problem("Bronze", "Bucket Brigade", "939", "Very Easy"),
    ]
  }
};

The remainder of this guide assumes that you know the basics of how to code in one of the languages listed above, including the following topics:

- Variables
  - Data types
- Reading Input
- Writing Output
- Loops
- If / Else
- Logical operators
- Functions
  - Basic Recursion (a function calling itself)
- Arrays
  - Multidimensional Arrays

In particular, contestants using Java should be familiar with roughly the first half of AP Computer Science A. Familiarity with [competition math](https://github.com/bqi343/USACO/blob/master/Resources/Competition%20Math.md) (ex. AIME qualification) is helpful but not required.

## Introductory Problems

The following require relatively little programming experience and no algorithmic knowledge. 

<problems-list problems={metadata.problems.general} />

Also check the [CSES Introductory Problems](https://cses.fi/problemset/list/) up to and including "Palindrome Reorder."

## Getting Started

You may find the following resources helpful for familiarizing yourself with your language of choice.

<resources>
  <resource source="CodeSignal" title="Arcade, Interview Practice" url="https://codesignal.com/" starred>can practice basics</resource>
  <resource source="Philippines OI" title="Prepare" url="https://noi.ph/prepare/" starred>lots of links!</resource>
  <resource source="VPlanet" title="Learn to Code" url="https://www.vplanetcoding.com/course1">basic problems, mostly loops</resource>
  <resource source="IOI" title="Getting Started" url="https://ioinformatics.org/page/getting-started/14">not up to date</resource>
  <resource source="Quora" title="Joshua Pan - Schedule for Beginners" url="https://www.quora.com/What-is-a-good-schedule-to-follow-for-becoming-better-at-competitive-programming-for-beginners">generally good, although CSES problemset (see "Resources") is definitely a better place to start than USACO Training or Codechef</resource>
</resources>
