Coding I - Fundamentals
Entry-level programming work in industry now often begins with a specification handed to an AI coding assistant, so the durable professional skill is reading, testing, and being accountable for code a person did not write. The course therefore still teaches Python fundamentals in full, but frames them as the literacy required to review and verify machine-generated work rather than only to produce it.
Current description → proposed description
This course allows students to explore initial computer programming concepts with an emphasis on mapping current problem solving abilities to techniques that produce efficient computer systems. Topics covered include: history of programming languages, variables, conditionals, iteration, methods, and objects. These topics are covered within the context of good problem solving techniques, algorithm design, and user experience. The use of Python, an industry standard programming language, allows students to focus on the concepts of programming while minimizing the complexity of language details. Computer certifications (such as Mendix) are explored also.
Coding I introduces computer programming in Python, emphasizing the translation of problem-solving ability into working, readable software. Students study variables, conditionals, iteration, methods, and objects alongside algorithm design, user experience, and the history of programming languages. Because professional code is now routinely drafted with AI coding assistants, the course treats fundamentals as the basis for judgment rather than as typing practice. Students write a precise specification before generating or writing code, trace unfamiliar programs line by line, construct their own test cases, and accept responsibility for the correctness of work they did not personally type. Particular attention is given to recognizing plausible-looking but incorrect machine-generated code, to deciding when an assistant should be used at all, and to documenting honestly which portions of an assignment were AI-assisted. Low-code and certification pathways such as Mendix are explored as a complementary route from specification to deployed application. CSC 2000 remains the programming foundation for the major.
What changes
- Specification-first problem decomposition before any code is generated
- Reading, tracing, and critiquing AI-generated Python
- Student-authored test cases as the standard of correctness
- Honest disclosure and provenance of AI assistance
- Judgment about when an assistant is and is not appropriate
6 proposed outcomes, mapped to 7 program outcomes
Each outcome below is written to be observable and assessable, and each is mapped to the program learning outcomes for which it produces evidence.
Students will be able to differentiate programming tasks that a student should complete unaided from tasks for which an AI coding assistant is an appropriate solution, demonstrating unaided competence by implementing Python programs that correctly apply variables, conditionals, iteration, methods, and objects.
PLO 4.2: ruling an AI-driven solution in or out for a given task is the introductory form of proposing and evaluating an AI-driven solution, with the unaided implementation supplying the competence standard the evaluation is made against; PLO 4.3: judging which work one should still do unaided requires an honest self-assessment of one's own ability and of what one is at risk of not learning, which is the reflective, continuously reassessed approach to problem-solving the outcome names.
Students will be able to decompose an informally stated problem into a written specification that names inputs, outputs, constraints, and edge cases before any code is written or generated.
PLO 4.3: committing to a written specification before coding forces the deliberate, reviewable problem-solving reflection the outcome describes; PLO 5.1: the specification is itself a written technical artifact that must communicate intent clearly enough for another person or an assistant to act on it.
Students will be able to critique code produced by an AI coding assistant by tracing its execution against their own specification and identifying logic errors, unhandled cases, and unjustified assumptions.
PLO 4.1: line-by-line tracing of generated code against a specification is direct critical analysis of a machine-produced outcome rather than acceptance of it; PLO 4.3: naming the assistant's unjustified assumptions requires students to re-examine and revise their own problem framing.
Students will be able to evaluate the correctness of a program by constructing test cases, including boundary and invalid inputs, and interpreting the resulting output as evidence for or against the behavior of a program the student wrote or generated.
PLO 4.1: judging a program by designed test evidence rather than by whether it appears to run is the analytic habit this outcome names; PLO 6.1: when the program under test is one the student generated with an assistant, reading its output and explaining what that output does and does not establish is the entry-level practice of interpreting and explaining an AI-produced outcome.
Students will be able to design program input handling and output messages that anticipate realistic user error and communicate clearly to a non-programmer.
PLO 5.3: writing error and result messages that a non-programmer can act on is concrete practice in translating technical state into language a non-specialist understands.
Students will be able to justify, in a written disclosure statement, which portions of a submitted program were AI-assisted and why truthfulness about that assistance and accountability for the correctness of the whole submission are owed to the people who will rely on the program.
PLO 1.2: the disclosure statement is an argued reflection on transparency and accountability in the use of AI, two of the ethical issues this outcome names, grounded in an obligation of truthfulness owed to those affected by the work; PLO 5.1: the disclosure is a written statement that must present the work's origins transparently and with integrity.
Program outcomes this course reaches
Filled cells are program learning outcomes with at least one supporting course learning outcome in this course. Sparse coverage is expected — no single course carries all eighteen.