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

In these two courses, both of which are 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 135 Syllabus                             Gradescope               Coding Style Guide

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 NEW Video Tutorial:   http://tiny.cc/2p0jvz

Tutoring: The tutors for this course are available in the Lab HN1001B.

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

Lecture: Monday, Wednesday, Thursday 12:30 – 1:20 PM at HN118

Lecture Instructor: Genady Maryash   HN1047   Office hours: after each lecture and by appointment,   gmaryash@hunter.cuny.edu

Questions You must get hands-on programming help in person during your lab or from tutors in lab B. We will never debug your code over email. You should ask questions during the lecture and the recitation. 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.

Section   Lab in HN 1001C            Instructor                       E-mail                                            
135.01 Mo 1:30 – 3:20 PM Sadab Hafiz sadab.hafiz52@myhunter.cuny.edu
135.02 Mo 3:30 – 5:20 PM Sadab Hafiz sadab.hafiz52@myhunter.cuny.edu
135.03 Mo 5:30 – 7:20 PM Sadab Hafiz sadab.hafiz52@myhunter.cuny.edu
135.04 Tu 2:30 - 4:20 PM Brandon Foster brandon.foster81@myhunter.cuny.edu
135.11 Tu 5:30 - 7:20 PM Brandon Foster brandon.foster81@myhunter.cuny.edu
135.05 We 9:30 - 11:20AM Enxhi Osmanllari eo772@hunter.cuny.edu
135.06 We 4:00 - 5:50 PM Enxhi Osmanllari eo772@hunter.cuny.edu
135.08 Th 1:30 – 3:20 PM Kimberly Cabrera kimberly.cabrera94@myhunter.cuny.edu
135.09 Th 3:30 – 5:20 PM Kimberly Cabrera kimberly.cabrera94@myhunter.cuny.edu
135.10 Th 5:30 – 7:20 PM Kimberly Cabrera kimberly.cabrera94@myhunter.cuny.edu
135.12 Fr 2:30 – 4:20 PM Yoomin Song yoomin.song94@myhunter.cuny.edu

COURSE OUTLINE

DATE TOPIC READING: Brief C++                                 SLIDES DUE DATES
1/25 Syllabus
Gradescope
eText features
C++ Review
1.3 Machine Code and Programming Languages
1.5 Analyzing Your First Program
1.6 Errors
1.7 HW Algorithm Design
2.2 Arithmetic
1.5
1.6
1.7
2.2
LAB 1  Intro to Linux and to C++   2/2
E1.7   2/6
PS 2.4
1/26 C++ Quiz
Fundamental Data Types
2.1 Variables 2.1 WE 2.1
WE 2.2
E2.10   2/6
1/30 Strings 2.5 Strings 2.5  
2/1   2.3 Input and Output 2.3-4 LAB 2  Loops and Arrays   2/10
2/2 Arrays 6.1 Arrays 6.1  
2/6 Decisions 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.1
3.2
3.3-4
D.M.L.
3.8
E3.1   2/6
WE 3.1
PS 3.5
PS 3.6
2/8 Loops 4.1 The while Loop
4.2 PS Hand-Tracing
4.1 LAB 3  File I/O, Process Data   2/21
PS 4.2
E4.8   2/16
2/9   4.3 The for Loop
4.4 The do Loop
4.5 Processing Input
4.2-3
4.4-5
WE 8.1
2/14 More Loops 4.6 PS Storyboards
4.7 Common Loop Algorithms
4.6-8
WE 4.1
WE 4.2
2/15   4.8 Nested Loops
4.9 PS Solve a Simple Problem First
4.10 Random Numbers and Simulations
3.7 Boolean Variables and Operators
4.9-10
Squares
Montecarlo
3.7
LAB 4  Printing Shapes   2/28
PS 4.6
PS 4.9
2/13 Functions 5.1 Functions as Black Boxes 5.1-3 E3.5   2/28
WE 5.1
_/__   5.2 Implementing Functions
5.3 Parameter Passing
5.4 Return Values
5.5 Functions without Return Values
5.6 PS Reusable Functions
Viz
Pyramid
5.4-6
LAB 5  Functions and
Prime Numbers
  3/8

E5.6   2/22
WE 5.2
PS 5.6
2/15 Scope
Static Vars
5.7 PS: Stepwise Refinement
5.8 Variable Scope and Global Variables
\–/ Static Variables
5.7
5.8
StatVar
Run Code
WE 5.3
PS 5.7
2/16 Pass by
Reference
5.9 Reference Parameters 5.9
Coffee
E5.14   2/22
_/__     Code
By Value
By Ref.
E5.15   2/22
2/21 Arrays 6.1 Arrays
6.2 Common Array Algorithms
0’s, Squares, Copy, Sum, Avg, Min, Max, Search, Remove unordered
6.1
6.2
Binary Search
2/22   Remove ordered, Insert unordered, Insert ordered, Read inputs and find largest,
6.3 Arrays and Functions
Array functions
6.3 E6.8   4/5
Project 1 A and B   3/1
Selection Sort
2/23   6.4 PS: Adapting Algorithms 6.4-5 PS 6.4
WE 6.1
WE 6.2
2/27   6.5 PS: Discovering Algorithms by Manipulating Physical Objects
6.6 Two-Dimensional Arrays
Print 2D array
6.6 PS 6.5
LAB 6 Strings and Ciphers
E8.1   3/21
3/1 Pointers 7.1 Defining and Using Pointers
Pointers Example
7.1
Ptrs
E7.1   _ /__
LAB 7 Auto Style   3/3
Project 1 C & D    _ /__
3/2   7.2 Arrays and Pointers
Code
7.2  
3/6 Review 5.9 Reference Parameters Ptrs
5.9_Slides
 
3/8 MIDTERM EXAM 1 WEDNESDAY 3/8    
3/9 Dynamic Memory 7.4 Dynamic Memory Allocation
Viz
7.4  
3/13   7.6 PS Draw a Picture Viz PS 7.6 (1 and 3 only)
WE 7.1
3/15   7.5 Arrays of Pointers 7.5-6 LAB 8  Image Processing   _ / __
E7.16   3/21
3/16   Galton Board Viz LAB 9  Pointers   3/21
E8.1   _ / __
3/20 Objects 7.7 Classes of Objects
7.8 Pointers and Objects
7.7-8
Viz
E7.18   3/21
3/22 Classes 9.1 Object-Oriented Programming
9.2 Implementing a Simple Class
9.1-2
Code
WE 9.1
LAB 10  Classes, Enums   4/28
3/23   9.3 Specifying the Public Interface
9.4 Designing the Data Representation
9.3-5
Code
E9.3   _ / __
3/27   9.9 Separate Compilation 9.9 E9.5   _ / __
Project 2 A & B    _ /__
3/29   9.5 Member Functions 9.3-5 LAB 11  More Classes   _ / __
WE 9.1
Debugger LAB
3/30   9.6 Constructors 9.6  
4/3 Enumerations The switch Statement
Enumerated types: bool, switch, MyBool, LIKELY, Color, Colors
Enums PS 5.7
4/17 Streams 8.1 Reading and Writing Text Files 8.1  
4/19 Inheritance 10.1 Inheritance Hierarchies
10.2 Implementing Derived Classes
10.1
10.2
WE 10.1
4/20 Inheritance 10.3 Overriding Member Functions
10.4 Virtual Functions and Polymorphism
10.3
10.4
10 Extra
4/24 Vectors 6.7 Vectors 6.7 E6.18  E6.20   4/26 .pdf
4/26 More Vectors More Vectors   LAB 12  Vectors   5/8
4/27 Recursion 5.10 Recursive Functions 5.10
Print Triangle
E5.21   5/1
WE 5.1
WE 5.3
5/1 More Recursion Project   3     Add Digits Project   3         5/10
         
      LAB 13  Recursion   _/__  
         
5/17 FINAL     EXAM WEDNESDAY 5/17    

TEACHER EVALUATIONS:/span>

www.hunter.cuny.edu/te
  OR
www.hunter.cuny.edu/mobilete (for smartphones)