CSCI 13500  ANALYSIS & DESIGN 1     HUNTER COLLEGE  CITY UNIVERSITY OF NEW YORK

In this course, which is required to graduate with a computer science major, you will learn principles of programming, analysis, and design and gain a deep practical knowledge of C++.

CSCI 13500 Syllabus               Gradescope               Coding Style Guide            FAQs

Text: Cay Horstmann, Brief C++, 3rd ed. eText - please rent the eText for one semester from here - do not buy or rent it from Amazon or Kindle store - you will not get access to the necessary interactive material!

Linux on Windows Tutorial:   https://okunhardt.github.io/documents/Installing_WSL.pdf

Tutoring: The tutors for this course are available in the Open Lab Session on BlackBoard Collaborate of CSCI 13500. This session runs all week:

Monday – Friday: noon – 5 PM 

The tutors are there to help you with all of your labs, assignments, and projects! Get as much help as you need.

Lecture: Monday, Thursday 8:10 - 9:25 AM on BlackBoard Collaborate. The final will be on 12/17/20, 9:00-11:00 AM

Lecture Instructor: Tong Yi, email address ty680@hunter.cuny.edu. Office hours: Monday Thursday 10:30 AM – 11:30 AM on BlackBoard Collaborate.  

 

Email Questions You must get hands-on programing help in person during your lab or from tutors. We will never debug your code over email. You should ask questions during the lab and the lecture. All other email questions must be sent to your lab instructor listed below. You must always include your section, name of lab instructor, your name and EMPLID.

Recitation Instructors and their schedules are listed as follows. You must attend one section. Part of your grade comes from quizzes and assignments in recitation.

Section  

Lab          

Instructor

E-mail                               

13500 sec 1R01

Mo 1:10PM - 3:00PM

Minh Nguyen

minh.nguyen@hunter.cuny.edu

13500 sec 1R02

Mo 3:10PM-5:00PM

Minh Nguyen

minh.nguyen@hunter.cuny.edu

13500 sec 1R04

We 10:10AM - 12:00PM 

Katherine Howitt

kghowitt@gmail.com

13500 sec 1R05

We 3:10PM - 5:00PM

Minh Nguyen

minh.nguyen@hunter.cuny.edu

13500 sec 1R07

Th 1:10PM - 3:00PM

Melissa Lynch

lynch.melissat@gmail.com

13500 sec 1R08

Th 3:10PM - 5:00PM 

Melissa Lynch

lynch.melissat@gmail.com

 

COURSE OUTLINE

DATE

TOPIC

READING: Brief C++                                

SLIDES

DUE DATES

8/27

Syllabus

Gradescope

eText features

C++ Review

Introduction

Fundamental Data Types

1.3 Machine Code and Programming Languages

1.5 Analyzing Your First Program

1.6 Errors

1.7 HW Algorithm Design

 

1.5

1.6

1.7

 

E1.7   9/2

LAB 1  Intro to Linux and to C++   9/6

 

8/31

 

2.1 Variables

2.2 Arithmetic

2.4 PS First Do It By Hand

2.3 Input and Output

2.1

2.2

2.3-4

WE 2.1

WE 2.2

E2.10   9/9

PS 2.4

Project 1A   9/5

9/3

 Strings

2.5 Strings

6.1 Arrays

2.5

6.1

LAB 2  Loops and Arrays   9/20

Project 1B   9/10

9/10

Arrays 

Loops

4.1 The while Loop

4.2 PS Hand-Tracing

4.3 The for Loop

4.4 The do Loop

4.5 Processing Input

4.1

4.2-3

4.4-5

PS 4.2

WE 4.1

WE 4.2

Project 1C   9/14

LAB 3  File I/O, Process Data   9/22

9/14

More Loops

4.6 PS Storyboards

4.7 Common Loop Algorithms

4.8 Nested Loops

4.9 PS Solve a Simple Problem First

4.10 Random Numbers and Simulations

4.6-8

4.9-10

Squares,

Montecarlo code see blackboard

PS 4.6

PS 4.9

E4.8   9/17

Project 1D   9/21

 

9/17

Loop examples

Notes in blackboard

9/21

Decisions 

3.7 Boolean Variables and Operators

3.1 The if Statement

3.2 Comparing Numbers and Strings

3.3 Multiple Alternatives

3.4 Nested Branches

3.8 Application: Input Validation

3.7

3.1

3.2

3.3-4

3.8 

WE 3.1

E3.1   9/25

E3.5   9/25

PS 3.5

PS 3.6

LAB 4  Printing Shapes  9/29

9/24

 Functions

 

Streams

 

5.1 Functions as Black Boxes

5.2 Implementing Functions

5.3 Parameter Passing

5.4 Return Values

5.5 Functions without Return Values

5.6 PS Reusable Functions

5.1-3

5.4-6

Run Code

WE 5.1

WE 5.2

WE 5.3

E5.6   9/29

PS 5.6

9/29 *Tue follow Mon

schedule

 Scope

Static Vars

5.7 PS: Stepwise Refinement

5.8 Variable Scope and Global Variables

5.9 Reference Parameters

\–/ Static Variables

8.1 Reading and Writing Text Files

5.7

5.8

5.9

StatVar

8.1 

Viz

Pyramid

 

 

PS 5.7

E8.1 10/5

WE 8.1

LAB 5  Functions and

Prime Numbers 10/8

E5.14 E5.15 10/1

 

10/1

Arrays

6.1 Arrays

6.2 Common Array Algorithms

0’s, Squares, Copy, Sum, Avg, Min, Max, Search, Remove unordered

Remove ordered, Insert unordered, Insert ordered, Read inputs and find largest, 

6.3 Arrays and Function

6.1

6.2

6.3

Project 2 in blackboard 

 

WE 6.1

WE 6.2

Selection Sort

LAB 6 Strings and Ciphers  10/22

      Project 2 A  10/12

Project 2 B  10/21

Project 2 C  10/25

 

 

10/5

Arrays

Array functions

6.4 PS: Adapting Algorithms

6.5 PS: Discovering Algorithms by Manipulating Physical Objects

 

6.4-5

 

 

PS 6.4

PS 6.5

E6.8   10/9

 

10/8

 

Review for mid term (see blackboard notes)

LAB 7 Automatic Style   10/27

 

10/14*

Wed follows Mon

schedule

MIDTERM EXAM

 

 

 

 

Binary Search

10/15

Pass by

Reference

Pointers

7.1 Defining and Using Pointers

Pointers Example

Coffee

Code

By Value

By Ref.

7.1

Ptrs 

E7.1   10/20

WE 7.1

PS 7.6 (1 and 3 only)

10/19

 

6.6 Two-Dimensional Arrays

Print 2D array 

    6.6

LAB 8  Image Processing   11/3 

10/22

 

7.2 Arrays and Pointers

Code

 

 

7.2

 

 

10/26

 Dynamic Memory

7.4 Dynamic Memory Allocation

Viz

7.4

Viz

LAB 9  Pointers 11/10

WE 9.1

10/29

 

7.5 Arrays of Pointers

Galton Board

7.6 PS Draw a Picture

7.5-6

Viz

 

11/2

 

7.7 Classes of Objects

7.7-8 

E7.16   11/8

E7.18   11/8

LAB 10  Classes, Enums   11/17

11/5

 

7.8 Pointers and Objects

5.9 Reference Parameters

Ptrs

Viz

5.9_Slides

 

 

 

11/9

Enumerations 

9.1 Object-Oriented Programming

9.2 Implementing a Simple Class

9.1-2

Code

 

 

11/12

 Classes

Project 3 (in blackboard), submit to gradescope.

 

LAB 11  More Classes   11/24

11/16

Class and Objects 

The switch Statement

Enumerated types: bool, switch, MyBool, LIKELY, Color, Colors

9.3 Specifying the Public Interface

9.4 Designing the Data Representation

9.5 Member Functions

Enums

9.3-5

Code

 

E9.3   11/21

E9.5   11/21

11/19

 

9.6 Constructors

9.9 Separate Compilation

9.6

9.9

Project III  12/3

Debugger LAB

11/23

Vectors

6.7 Vectors

More Vectors

 

6.7

E6.18  E6.20   11/30

LAB 12  Vectors  12/6 

11/30

Pointers to Objects 

Static Member Variables 

9.10 Pointers to Objects

9.11 PS: Patterns for Object Data

Static Variables

Static Member Variables

9.10-11

StatVar

StatMV

 

Lab 13 Dec 10

Code

More Code 

12/3

Inheritance

10.1 Inheritance Hierarchies

10.2 Implementing Derived Classes

10.3 Overriding Member Functions

10.4 Virtual Functions and Polymorphism

10.1

10.2

10.3

10.4

10 Extra

WE 10.1

12/7

Review

Introduction to recursion (in blackboard)

Review

 

 

 

 

12/17

Final

9:00 – 11:00 AM

 

 

 

ChetSheet like the one that will be given to you on the exam

2019 Fall Midterm 1

2019 Fall Midterm 1 Answers