Programming Readiness: Programming Readiness

These short, self-paced resources help you check and refresh the programming skills used in CSCI 338. Tracing quizzes and write-a-method starters are available in Java or Python; pick one language and stay with it.

The problems match what you will be asked to write later in the course: grouping with a map of lists, target-sum, anagrams, frequency counts, distinct values, and planting in a flowerbed with no adjacent flowers.

Assessment specifications

  • R1 — Trace and reason: predict values and output by tracing code.
  • R2 — Methods and control flow: write and call methods using conditionals and loops.
  • R3 — Lists and arrays: traverse, transform, and reason about indexed collections.
  • R4 — Maps, sets, and algorithms: select data structures and build small algorithms.
  • R5 — Tests and debugging: use evidence from tests and errors to locate and fix defects.
  • R6 — Explain and revise: explain code precisely and improve it without changing required behavior.

The programming readiness diagnostic, module practice, and self-checks are formative. They identify what to practice; they do not bank an official Satisfactory result.

Official Verification is the scheduled individual paper assessment plus its typed follow-up. That is where course evidence is evaluated as Satisfactory or Not Yet.

Self-paced modules

  1. Java methods and conditionals
  2. Loops, counters, and accumulators
  3. Lists/arrays and traversal
  4. Maps/sets and frequency counting
  5. Simple algorithms and edge cases
  6. Testing and debugging

Tracing is practiced in worked examples, especially Modules 1–4. Explaining and revising are practiced in every exit activity, with extra emphasis in Module 6.

Where to begin

  • R1 Needs Practice: Modules 1–4; trace the worked examples before running them.
  • R2 Needs Practice: Modules 1 and 2, then Module 5.
  • R3 Needs Practice: Module 3, then Module 5.
  • R4 Needs Practice: Modules 4 and 5.
  • R5 Needs Practice: Module 6; use tests from every module as additional practice.
  • R6 Needs Practice: explain your solution at each module exit, especially Module 6.

If several areas need practice, begin with the lowest-numbered recommended module because later work builds on earlier skills.

UNC Asheville Department of Computer Science