UNT | University of North Texas

Search form

CSCE 1040: Computer Science II

Course Number: 
CSCE 1040
Course Name: 
Computer Science II

Continuation of CSCE 1030. Software design, structured programming, object-oriented design and programming.

Start Date: 
Monday, May 3, 2004
Last Review Date: 
Thursday, April 2, 2015
Prerequisite (should have grade of C or better): 
Credit Hours (Including Labs): 
UNT Topics: 
  1. Overloading Function Names
  2. Defining Classes
    1. Structures
    2. Classes
    3. Abstract Data Types
    4. Inheritance
  3. Recursion
    1. Definition of recursion 
    2. How recursion works
    3. How recursion ends
    4. Base case
    5. Recursive step
    6. Infinite recursion
    7. Stacks for recursion
    8. Stack overflow
    9. Recursion vs Iteration
    10. Recursive functions that return values
    11. Thinking recursively
    12. Recursive design techniques
    13. Things to check when designing recursive functions
  4. Friends, Overloaded Operators, and Arrays in Classes
    1. Friend functions
    2. Overloading operators
    3. Arrays and Classes
      1. Arrays of classes
      2. Arrays as class members
    4. Classes and Dynamic Arrays
      1. Creating a custom string class
      2. Constructors and destructors
      3. Copy constructors
      4. Call by value
      5. Returning by value
  5. Separate Compilation and Namespaces
    1. Separating interface and implementation
    2. Reusability
    3. Including interface files
    4. Include guards
    5. Namespaces
    6. Global namespace
    7. Creating namespaces
    8. Using namespaces
    9. Unnamed namespaces
  6. Exception Handling
    1. Throwing exceptions
    2. Catching exceptions
    3. Multiple throws and catches
    4. Ordering catch blocks
    5. Creating exception classes
    6. Exception specificiation
    7. Techniques for exception handling
  7. Pointers and Linked Lists
    1. Nodes and linked lists
    2. Stacks and queues
  8. Inheritance
    1. Derived classes
    2. Constructors in derived classes
    3. Private vs protected vs public
    4. Redefinition of member functions
    5. Redefining vs overloading
    6. Accessing a redefined base function
    7. Functions that aren’t inherited
    8. Assignment operators in derived classes 
    9. Copy constructors in derived classes
    10. Destructors in derived classes
    11. Polymorphism
    12. Virtual functions in C++
    13. Virtual destructors
    14. Pointers and dynamic variables
  9. Standard Template Library
    1. Iterators
    2. Using declarations
    3. Iterator as generalization of pointer
    4. Iterator operators
    5. Getting iterators with begin() and end()
    6. Compiler messages and iterators
    7. Types of iterators
    8. Container class
    9. Sequential containers
    10. Iterators and removing elements
    11. Stack and queue adapters
    12. Associative containers
    13. Generic Algorithms
    14. Running times and Big-O Notation
    15. Nonmodifying Sequence Algorithms
    16. Sorting Algorithms 
UNT Outcomes: 
  • Write readable, efficient, and correct C++ programs for all programming constructs defined for Programming Fundamentals I plus dynamic memory allocation, bit manipulation operators, exceptions, classes and inheritance.
  • Design and implement recursive algorithms in C/C++.
  • Use common data structures and techniques such as stacks, queues, linked lists, trees and hashing.
  • Create programs using the Standard Template Library.
  • Use a symbolic debugger to find and fix runtime and logical errors in C software.
  • Using a software process model, design and implement a significant software application in C++. Significant software in this context means a software application with at least five files, ten functions and a make file.
  • Implement, compile and run C++ programs that includes classes, inheritance, virtual functions, function overloading and overriding, as well as other aspects of Polymorphism.
Texas Common Course Numbering System (TCCNS) Number: 
COSC 1337 Programming Fundamentals II
Course Materials: 

Problem Solving with C++, Walter Savitch, 9th edition 2014, Addison Wesley, ISBN 9780133591743

UNT Department: 
Computer Science and Engineering (CSE)
Course Level: 
Course Documents: