Introduction to Computer Science II

Purpose of Course  showclose

This course is a continuation of the first-semester course titled CS101: Introduction to Computer Science I. It will introduce you to a number of more advanced Computer Science topics, laying a strong foundation for future academic study in the discipline. We will begin with a comparison between Java – the programming language utilized last semester – and C++, another popular, industry-standard programming language. We will then discuss the fundamental building blocks of Object-Oriented Programming, reviewing what we learned last semester and familiarizing ourselves with some more advanced programming concepts. The remaining course units will be devoted to various advanced topics, including the Standard Template Library, Exceptions, Recursion, Searching and Sorting, and Template Classes. By the end of the class, you will have a solid understanding of Java and C++ programming, as well as a familiarity with the major issues that programmers routinely address in a professional setting.

Course Information  showclose

Welcome to CS102.  General information on the course and its requirements can be found below.

Course Designer: Charles Lively and Yongge Wang
Primary Resources: This course is composed of a range of different free, online materials. However, the course makes primary use of the following resources:
Requirements for Completion: In order to complete this course, you will need to work through each unit and all of its assigned materials, including the quizzes and the final exam.

Note that you will only receive an official grade on your final exam. In order to “pass” this course, you will need to earn a 70% or higher on the final exam. Your score on the exam will be tabulated as soon as you complete it. If you do not pass the exam, you may take it again.

Time Commitment: This course should take you a total of 110.2 hours to complete. Each unit includes a “time advisory” that lists the amount of time you are expected to spend on each subunit. These should help you plan your time accordingly. It may be useful to take a look at these time advisories and determine how much time you have over the next few weeks to complete each unit and then set goals for yourself. For example, Unit 1 should take you 18.5 hours. Perhaps you can sit down with your calendar and decide to complete Subunit 1.1 (a total of 4 hours) on Monday night, Subunit 1.2 (a total of 6 hours) on Tuesday and Wednesday nights, and so forth.

Tips/Suggestions: As noted in the “Course Requirements,” CS101 is prerequisites for this course. If you are struggling with some program and computer structure concepts as you progress through this course, consider taking a break to revisit CS101.

Khan Academy  
This course features a number of Khan Academy™ videos. Khan Academy™ has a library of over 3,000 videos covering a range of topics (math, physics, chemistry, finance, history and more), plus over 300 practice exercises. All Khan Academy™ materials are available for free at

A version of this course is also available in iTunes U.
Preview the course in your browser or view all our iTunes U courses.  

Learning Outcomes  showclose

Upon successful completion of this course, the student will be able to:
  • Demonstrate an understanding of the concepts of Java and C++ and how they are used in Object-Oriented Programming;
  • Demonstrate an understanding of the history and development of Object-Oriented Programming;
  • Explain the importance of the C++ Standard Template Library and how basic components are used;
  • Demonstrate a basic understanding of the importance of run-time analysis in programming;
  • Demonstrate an understanding of important sorting and search routines in programming;
  • Demonstrate a detailed understanding of generic programming and principles in the standard template library;
  • Demonstrate an understanding of various types used within the standard template library in C++;
  • Demonstrate an understanding of the generic usage of templates in programming for C++ and Java; and
  • Compare and contrast the features of Java and C++.

Course Requirements  showclose

In order to take this course, you must:

√    have access to a computer;

√    have continuous broadband Internet access;

√    have the ability/permission to install plug-ins (e.g., Adobe Reader or Flash) and  software;

√    have the ability to download and save files and documents to a computer;

√    have the ability to open Microsoft files and documents (.doc, .ppt, .xls, etc.);

√    be competent in the English language;

√    have read the Saylor Student Handbook; and

√    have completed CS101: Introduction to Computer Science I from “The Core Program” in the Computer Science discipline.

Unit Outline show close