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

This course 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 North 1001B of CSCI 13500.

Schedules will be published soon.

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 at West Building 615. The final will be on

12/16/21, Thursday, at 11:30 – 1:30 pm.

Lecture Instructor: Tong Yi, email address ty680@hunter.cuny.edu. Office hours: Monday Thursday 11-noon.

 

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          

Room

Instructor

E-mail                               

13500 sec 1R01

Mo 1:10PM - 3:00PM

North Bldg 1001C

Minh Nguyen

minh.nguyen@hunter.cuny.edu

13500 sec 1R02

Mo 3:10PM - 5:00PM

North Bldg 1001C

Minh Nguyen

minh.nguyen@hunter.cuny.edu

13500 sec 1R03

Mo 5:35PM - 7:25PM

online

Serra Canca

serra.canca59@myhunter.cuny.edu

13500 sec 1R04

We 9:10- 11:00AM

online

Yasmeen Hassan

yasmeen.hassan14@myhunter.cuny.edu

13500 sec 1R05

Th 1:10 – 3:00 PM

North Bldg 1001C

Yasmeen Hassan

yasmeen.hassan14@myhunter.cuny.edu

13500 sec 1R06

Th 3:10 – 5:00 PM

North Bldg 1001C

Yasmeen Hassan

yasmeen.hassan14@myhunter.cuny.edu

13500 sec 1R07

Th 5:35 PM – 7:25 PM

online

Minh Nguyen

minh.nguyen@hunter.cuny.edu

13500 sec 1R08

We 5:35 PM – 7:25 PM

online

Shelly Huang

sh1424@hunter.cuny.edu

CSHR-REC Regular *

MoTh 8:35AM - 9:25AM

North Bldg 1001C

Michael Zamansky

mz631@hunter.cuny.edu

* CSHR-REC Regular is for honor college students only.

COURSE OUTLINE

DATE

TOPIC

READING: Brief C++                                

SLIDES

DUE DATES

8/25

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

E1.7 is modified from the original version in the textbook for the purpose of automatically grading by gradescope scripts. See the problem description in E1.7 posted in gradescope.

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

 

8/30

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

PS 2.4

Project 1A   9/12

9/2

 Strings

2.5 Strings

6.1 Arrays

2.5

6.1

LAB 2  Loops and Arrays   9/19

Project 1B   9/22

9/9

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

Project 1C   9/28

9/13

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/24

Project 1D   10/3

 

9/20

Loop examples

Notes in blackboard

9/23

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

E3.5   10/1

PS 3.5

PS 3.6

LAB 4  Printing Shapes  10/3

9/27

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

PS 5.6

9/30

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

E8.1 10/12

WE 8.1

LAB 5  Functions and

Prime Numbers 10/13

10/4

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/17

      Project 2

Due 11/16 

10/7

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

10/14

 

Review for mid term (see blackboard notes)

LAB 7 Automatic Style   10/31

10/18

MIDTERM EXAM

 

 

 

 

Binary Search

10/21

Pass by

Reference

Pointers

7.1 Defining and Using Pointers

Pointers Example

Coffee

Code

By Value

By Ref.

7.1

Ptrs 

E7.1   10/30

WE 7.1

PS 7.6 (1 and 3 only)

LAB 8  Image Processing  

11/7

10/25

2D arrays 

6.6 Two-Dimensional Arrays

Print 2D array 

    6.6

10/28

Arrays and Pointers 

7.2 Arrays and Pointers

Code

 

 

7.2

 

LAB 9  Pointers 11/14

 

11/1

 Dynamic Memory

7.4 Dynamic Memory Allocation

Viz

7.4

Viz

WE 9.1

11/4

 Array of Pointers

7.5 Arrays of Pointers

Galton Board

7.6 PS Draw a Picture

7.5-6

Viz

LAB 10  Classes, Enums   11/21 

11/8

Class of Objects 

7.7 Classes of Objects

7.7-8 

E7.16   11/19

E7.18   11/19

11/11

Pointer and Objects 

7.8 Pointers and Objects

5.9 Reference Parameters

Ptrs

Viz

5.9_Slides

 

Project 3A 11/28

Project 3B 12/5

Project 3C 12/12

 

LAB 11  More Classes   11/30 

11/15

Enumerations 

9.1 Object-Oriented Programming

9.2 Implementing a Simple Class

9.1-2

Code

Debugger LAB 

11/18

 Classes

Project 3 (in blackboard), submit to gradescope.

 

LAB 12  Vectors  12/5

11/22

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/30

E9.5   11/30

11/29

Constructor Separate Compilation 

9.6 Constructors

9.9 Separate Compilation

9.6

9.9

Lab 13 12/12

12/2

Vectors

6.7 Vectors

More Vectors

 

6.7

E6.18  E6.20   12/10

12/6

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 

12/9

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/13

Review

Introduction to recursion (in blackboard)

Review

 

 

 

 

12/16

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 (for more details, see https://hunter.cuny.edu/students/registration/academic-calendar/)

Date

Deadline

8/31

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

9/1

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

9/6

Last day for 50% tuition refund

9/6

College closed

9/14

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

9/15

100% tuition obligation for course drops

“WN” Grades assigned

Grade of “W” assigned to students who officially drop a course

9/16

No class

9/24

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

10/11

College closed
No classes scheduled

11/25/21 – 11/28/21

College closed – no classes scheduled

12/13

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

12/14

Reading Day

12/16

Final of this course