# Undergraduate Assessment Exam

**How do students know if they should take the CSC 210 UAE?**

- Are you an undergraduate student who started at DePaul during the 2003-2004 academic year or later, or a CTI student enrolled in a program with academic year 2003-2004 or later?
- Do you feel that you mastered the material in CSC 210 (formerly known as CSC 255)? See the study guide below.
- Do you wish to enroll in CSC 211 without taking CSC 210?

**CSC 210: Introduction to Computing: Study Guide **

*(Note that the time allotted for this exam is 1.5 hour.)*

General concepts

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 programmingStudents 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 programmingStudents 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.