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)