What Do CS1 Syllabi Reveal About Our Expectations of Introductory Programming Students?

Pennsylvania State University - Introduction to Programming Techniques

Country: USA
University: Pennsylvania State University
Course code: CMPSC 121
Course title: Introduction to Programming Techniques
Date of Syllabus:
Source: Manual search
Associated Degrees: Computer Science
Prerequisits: no
Course for Majors: yes
Course stage:
Semester:
Programming language: C++
Language of Instruction: English
URL: https://sites.psu.edu/jas86/teaching/cmpsc-121-spring-2017/
Explicit or !Explicit LOs: Explicit
Learning Outcomes:

Problem Definitions: Given a problem, students can create a functional description of the problem including input and output specifications, and processing steps to obtain the output from the input. This description should be added to code as comments.

Problem Synthesis: Given a problem, students should be able to decompose the problem into a sequence of single-purpose functions that are highly cohesive and loosely coupled.

Data Types: Given a functional description of a problem, students can select appropriate data types (including primitive data types and arrays) for storing the input and output values. Declare, define, and initialize one-dimensional, simple data type arrays of a fixed size. Demonstrate the ability to read from and write to an arbitrary array element using array indices. Demonstrate an ability to process the entire array, one element at a time, performing both read and write operations.

Assignment Statements: Given a mathematical expression, students can translate this expression into equivalent syntactically correct programming statements.

Style/Documentation: Given a problem, students can write code that conforms to a programming style specified by the instructor.

Control Structures: Given a problem, students can select and implement the appropriate control structure (if/else, switch, for-loop, while-loop, and do while-loop). Given a problem and a specific control structure, students can implement that control structure to solve the problem. Given the pre/post conditions, students can write functions utilizing various return types and pass by value parameters as appropriate

Code Analysis: Given an unfamiliar code segment and specific inputs, students can analyze the code and predict the result.

Testing and Debugging: During program development students can utilize basic testing methodologies and debugging tools such as stubs, drivers, and integrated debuggers to identify fault points and possible error conditions, and exceptions with try-catch block (as time permits).

File Input and Output: Given a problem, a student can develop input/output modules to read data from the standard input or a text file and write data in a prescribed format either to the standard output or to a text file.

LO categories:

Generating clear documentation

Control Structures & logic (if/else etc)

Repitition & loops (for/while etc)

Arrays, Lists, dictionaries, vectors, sets

Variables, assignment, arithmetic expressions, declarations, data types

File handling & I/O

Testing & Debugging code