WELCOME TO the HOME of Queens College CS111

Computer Science 111 (C++) Fall 2020

Taught by Aryeh Greenberg (aryeh.greenberg@qc.cuny.edu)

Note: This course is delivered on zoom. You should receive a link, ˝ hour before the lecture. If you do not receive an Email, please send your email address, your name, and CUNY ID to aryeh.greenberg@qc.cuny.edu.

This course is based on the book, C++ Without Fear: A Beginner’s Guide That Makes You Feel Smart (3rd Edition) 3rd Edition

By Brian Overland . 

CS111 - Calendar Fall 2020

Test 1 Test 2 Test 3

Upload Test 1 Upload Test 2 Upload Test 3

Fall 2020 Resources

QC Bookstore Edition

Syllabus Fall 2020

Tests and Quizzes Previous Semesters

 We will be covering chapters 1 - 8, skipping anything to do with pointers or recursion.

Programming and most highly paid professions reward those with superior solving abilities. It is the person who can look at a problem from a different perspective, who will be the most successful.

Programming is really about problem solving. A programmer has a set of tools (a programming language) and the problem is to use these tools to solve the problem at hand.

99.5% of the time there are multiple ways to solve any problem. The challenge is to pick the best solution.

Areas we will cover (not necessarily in order below)

1)    What are programs? Code and data.

2)    Program creation process. Header, code, and library files. Preprocessor, compiler, assembler, and linker.

3)    Different types of memory used by a program. Text, Global, Stack, and Heap.

4)    Stack growth. Stack Overflow.

5)    Computer Instructions. Jump, calculate, move memory, evaluate.

6)    “Hello World!”. Program entry and exit.

7)    Program types: interpreted, machine code, byte code.

8)    OOP vs low level.

9)    Data types, arrays, objects.

10)  Visibility and scope.

11)  Expressions, Boolean Algebra Truth Tables (https://www.electronics-tutorials.ws/boolean/bool_7.html)

12)  Operators, Unary and Binary

13)  Conditions, loops, code blocks.

14)  Functions and parameters.

15)  Algorithms

16)  Edge Conditions

17)  Code Comments

 

Grading

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

Final Grade =

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

40% = Highest grade of: Final 1 and Final 2

 

Note:

Midterm 1 is usually easier than Midterm 2.

Final 1 is graded before last day of class.

Final 2 is easier than Final 1.

Highest grade for Final 2 is 89.