If a student has not yet attempted to take CSC 210 and answers "yes" to all of the following questions, then the student should consider taking the UAE:
Students should be able to articulate in writing the meaning of the following terms:
• Data representation, storage, and machine-level processing: access time, ALU, ASCII, binary, bit, bus, byte, circuit (Boolean), computer, CPU, CU, file, gate (Boolean), general-purpose register, gigabyte, instruction register, Internet, jump, kilobyte, machine cycle (fetch-decode-execute), machine instruction, machine language, main memory, mass storage device, megabyte, network, op-code, op-code field, operand, operand field, RAM, ROM, program counter, special-purpose register, transfer rate, Unicode.
• Algorithms and software: algorithm, array (one-dimensional), assembly language, assignment (to a variable), body (of a loop), bug, condition, conditional (jump, loop, statement), input, iteration/iterative, logical expression, loop, output, program, programming language, tracing, variable.
Algorithms and programming
Students should be able to:
• Describe in English the purpose of a given algorithm written in pseudo-code (or Python) and identify its individual steps. Example algorithms are provided below.
• Trace a simple algorithm written in pseudo-code (or Python) (draw a tracing table).
• Given a simple problem, describe its solution as an informal algorithm (expressed in English).
• Locate a logic error in an algorithm by manual tracing.
Be able to write in pseudo-code (or Python) algorithms from the following list:
• Input two numbers and output the sum and/or the difference of the two.
• Input two numbers and output the maximum and/or the minimum of the two.
• Input M and N, and generate a number series from M to N.
• Determine the sum of the first N odd integers = computing N square.
• Input multiple numbers and output their maximum/minimum (no arrays).
• Input multiple numbers and output their sum/average (no arrays).
• Input multiple numbers and their weights and compute a weighted average (no arrays).
• Input a sequence of values into an array (a negative value ends input).
• Find and output the sum/average of values in an array.
• Find and output the maximum/minimum of values in an array.
• Find and output the weighted average (two arrays: one with values, another with weights).
• Sequentially search for a value in an unsorted array.
• Sequentially search for a value in a sorted array.
• Output those values in an array that satisfy a certain condition (such as being above average).
Be able to trace algorithms from the following list:
• Determine the minimum number of bits required to represent a positive integer number.
• Perform a binary search for a value in an increasing list (array) of values.
• Shift an array circularly to the left.
• Shift an array circularly to the right.
• Reverse an array in place.
• Sort an array using insertion sort.
• Sort an array using bubble sort.
Machine language programming
Students should be able to:
• Perform conversions between decimal and binary representations of signed integers.
• Perform conversions between symbolic and ASCII representations of characters and strings.
• Convert basic algorithmic steps into a sequence of machine language instructions (using a minimal simulated machine language).
• Trace simple machine language programs (draw a tracing table).
• Write simple machine language programs (input and store a value, output a value, add or subtract two values, find the largest/smallest of two values, find the absolute value of a value).
• Run supplied machine language programs using an emulator.