CSCD 210 — PROGRAMMING PRINCIPLES I
Learning Objectives & Matches
Write, compile and execute a complete program for a given problem.
Compile and write documentation of program development and subsequent revisions, inserting comments in the coded instructions so others can understand the program.
Consult with and assist computer operators or system analysts to define and resolve problems in running computer programs.
Modify cutting programs to account for problems encountered during operation, and save modified programs.
Compile, administer, and grade examinations, or assign this work to others.
Compile, administer, and grade examinations, or assign this work to others.
Compile, administer, and grade examinations, or assign this work to others.
Compile, administer, and grade examinations, or assign this work to others.
Compile, administer, and grade examinations, or assign this work to others.
Compile, administer, and grade examinations, or assign this work to others.
Compile, administer, and grade examinations, or assign this work to others.
Write, compile and execute a program that will implement the Comparable interface.
Compile, sort, and verify the accuracy of data before it is entered.
Confer with numerical control programmers to check and ensure that new programs or machinery will function properly and that output will meet specifications.
Confer with engineering staff and consult specifications to evaluate interface between hardware and software and operational and performance requirements of overall system.
Electronically sort and compile text and numerical data, retrieving, updating, and merging documents as required.
Modify existing software to correct errors, adapt it to new hardware, or upgrade interfaces and improve performance.
Compile, administer, and grade examinations, or assign this work to others.
Compile, administer, and grade examinations, or assign this work to others.
Compile, administer, and grade examinations, or assign this work to others.
Compile, administer, and grade examinations, or assign this work to others.
Compile, administer, and grade examinations, or assign this work to others.
Write, compile and execute a complete program that will override the equals method.
Compile, sort, and verify the accuracy of data before it is entered.
Compile, administer, and grade examinations, or assign this work to others.
Compile, administer, and grade examinations, or assign this work to others.
Compile, administer, and grade examinations, or assign this work to others.
Compile, administer, and grade examinations, or assign this work to others.
Compile, administer, and grade examinations, or assign this work to others.
Compile, administer, and grade examinations, or assign this work to others.
Compile, administer, and grade examinations, or assign this work to others.
Compile, administer, and grade examinations, or assign this work to others.
Compile, administer, and grade examinations, or assign this work to others.
Implement a program that uses an array to solve a problem.
Analyze problems to develop solutions involving computer hardware and software.
Write new functions or applications in programming languages to conduct analyses.
Program computer numerical control machines.
Implement program plans by ordering needed materials, scheduling speakers, reserving space, or handling other administrative details.
Monitor program performance to ensure efficient and problem-free operations.
Program and use computers to store, process, and analyze data.
Consult with and assist computer operators or system analysts to define and resolve problems in running computer programs.
Instruct others in program methods, procedures, or functions.
Modify cutting programs to account for problems encountered during operation, and save modified programs.
Train users on the use and function of computer programs.
Implement code that reads information from a file.
Code data prior to computer entry, using lists of codes.
Find, retrieve, and make copies of information from files in response to requests and deliver information to authorized users.
Program and use computers to store, process, and analyze data.
Compile, sort, and verify the accuracy of data before it is entered.
Write and execute scripts to automate tasks, such as parsing large data files.
Monitor use of data files and regulate access to safeguard information in computer files.
Write program code to analyze data with statistical analysis software.
Electronically sort and compile text and numerical data, retrieving, updating, and merging documents as required.
Create, analyze, report, convert, or transfer data, using specialized applications program software.
Compile and analyze data obtained from monitoring or diagnostic tests.
O*NET-aligned topic inventory
57 tags extracted from this course-term's Canvas content, organized by O*NET 30.2 dimension. Depth reflects what students do with each topic over the term: mastered, practiced, introduced.
Setup-hub Step 3 mandates Git installation; every lab submission requires 'git add', 'git commit', and 'git push' to a per-student GitHub repo (last push before deadline = grade).
pages/setup-hub.html;assignments/11313787-Lab 00_ Workflow Bootcamp.html;assignments/11313789-Lab 03_ User Input.html;syllabus.html
All lab repositories live on GitHub; syllabus 'Labs' policy states 'Push your code to GitHub — the autograder scores the last push before the deadline.'
syllabus.html;assignments/11284626-Lab 01_ Hello_ World.html;pages/setup-hub.html
Every lab is built and tested via './gradlew test' (Mac/Linux) or 'gradlew.bat test' (Windows); Lab 00 setup explicitly walks students through running the Gradle wrapper.
pages/setup-hub.html;assignments/11313787-Lab 00_ Workflow Bootcamp.html;assignments/11284626-Lab 01_ Hello_ World.html;assignments/11313789-Lab 03_ User Input.html
Lab feedback comes from automated test suites run by the Gradle wrapper (the 'BUILD SUCCESSFUL' / failing-test output described in every lab spec is the JUnit runner output).
assignments/11313787-Lab 00_ Workflow Bootcamp.html;assignments/11284626-Lab 01_ Hello_ World.html;assignments/11313789-Lab 03_ User Input.html
Lab 00 Workflow Bootcamp instructs students 'You should try to do your labs in VS code on your desktop'; VS Code with Java Extension Pack is the primary recommended IDE in setup-hub and the assumed dev environment across all 14+ labs.
assignments/11313787-Lab 00_ Workflow Bootcamp.html;pages/setup-hub.html
All labs (Lab 00 through Lab 8) require students to write, compile, and submit Java source files; setup-hub mandates JDK 21+ via Adoptium Temurin and verifies with 'java -version'.
syllabus.html;pages/setup-hub.html;assignments/11284626-Lab 01_ Hello_ World.html;assignments/11313789-Lab 03_ User Input.html
Syllabus AI Tools policy names Copilot directly: 'You may use AI tools (ChatGPT, Copilot, etc.) to explain concepts, understand error messages, or review your code. You may not use AI to generate code...' Named and bounded; no graded assignment exercises it.
syllabus.html#ai-tools
Syllabus grade breakdown allocates 20% to 'Active Learning'; in-class active-learning assignments (e.g. '4-9-R String comparisons', '4-16-R precondition practice') are graded daily.
syllabus.html;assignments/11375441-4-9-R _String comparisons_.json;assignments/11388145-4-16-R precondition practice.json
Syllabus expects in-class accountability ('You are accountable for material covered in class'); 20% Active Learning grade rewards participation in classroom discussion.
syllabus.html
Lab 8 'Methods' offers three open-ended programming options (DungeonForge, HouseBuilder, Caesar Cipher) where students design and implement multi-method solutions from scratch.
assignments/11407330-Lab 8_ Methods.html;assignments/11394745-Lab 7_ Pomodoro Timer.html
Quiz 'If-Else Mystery Practice' and Midterm 1 'tracing-style' questions require students to reason through unfamiliar method bodies and predict exact output, not pattern-match memorized solutions.
quizzes/2378927-CSCD 210 _ If-Else Mystery Practice-questions.json;assignments/11313814-Midterm 1.html
Lab 8 explicitly asks students to choose among three lab variants; method-design labs ask students to write Javadoc preconditions and select method overloads (DungeonForge spec).
assignments/11407330-Lab 8_ Methods.html
Midterm 1 prep section explicitly coaches study strategy: 'focus more on your ability to write code for an arbitrary problem and less on memorizing the solutions… start with writing the method header… then the pieces you KNOW will be involved.'
assignments/11313814-Midterm 1.html
Lab 04 'Unit Converter' requires arithmetic operators and casting; quiz mystery problems test integer arithmetic, modulo, and operator precedence.
assignments/11313790-Lab 04_ Unit Converter.html;quizzes/2378927-CSCD 210 _ If-Else Mystery Practice-questions.json
Course title 'Programming Principles I'; 14+ Java lab assignments and 6 CodeStepByStep practice sets each require writing/compiling/submitting Java code graded by an autograder.
syllabus.html;assignments/11284626-Lab 01_ Hello_ World.html;assignments/11313789-Lab 03_ User Input.html;assignments/11407330-Lab 8_ Methods.html
Every lab is graded by an autograder running JUnit-style tests via './gradlew test'; students iterate locally until 'BUILD SUCCESSFUL' before pushing to grade.
assignments/11313787-Lab 00_ Workflow Bootcamp.html;assignments/11313789-Lab 03_ User Input.html;pages/setup-hub.html
Every lab requires reading a multi-section README.md before coding; the syllabus directs students to the course wiki (jdoner02.github.io/ewucscd210) and assigns weekly readings.
assignments/11313787-Lab 00_ Workflow Bootcamp.html;assignments/11284626-Lab 01_ Hello_ World.html;syllabus.html;pages/week-1-readings.html
Syllabus warns 'this course moves fast — do not start labs the night they are due'; 14+ labs and 8 quizzes are spread across 10 weeks with hard deadlines (lowest of each is dropped).
syllabus.html
A dedicated 'troubleshooting' page exists for JDK / IDE / Git / Gradle / push errors; lab specs tell students to 'Read failing output carefully — it shows what went wrong.'
pages/troubleshooting.html;pages/setup-hub.html;assignments/11284626-Lab 01_ Hello_ World.html
Students must edit README.md and write Javadoc on Lab 8 (DungeonForge variant explicitly grades preconditions and Javadoc); no rubric grades prose clarity directly, so depth is light.
assignments/11407330-Lab 8_ Methods.html
Setup-hub teaches JDK installation, IDE installation, Git configuration, and command-line use across Windows/Mac/Linux as Week-1 onboarding; every assignment runs on a computer.
pages/setup-hub.html;syllabus.html
Course teaches software-engineering practices end-to-end: source control with Git/GitHub, automated testing via Gradle/JUnit, README-driven specs, and CI feedback via GitHub Actions.
pages/setup-hub.html;assignments/11313789-Lab 03_ User Input.html
Lab 04 (arithmetic operators, casting), quiz mystery problems (integer arithmetic, modulo), and 'Code-step-by-step Expressions Practice' assignment cover discrete numeric reasoning.
assignments/11313790-Lab 04_ Unit Converter.html;assignments/11367296-Code-step-by-step _Expressions Practice_.html;quizzes/2378927-CSCD 210 _ If-Else Mystery Practice-questions.json
Lab specs and READMEs are written in English prose with technical vocabulary; AI policy requires students to be able to 'explain every line of code' verbally or in writing.
syllabus.html
Lab 03 explicitly asks students to read 'a name (String), an age (int), and a GPA (double)' — applying type categories to user input; type-casting is a Week-2 topic with Lab 04.
assignments/11313789-Lab 03_ User Input.html;assignments/11313790-Lab 04_ Unit Converter.html;syllabus.html
If-Else Mystery Practice quiz requires students to deduce method output from given Java source by applying control-flow rules step-by-step (e.g. mystery2(20,4) → '5 4').
quizzes/2378927-CSCD 210 _ If-Else Mystery Practice-questions.json;assignments/11313814-Midterm 1.html
Debugging cycle in every lab: students observe failing './gradlew test' output, hypothesize a cause, edit, and re-test until BUILD SUCCESSFUL.
assignments/11313787-Lab 00_ Workflow Bootcamp.html;assignments/11284626-Lab 01_ Hello_ World.html;pages/troubleshooting.html
Week 8 'Searching, sorting algorithms' module and labs 15-16 cover algorithmic ordering; quiz mystery problems require ordered tracing of statement execution.
syllabus.html;modules.json
Operator precedence and integer-vs-double casting in Week 2 / Lab 04 require students to reason about arithmetic-type interactions; CodeStepByStep 'Expressions Practice' set is assigned.
assignments/11313790-Lab 04_ Unit Converter.html;assignments/11367296-Code-step-by-step _Expressions Practice_.html
Quizzes are 'handwritten, in-class' (per syllabus) and the final exam is 'in-class, handwritten, comprehensive' — students recall Java syntax from memory; Midterm 1 grants only a 'syntax reference sheet'.
syllabus.html;assignments/11313806-Quiz 1.html;assignments/11313816-Final Exam.html;assignments/11313814-Midterm 1.html
Quiz mystery problems require hand-computation of integer arithmetic, modulo, and division (e.g. n*2, a%b, a/b) under closed-book handwritten exam conditions.
quizzes/2378927-CSCD 210 _ If-Else Mystery Practice-questions.json;assignments/11313814-Midterm 1.html
Daily Mon-Fri lectures + active-learning grade component require students to follow live spoken instruction; office-hours and Discord interactions add real-time spoken/voice-channel comprehension.
syllabus.html
Autograder + visible test output trains students to detect specific failure modes; midterm prep emphasizes recognizing the *kind* of problem (English-to-Java translation) before coding.
assignments/11313814-Midterm 1.html;pages/troubleshooting.html
Quiz mystery problems require careful tracing of long Java methods one statement at a time; 'Read failing output carefully' is repeated lab guidance.
quizzes/2378927-CSCD 210 _ If-Else Mystery Practice-questions.json;assignments/11313787-Lab 00_ Workflow Bootcamp.html
Students must read multi-page lab READMEs, the syllabus, and the external course wiki to know what to do; Lab-04/05/06 specs are minimal and rely on the linked README/code.jdoner.me detail.
syllabus.html;assignments/11313790-Lab 04_ Unit Converter.html;assignments/11313791-Lab 05_ Chatbot.html
Method/parameter/return-value tracing in Week 5 + Quiz 'Parameter Mystery' style asks students to mentally simulate variable state across stack frames; no formal UML required.
syllabus.html;assignments/11313814-Midterm 1.html
Lab 8 DungeonForge variant requires students to write Javadoc; commit messages are required for grading. Light prose load — no graded essays.
assignments/11407330-Lab 8_ Methods.html;assignments/11313787-Lab 00_ Workflow Bootcamp.html
Lab 05 ('Text Analyzer / Chatbot') has students analyze user-provided text; Lab 04 unit conversions require interpreting numeric inputs across unit systems.
assignments/11313791-Lab 05_ Chatbot.html;assignments/11313790-Lab 04_ Unit Converter.html
Discord server is the official outside-of-class help channel ('the fastest way to get help from classmates and the instructor'); 20% Active Learning grade rewards in-class peer interaction.
pages/discord.html;syllabus.html
Lab 8 DungeonForge variant grades student-written Javadoc and preconditions; every commit requires a message; README.md is part of the deliverable.
assignments/11407330-Lab 8_ Methods.html;assignments/11313787-Lab 00_ Workflow Bootcamp.html
Autograder enforces exact-output / type / signature compliance; students must reconcile their code's behavior with README spec until 'BUILD SUCCESSFUL' before each push.
assignments/11313787-Lab 00_ Workflow Bootcamp.html;pages/setup-hub.html
Students must look up syntax and method behavior on the course wiki, codestepbystep, and lab READMEs; AI policy permits using AI 'to explain concepts' for self-directed learning.
syllabus.html;assignments/11332574-Sign up for code-step-by-step.html;pages/codestepbystep.html
Mystery-style quiz questions require students to identify which conditional branch fires, which variable mutates, and what the resulting print is; debugging is the same skill applied to live failures.
quizzes/2378927-CSCD 210 _ If-Else Mystery Practice-questions.json;assignments/11313814-Midterm 1.html
Lab 8 lets students choose among three lab variants; method-design assignments require choosing parameter lists, return types, and overload sets; Midterm 1 requires writing method headers from English specs.
assignments/11407330-Lab 8_ Methods.html;assignments/11313814-Midterm 1.html
The core deliverable in every lab is a Java program that processes input via Scanner and produces formatted output; Lab 03 / Lab 05 (text analyzer) are explicitly input-process-output programs.
assignments/11313789-Lab 03_ User Input.html;assignments/11313791-Lab 05_ Chatbot.html;assignments/11313788-Lab 02_ Character Stats.html
Lab 5 'Chatbot' and Lab 7 'Pomodoro Timer' specify behavior loosely and reward novel response logic / feature additions; DungeonForge requires designing a class+package structure from a Javadoc spec.
assignments/11313791-Lab 05_ Chatbot.html;assignments/11394745-Lab 7_ Pomodoro Timer.html;assignments/11407330-Lab 8_ Methods.html
Each week introduces new syntax (operators → conditionals → loops → methods → arrays → OOP); cumulative quizzes/exams require students to apply prior-week material in current-week problems.
syllabus.html;modules.json
Course is delivered on-campus in computer lab CEB 231; every assignment requires booting the JDK + IDE + Git toolchain on a personal computer or via Codespaces.
course.json;pages/setup-hub.html
Lab 02 'Character Stats' has students compute and display stat values from variables; Week 8 algorithm-analysis material introduces basic complexity intuition.
assignments/11313788-Lab 02_ Character Stats.html;syllabus.html
Lab 8 DungeonForge variant explicitly grades student-written Javadoc; all labs require a commit message; READMEs document the spec students implement against.
assignments/11407330-Lab 8_ Methods.html
Dedicated 'troubleshooting' page covers JDK/IDE/Git/Gradle/push errors; debugging from failing tests is the core feedback loop in every lab.
pages/troubleshooting.html;pages/setup-hub.html
Students run './gradlew test' before each push (lab spec Step 5); Lab 03 header explicitly says 'Autograded via GitHub Actions'.
assignments/11313787-Lab 00_ Workflow Bootcamp.html;assignments/11313789-Lab 03_ User Input.html;pages/setup-hub.html
Specific instance of the 'Processing Information' generic — every lab's central deliverable is student-written Java code submitted via GitHub.
assignments/11284626-Lab 01_ Hello_ World.html;assignments/11313789-Lab 03_ User Input.html;assignments/11407330-Lab 8_ Methods.html
Every lab Step 5 is 'Run the tests' via gradlew before pushing; students iterate locally and watch GitHub Actions output.
assignments/11313787-Lab 00_ Workflow Bootcamp.html;assignments/11313789-Lab 03_ User Input.html;pages/setup-hub.html
Standard lab feedback loop: ./gradlew test → read failing output → edit → re-test until BUILD SUCCESSFUL → push; troubleshooting page exists for systemic errors.
assignments/11284626-Lab 01_ Hello_ World.html;pages/troubleshooting.html;assignments/11313787-Lab 00_ Workflow Bootcamp.html
All Java labs (Lab 01-08+) require students to write programs from a spec, run tests, and rewrite when failing; midterm includes 2 programming questions where students write methods from English descriptions.
assignments/11284626-Lab 01_ Hello_ World.html;assignments/11407330-Lab 8_ Methods.html;assignments/11313814-Midterm 1.html
Lab 8 DungeonForge requires student-written Javadoc and preconditions; commit-message discipline is taught in Lab 00 'Workflow Bootcamp'.
assignments/11407330-Lab 8_ Methods.html;assignments/11313787-Lab 00_ Workflow Bootcamp.html