Portland Community College | Portland, Oregon Portland Community College

Computer Science 161B entrance exam

Exams and overrides will only be granted to students that have met the following requirements:

  1. Pre-requisites: (WR 115 and RD 115) or IRW 115 and MTH 20 or equivalent placement.
  2. It is also recommended that you complete CS160 before registering for 161B.

The purpose of the exam

This exam is an opportunity for students to demonstrate their mastery of the CS 161A outcomes so that they can enroll in CS 161B without taking CS 161A.  The CS 161A outcomes are assessed in a C++ environment, and are:

  • Develop simple programming algorithms to solve computing problems.
  • Implement the algorithms by writing programs that meet user requirements.
  • Construct appropriate user interfaces and develop test plans for correctness of programs.
  • Identify and correct syntax errors.
  • Apply logical skills to construct efficient and effective algorithms.
  • Effectively use software development tools.

Successful completion of this exam will result in a waiver of the CS 161A prerequisite only.  Students are still expected to complete the following courses: (WR 115 and RD 115) or IRW 115 and MTH 20 or equivalent placement. It is also recommended that you complete CS160 before registering for 161B.

Course description for CS 161B

Explores intermediate-level problem solving, algorithm and program design, loops, control structures, subprograms, and arrays. Emphasizes development of medium-sized projects using a high-level programming language.  Recommended: MTH 95.

Reviewing before you take the exam

The Computer Science department has created a list of topics that are covered on the exam. Please see the information below. The contents are covered using C++ and that is what is required for the exam.

CS161A topics (C++ Language)

Basics and Algorithms Intro (English)
  • What is an algorithm?
  • How to design simple algorithms.
  • How do computers use algorithms?
  • Algorithmic thinking and the connection between programming language and algorithms.
  • Variable properties such as domain and range
  • C++ data types, including integral data types, floating point data types, object data types (e.g. strings and file streams), and user-defined data types (e.g. structs).
  • Properties of integral data types, including minimum, maximum, and overflow
  • Properties of floating data types, including precision, output formats, and non-numeric representations (INF, NaN)
  • Variable encoding schemes, including binary, two’s complement, IEEE 754, and ASCII
  • Arithmetic operations for integral types
  • Arithmetic operations for floating point types
  • Arithmetic operations for string types
  • Operator precedence and associativity
  • Expression result, main effect, side effects
  • The assignment operator (=)
  • Compound assignment operations (+=, -=, *=, /=)
  • Increment and decrement assignments (++, –)
  • Assignment using function return values
  • Assignment of random numbers
  • Implicit and explicit type conversions
  • Stream variables
    • Standard streams (cin, cout, cerr, clog)
    • Stream operations
    • Stream insertion (<<)
    • Stream extraction (>>)
    • Stream manipulators and formatters (endl, left, right, fixed, scientific, et. al.)
  • Stream Errors and Functions
    • Checking for errors (.good(), .bad(), .eof(), et. al.)
    • getline()
    • Unformatted operations (.get(), .put(), .peek(), et. al.)
  • How to determine when a program isn’t working correctly
  • Use of a debugger
    • Setting breakpoints
    • Viewing and changing variables
Conditionals I
  • Relational operators, if-else statements, order of evaluation , switch statements, boolean data types, algorithm design.
Conditionals II
  • string comparison and string access operations, character operations, logical operators, short circuit evaluation, conditional operator and expressions.
Loops I
  • While loops, do-while loops, for loops, loops and strings.
Loops II
  • Loop algorithms, nested loops, developing programs incrementally, scope of variables.
  • Functions – pass by value
  • Function parameter coupling: pass by value
  • Function return coupling: pass by value
  • Function – pass by reference

Taking the exam

Once you have reviewed for the exam you should submit your exam and override request. Once you fill out the form please wait for an email informing you of further steps.

You must have a valid picture ID to show and your zoom camera on if you are doing this over zoom. This is a closed book closed internet exam and you may not google any resources.

What if I don’t pass the exam?

If you do not pass the exam you may take the exam 1 more time. There must be at least 1 week between attempts. Please review for the exam before you retest. See the Reviewing for the Exam section above. If you do not pass the exam a second time please register for CS 161A.

What if I pass the exam?

When you are finished with the exam and you are approved, you may register for 161B.


If you have any questions, contact Li Liang.