Queens College, CUNY,Department of Computer Science

INTRODUCTION TO ALGORITHMIC PROBLEM SOLVING CSCI 111

Fall 2020

Instructor: Aryeh Greenberg

Fall Office Hours: Immediately after Lecture/Lab (Email to arrange other times)

Course Description Programming algorithms in the C++ language using basic data types and arrays. 

It is highly recommended that you bring your own laptop to the lecture with Microsoft Visual Studio 2019 or greater Installed on it as this is the environment that the lecture will be presented with.

Credits: 2 lec., 2 lab. hr.; 3 cr.

Optional text Brian Overland, C++ without fear  

Topics to be covered

•         data types

•         control structures

•         procedures and functions 

•         parameter passing

•         scope and lifetime of variables 

•         1D, 2D, and 3D arrays

•         Common Algorithms

 

Not covered

•         Pointers (except as needed to pass arrays to functions) • concepts of object, class, and method (except Cout class) 

•         Recursion.

           

 

 

Topics in Detail

PART I

Introduction

•       Creating your first “Hello World” program

•       Explanation of C program layout; header files, include directives, program return values

•       Compiled vs. Interpreted. Managed versus Un-Managed.

•       Pre-compiler, compiler, linker

•       High vs Low Level Languages

•       Cout an example of an object

•       Difference between C and C++ (we will using some C++ features but not too many) 

•       Using Cout and Cin

•       STL – Standard Template Library

•       Program can be divided into two parts: Data and Code

 

Variables

•       The CPU views everything as a number.

•       Whole numbers

•       Decimals

•       Characters

•       Boolean

•       Values in a variable can be upgraded not downgraded

•       String – many characters located next to each other in memory with a terminating null character

•       Static Variable

 

Code

•         Commenting Code

•         C Statement

•         Code blocks

•         True and False in C

•         Expressions

•         Conditional Expression

•         Loops & Conditional Loops

•         Random

•         Case statement

PART II

 

Arrays

•         String array - (array of char)

•         General arrays

•         1D, 2D, and 3D Arrays

 

Functions

•       Return Values

•       Parameters

•       Default Parameters

•       Function Overloading

 

Algorithms

•       Bubble Sort 

•       Selection Sort

•       Insertion Sort

•       Binary Search 

 

Learning Goals. A solid understanding of the fundamental concepts of programming in C++. Successful students will be able to write correct and complete C++ implementations of projects assigned in lab sessions. Successful students will also complete exam questions that require the writing, reading and analysis of C++ programs and portions of C++ programs.

Instructor: Aryeh Greenberg aryeh.greenberg@qc.cuny.edu office hours: after class or remotely using screen sharing software.

 

Course Website:

http://introtocplusplus.com/

 

Fall Session 2020 - Aug 26, 2020- Dec 20, 2020

Lecture/Lab: MoWe 7:30PM – 9:20 PM

 

Grading:

Two midterm exams and final exam + Lab homework. All exams require manual coding.

Final Grade = 

60% = Highest 2 grades of: Midterm 1, Midterm 2 & Lab 

40% = Final

After the final, those who receive a grade of C- or below are eligible for an oral test to improve their final grade.

In the Fall, 50% of the lab grade consists of daily assigned homework. Homework must be submitted online though a link on the introtocplusplus web site one hour before the next lecture. Homework will be randomly graded, that is, it is not possible to grade every homework on a daily basis, but a certain percentage will be graded. Homework is graded on an effort basis, That means if a student corrects their mistakes, they will always get a 100. The other 50% of lab grade will be through 2 – 3 lab quizzes.

Student ID:

Every student will receive a unique Class ID so they can see their grades. Each student will be emailed their Id at the address identified by them in CunyFirst.

 

Note: 

Midterm 1 is usually easier than Midterm 2. 

 

Policy: Academic dishonesty such as plagiarism or cheating will be dealt with seriously in accord with the University’s policy on academic integrity.