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

National University of Singapore - Programming Methodology

Country: Singapore
University: National University of Singapore
Course code: CS1101S
Course title: Programming Methodology
Date of Syllabus:
Source: Manual search
Associated Degrees: Computing
Prerequisits:
Course for Majors: yes
Course stage: 1
Semester:
Programming language: JavaScript
Language of Instruction:
URL: http://www.comp.nus.edu.sg/~cs1101s/#approach
Explicit or !Explicit LOs: Explicit
Learning Outcomes:

be able to write simple programs in the corresponding programming language to solve a task, given the constraints on the inputs

be able to manually trace through a program to identify logical errors

be able to differentiate between logical errors, syntax errors, and run-time errors

be exposed informally to the concept of code specification in the form of comments in the code, explaining what are the expected inputs and outputs and what are the assumptions

know about what are some insecure functions to avoid (where applicable. e.g, CS1010)

be able to generate test cases on their own, with focus on boundary/special cases

be able to debug with printf or equivalent functions

be aware of common strategies and good practices of debugging with printf or equivalent functions

be able to identify opportunities to, and write, modularized code

be exposed to the concept of exception handling (where applicable, e.g., in CS1010S/FC, CS1010J)

be exposed to a debugger (where suitable tools are available, e.g., for CS1010, CS1010J)

introduction to good programming styles (e.g., naming convension, indentation, comments to explain complex logic)

Understand the concept of reusability and how a software application can be built on top of software libraries/packages (standard or third parties).

Be able to understand at a high level the compilation process (from pre-processing to compiling to linking), where applicable.

Develop a simple mental model of how a program is executed (CPU runs the code on data that is store in memory, function call leads to creation of call frames, which can explain recursion and variable scoping, etc) as a precursor to cs2100. For interpreted language, understand the role of virtual machine/interpreter

Understand the different data types and that there exists a representation of each in the memory, as well as the limitation of the representations due to limited number of bits

should expose students to interesting exercises from different areas of CS (e.g., sound processing for 1D array, image procession for 2D array, drawing shapes, etc.) with the help of third party libraries or libraries provided by SOC

should introduce] object-oriented programming

LO categories:

Writing programs

Developing good program Design methodology & styling

Teamwork skills & Communication

Generating clear documentation

Basic OOP

Variables, assignment, arithmetic expressions, declarations, data types

Testing & Debugging code

Scope of code

Tracing execution of Program

Detecting syntax errors

Detecting logic errors

Recursion

Exception Handling