CSE131: Intro. to Computer Science (Programming) - bsiever/WUSTL-CSE-Curriculum GitHub Wiki
Proposed Learning Outcomes
-
Given a specific concept, select the most appropriate type to represent the concept (integers, boolean, floating point, and string)
-
Be able to utilize basic I/O operations (console printing, requesting user input)
-
Be able to explain and make appropriate use of variable initialization and assignment
-
Given an expression containing literals, determine the resulting value and its type.
-
Explain the behavior of conditional and nested conditional statements
-
Construct nested conditional expressions for a given problem
-
Given a loop (
for
orwhile
), be able to quantify the number of iterations or express the concept controlling the number of iterations. -
Create a loop appropriate for a given iterative computation/problem.
-
Explain the behavior of nested loops (order of updates; express how total number of iterations of innermost items are found)
-
Create nested loops for a given problem
-
Explain the behavior of nested control statements
-
Create nested control structures for a given problem
-
Explain and make appropriate use of index-based collections (array/list)
-
Understand and be able to implement common operations on collections (find an element, find max, find min, swap specific elements, etc.)
-
Given a method or function description, create an appropriate signature (fitting choices for parameters, parameter types, and return type)
-
Create a method/function for a given problem
-
Create appropriate arrays for a given problem
- Identify when arrays are needed
- The type and number of dimensions
- How they should be used
-
Explain the behavior of code that uses arrays (one or multi dimensional)
-
Be able to utilize a new API based on "typical documentation" (Ex: Javadoc docs for Java)
-
Identify recursive substructure in problems (where present and reasonably straight forward)
-
Explain the concept of recursion and where it may be beneficial
-
Given a description of a recursive process, create a working recursive algorithm
-
Create a class for a defined concept
-
Given a "story" for a class, be able to select appropriate choices and types for instance variables (members/properties) and methods.
-
Create programs from "scratch" to solve modest computational problems.
-
Be able to create a primitive event driven program (Event loop that responds to mouse clicks, key input, etc.)
-
Be able to explain the differences between basic collections (Set, List, and Map)
-
Be able to make use of basic collections to solve problems
-
Be able to explain different notions of equality an equivalence
-
Be able to explain basic hash function concept
-
Understand basic concepts of reference variables (aliases for objects)