A systematic approach to the design, construction, and management of computer programs, emphasizing design, programming style, documentation, testing, and debugging techniques. Strings, multidimensional arrays, structures, and classes. Pointers: their use in arrays, parameters, and dynamic allocation. Introduction to linked lists.

COURSE STUDENT LEARNING OUTCOMES:

  • Read, analyze, and explain intermediate level C++ programs.
  • Design solutions for intermediate-level problems using appropriate design methodology incorporating intermediate programming constructs.
  • Create algorithms, code, document, debug and test intermediate level C++ programs.

TEXTBOOK: Starting Out with C++: From Control Structures through Objects By Tony Gaddis.8th ED


An introduction to computer programming. Its primary objective is to teach problem-solving using the C++ programming language. Emphasis will be placed on structured procedural programming with an introduction to object-oriented programming. Designed primarily for computer science and related transfer majors.

STUDENT LEARNING OUTCOMES:

  • Design solutions for introductory level problems using appropriate design methodology incorporating elementary programming constructs.
  • Create algorithms, code, document, debug, and test introductory level C++ programs.
  • Read, analyze, and explain introductory level C++ programs.

Knowledge of linked structures is must for C programmers. This article explains the fundamentals of C linked list with an example C program.

Linked structure is a dynamic data structure whose length can be increased or decreased at run time.

How Linked lists are different from arrays? Consider the following points :

  • An array is a static data structure. This means the length of array cannot be altered at run time. While, a linked list is a dynamic data structure.
  • In an array, all the elements are kept at consecutive memory locations while in a linked list the elements (or nodes) may be kept at any location but still connected to each other.

When to prefer linked lists over arrays? Linked lists are preferred mostly when you don’t know the volume of data to be stored. For example, In an employee management system, one cannot use arrays as they are of fixed length while any number of new employees can join. In scenarios like these, linked lists (or other dynamic data structures) are used as their capacity can be increased (or decreased) at run time (as an when required).


An introduction to computer programming. Its primary objective is to teach problem-solving using the C++ programming language. Emphasis will be placed on structured procedural programming with an introduction to object-oriented programming. Designed primarily for computer science and related transfer majors.

STUDENT LEARNING OUTCOMES:

  • Design solutions for introductory level problems using appropriate design methodology incorporating elementary programming constructs.
  • Create algorithms, code, document, debug, and test introductory level C++ programs.
  • Read, analyze, and explain introductory level C++ programs.

A systematic approach to the design, construction, and management of computer programs, emphasizing design, programming style, documentation, testing, and debugging techniques. Strings, multidimensional arrays, structures, and classes. Pointers: their use in arrays, parameters, and dynamic allocation. Introduction to linked lists.

COURSE STUDENT LEARNING OUTCOMES:

  • Read, analyze, and explain intermediate level C++ programs.
  • Design solutions for intermediate-level problems using appropriate design methodology incorporating intermediate programming constructs.
  • Create algorithms, code, document, debug and test intermediate level C++ programs.

TEXTBOOK: Starting Out with C++: From Control Structures through Objects By Tony Gaddis.8th ED


  • To review the key ideas of computer science, programming, and problem-solving using the C++ language.

  • To understand abstraction and the role it plays in the problem-solving process.

  • To develop an understanding of Big O notation and other important techniques of algorithm analysis.

  • To develop comfort with standard data structures including queues, stacks, and trees.

  • To become conversant with sorting algorithms, including the advantages and disadvantages of each.

  • To learn to write and analyze recursive programs, functions, and methods.

  • To learn to traverse and to implement linked data structures such as linked lists and trees.


This course is designed for interviews and coding competitions. A brief introduction of the programming language and concept of recursion is explained. A number of problems based on recursion and array are explained.Then in the coming chapter, we will be looking into complexity analysis. Then we will be looking into Sorting & Searching techniques.

Then will look into the various data structures and their algorithms. We will be looking into a Linked List, Stack, Queue, Trees, Heap, Hash Table and Graphs.
Then we will be looking into algorithm analysis, we will be looking into Brute Force algorithms, Greedy algorithms, Divide & Conquer algorithms, Dynamic Programming, and Backtracking. 

In the end, we will be looking into System Design, which will give a systematic approach for solving the design problems in an Interview/competitions.

This course has two parts: Part A: Basic Problem Solving Skills.  Part B: Algorithms. 


This course is designed for interviews and coding competitions. A brief introduction of the programming language and concept of recursion is explained. A number of problems based on recursion and array are explained.Then in the coming chapter, we will be looking into complexity analysis. Then we will be looking into Sorting & Searching techniques.

Then will look into the various data structures and their algorithms. We will be looking into a Linked List, Stack, Queue, Trees, Heap, Hash Table and Graphs.
Then we will be looking into algorithm analysis, we will be looking into Brute Force algorithms, Greedy algorithms, Divide & Conquer algorithms, Dynamic Programming, and Backtracking. 

In the end, we will be looking into System Design, which will give a systematic approach for solving the design problems in an Interview/competitions.

This course has two parts: Part A: Basic Problem Solving Skills.  Part B: Algorithms.