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 |