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 – Thursday: 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 9:45 - 11:00 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 1R03

Mo 5:35PM - 7:25PM

Serra Canca

serra.canca59@myhunter.cuny.edu

13500 sec 1R04

Tu 2:10PM - 4:00PM

Katherine Howitt

kghowitt@gmail.com

13500 sec 1R05

We 9:10AM - 11:00AM

Yasmeen Hassan

yasmeen.hassan14@myhunter.cuny.edu

13500 sec 1R06

We 11:10AM - 1:00PM

Yasmeen Hassan

yasmeen.hassan14@myhunter.cuny.edu

13500 sec 1R07

We 3:10PM - 5:00PM

Minh Nguyen

minh.nguyen@hunter.cuny.edu

13500 sec 1R09

Th 3:10PM - 5:00PM 

Melissa Lynch

lynch.melissat@gmail.com

CSHR-REC Regular

MoTh 8:35AM - 9:25AM

Michael Zamansky

mz631@hunter.cuny.edu

 

COURSE OUTLINE

DATE

TOPIC

READING: Brief C++                                

SLIDES

DUE DATES

2/1

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   2/9

LAB 1  Intro to Linux and to C++   2/12

 

2/4

 Variables and Arithmetic

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   2/9

PS 2.4

Project 1A   2/12

2/8

 Strings

2.5 Strings

6.1 Arrays

2.5

6.1

LAB 2  Loops and Arrays   2/19

Project 1B   2/21

2/11

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

LAB 3  File I/O, Process Data   extend to 3/2

Project 1C   2/28

2/18

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   extend to 3/2

Project 1D   3/7

 

2/22

Loop examples

Notes in blackboard

2/25

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   3/5

E3.5   3/5

PS 3.5

PS 3.6

LAB 4  Printing Shapes  3/12

3/1

 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   3/9

PS 5.6

3/4

 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

E5.14 E5.15 3/12

E8.1 3/12

WE 8.1

LAB 5  Functions and

Prime Numbers 3/19

Extended to 3/26 

3/8

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  3/19

Extended to 3/26

      Project 2 implement methods in MemoryGame.cpp, submit to gradescope

Due 4/25 

3/11

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   3/19

Extend to 3/26 

3/15

 

Review for mid term (see blackboard notes)

LAB 7 Automatic Style   3/30

Extend to 4/10 

3/18

MIDTERM EXAM

 

 

 

 

Binary Search

3/22

Pass by

Reference

Pointers

7.1 Defining and Using Pointers

Pointers Example

Coffee

Code

By Value

By Ref.

7.1

Ptrs 

E7.1   3/30

Extend to 4/10

WE 7.1

PS 7.6 (1 and 3 only)

LAB 8  Image Processing  

Extend to 4/17

3/25

2D arrays 

6.6 Two-Dimensional Arrays

Print 2D array 

    6.6

4/5

Arrays and Pointers 

7.2 Arrays and Pointers

Code

 

 

7.2

 

LAB 9  Pointers 4/24

 

4/8

 Dynamic Memory

7.4 Dynamic Memory Allocation

Viz

7.4

Viz

WE 9.1

4/12

 Array of Pointers

7.5 Arrays of Pointers

Galton Board

7.6 PS Draw a Picture

7.5-6

Viz

LAB 10  Classes, Enums   5/1 

4/15

Class of Objects 

7.7 Classes of Objects

7.7-8 

E7.16   4/24

E7.18   4/24

4/19

Pointer and Objects 

7.8 Pointers and Objects

5.9 Reference Parameters

Ptrs

Viz

5.9_Slides

 

Project 3A 5/3

Project 3B 5/10

Project 3C 5/17

 

LAB 11  More Classes   5/10  

4/22

Enumerations 

9.1 Object-Oriented Programming

9.2 Implementing a Simple Class

9.1-2

Code

 

4/26

 Classes

Project 3 (in blackboard), submit to gradescope.

 

Debugger LAB

4/29

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   5/10

E9.5   5/10

LAB 12  Vectors  5/15 

5/3

Constructor Separate Compilation 

9.6 Constructors

9.9 Separate Compilation

9.6

9.9

5/6

Vectors

6.7 Vectors

More Vectors

 

6.7

E6.18  E6.20   5/15

Lab 13 5/19

5/10

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

 

Code

More Code 

5/13

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

5/17

Review

Introduction to recursion (in blackboard)

Review

 

 

 

 

5/20

Final

11:30 – 1:30 pm

 

 

 

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

2019 Fall Midterm 1

2019 Fall Midterm 1 Answers

Important Dates

Date

Deadline

2/4

Last day to add a course;
Last day for 75% tuition refund

2/5

Grade of “WD” is assigned to students who officially drop a course.

2/11

Last day for 50% tuition refund

2/12

College closed

2/15

College closed

2/18

Last day to drop for 25% tuition refund;
Last day to change or declare a major or minor to be effective for Spring

2/19

First day to receive a grade of “W” for students who officially withdraw from a course

2/28

“WA” grades assigned for non-compliance with immunization requirements

3/27 – 4/4

Spring recess;
No classes scheduled

5/17

Last day to receive grade of “W” is for students who officially withdraw from a course

5/18

Reading Day

5/20

Final of this course