CS250Preparation, 2020

Overview

Welcome to the CS250 Preparation site.

The material presented in this website is intended to

  1. define a minimum preparation level for CS250,
  2. help students learn whether they have reached that level of preparation, and
  3. help them to get to that level, if necessary.

This site is not intended to teach C++ programming but to provide guidelines on what you might need to review before beginning CS250.

You may find that you need to review or learn some of this material for any of a number of reasons.

  • You may have learned it once in an earlier C++ programming course, but forgotten part of it.

  • You may have taken a first programming course in a different programming language than C++ and need to see how C++ differs from what you are familiar with.

  • You may have taken a C++ programming course that skipped some of this material.

This is not a replacement for having taken a first course in computer programming.

  • We make no attempt here to teach the fundamental ideas of programming and the basic concepts common to all programming languages.

    Instead, we assume that you have been introduced to those concepts already and merely need a refresher or need to see how those familiar ideas look in C++ as opposed to another programming language.

The Outline

The navigation panel on the left of this page will take you to the outline, which organizes the preparation material into a series of “modules”.

Each module has a list of “What You Need to Know” topics, plus a mixture of

  • Textbook readings: Suggested readings from your C++ textbook.

    • When you see something mentioned in “what You Need to Know” that seems unfamiliar to you, read up on it.

    • As an aid, we present chapter numbers for the textbook used in CS150 and CS250, Malik’s C++ Programming: From Problem Analysis to Program Design.

      (CS250 begins with the later chapters of that text.) If you are using another book, you will need to use the table of contents and index to find the corresponding relevant material.

  • You can use another book instead. Simply match its table of contents against the “What You Need to Know” list for each module in the outline.

  • Commentaries: The commentary documents are intended to accompany your readings from the your textbook as you review C++ material. This is not a “web course”, and these commentaries are not trying to teach you the material.

    They will include some notes on things that you might find strange or unintuitive if you come to C++ from Java (probably the most common case for students reading this website) or from Python.

    These commentaries may also include some notes on things that, in my experience, some C++ students just find difficult in general, regardless of their background. I may also point out things that have changed in recent versions of C++.

  • Hands on activities: In CS250 you will be expected to already be familiar with the basic operation of a C++ compiler and development tools. In the CS250 labs, you will be expected to use the Code::Blocks environment and to already be comfortable with it.

    The “Hands on” activities on this website will walk you through the installation and basic operation of that environment on your own PC (Windows, OS/X, or Linux).

  • Self-assessments: Self-assessment quizzes are available to help you gauge your level of preparation.

It’s entirely up to you, once you have reviewed the “What You Need to Know” list, whether you do the readings in detail, skim the readings, or jump past them entirely. It’s up to you whether you do the self-assessments.

If you are already well familiar with what you need to know for some module, there may be little reason to linger on that module. If you are uncertain, at least a skimming may be merited to see how strong your grasp of the material is.

We do recommend, however, that you work through the hand-on activities as part of your preparation for CS250.

The Pre-Test

You advisor or prospective future CS250 instructor may have instructed you to “take the pre-test” for CS250. This site will both help you to prepare for that and tell you how to access that pre-test.

Passing the Pre-Test does not guarantee you a seat in the class. If the class is full, you might still be unable to get in.

It does not give you credit for having passed CS150. This is a placement test, not a challenge test. If you wish to challenge a course for credit, that is a different procedure at ODU.

It does, however, qualify you to receive a prerequisite override so that your registration would not be blocked due to the lack of a prior C++ course.

  • You might still be denied a prerequisite override if you lack the required mathematics background.
  • If you are granted a prerequisite override, you are still responsible for taking the corequisite course CS252, if you have not already done so. Because of the override, however, this will not be checked at registration time.

If you pass the pre-test and subsequently pass CS250, the CS Dept will waive the requirement for completion of CS150 as part of the B.S. in Computer Science.

To get that waiver, contact the instructor of the CS250 lecture that you want to register for. Let him or her know

  • Your name and UIN
  • That you have passed the pre-test.
  • The CRN of the CS250 lecture section that you want to register for.
    • Note that if you are trying to enter a web section of CS250, you must register for the CRN that matches your home campus.

The instructor will then enter a “pre-requisite override” for you.

If you also need a waiver for CS252, contact the instructor of that course, providing the same information.

Keys to Success

  • You will need a C++ programming text. (And you need to read it!)

    As noted above, the outline suggests chapters from Malik, the book used in CS150 and CS250 (and, later in CS330). If you are reading this website in preparation to take CS250, you might as well go ahead and get this book, as you will need it anyway.

    But if you prefer to wait, though, and use some other C++ text that you already have on hand, that’s OK. But then you will have to figure out the corresponding chapters. Use the list of What You Need to Know for each module to guide your search for the appropriate chapters.

  • You will need to practice.

    • Don’t just read about programming. Most people need a fair amount of hands on experience to reinforce their programming skills.

      • If your prior programming course was in a different programming language, try converting some of your old code in that language into C++.

      • Your C++ textbook will almost certainly have suggestions for practice programs.

    • The outline contains labs that will walk you through the process of installing and operating a C++ development environment.

    • As you progress through those, start setting yourself simple programming challenges to practice with what you are reading about. Write the code, compile it and run it.

Ready to Start?

Click on the “Outline” button, and get started!