Programming Pedagogy and Assessment in the Era of AI/ML: A Position Paper

Research Question

What are the implications of easy access to such tools on CS1 pedagogy and assessment

Future direction of CS pedagogy

Methodology

Six steps design strategy proposed by Felleisen et al

Step1: From problem analysis to data definitions

Step2: Signature, purpose statement, header

Step3: Functional Examples

Step4: Function Template

Step5: Function Definition

Step6: Testing

Step2: Signature, purpose statement, header

Pedagogy

Encourage students to include type information where possible

Step3: Functional Examples

Pedagogy

Assessment

Encourage students to write doctests within their docstrings

Encourage students to pay attention to Copilot's suggestions

Write detailed docstrings based on their understanding of the problem, and to use Copilot to test their understanding

The quality of doctests should be assessed with their code

Two metrics for test-case quality: validity and thoroughness

Step4, Step5: Function Template, Function Definition

Pedagogy

Assessment

Place greater emphasis on code comprehension

Textbooks and lecture materials should include several buggy versions of correct programs, some of which contain subtle errors. These would help student develop critical thinking.

Reduced emphasis on traditional code writing problems where a detailed problem specification is provided

Alternate forms of assessments

Computer-based assessments

Paper-based assessments

Adding functionality to given code and improving the given code's style or effciency

written exams

tracing code on given input

selectign code fragment to perform task

explaining code

Step6: Testing

Pedagogy

Automated test-generation tool such as Hypothesis

Future Work

Evaluate algorithm couse using 6-stage framework by Loksa et al

Competency Framework

Task

Knowledge

Skills

Disposition