Prerequisite: CS
140
Time
and Place: MW CS150 001 12:00
- 12:50 PM EB 0012
TR CS150 004 9:30 – 10:20 AM EB 0011
F CS150 004 8:00 –
9:50 AM EB 2026 (lab)
F CS150 001 12:00 - 1:50 PM EB 2026 (lab)
Instructor: Xudong
William Yu
Engineering
Building 3039
(618)
650-2321
Email:
xyu@siue.edu
URL:
www.cs.siue.edu/xyu
Office Hours: MWF 10-11 AM
MWF 1-2 PM
TR 1-3 PM
(or
by appointment)
Teaching
Assistant: TBA
Text
Books: 1. “Problem Solving with C++”, 2nd
edition, by Walter Savitch.
2.
“Data Abstraction and
Problem Solving with C++”, 2nd edition,
by Carrano, Helman, and Veroff.
Overview:
This is the second in a three-course
sequence in Introduction to Computing.
It introduces the concept of Abstract Data Types (ADT) and Object-Oriented
Programming, using C++ classes and structures. Other topics include algorithmic
program design and problem solving, recursive functions, pointers, linked
lists, and memory management.
Electronic
Communication:
The instructor will place class material
(e.g., assignments, examples, notes, etc) in the folder
Classes
ob ‘engfs2’\CS\CS150\William Yu. Students can access the information by
logging in to the computer in our lab.
Please check the folder before each class for new class notes and
examples.
Class
Attendance:
For students to gain understanding of the
material presented in the course, regular class attendance is essential.
Students are expected to attend all classes and arrive on time. Any student who arrives late to class must
see the instructor immediately after the class. Except for an emergency, any
student who needs to leave the class early must notify the instructor prior to
the start of the class.
Assignments:
Computer assignments will be given once a
week at the beginning of the lab. Assignments are either in-class, which are due at the end of the lab or take-home, which are due at the
beginning of the next lab. Most assignment will require the submission of both
a hard copy and a soft copy. The soft copy must be placed on the department
server (in dropbox on ‘csfs2’\CS150_00?\your_folder)
before the due time. Retain all source programs until a graded program printout
is returned to you. A 10% penalty will be applied for each day the program is
late, including weekends, prior to the instructor’s grading. No late program
will be accepted after the instructor/TA has graded the class’s programs.
Students are expected to do their own work. Copying of other people's work for
tests, quizzes, or lab work will result in the assignment of a zero grade.
Quizzes:
Quizzes will be given once a week,
usually in the first few minutes of a lab. The questions on each quiz will
cover recent material from the lectures and the labs.
Lab
Exams:
There will be two in-class lab exams
during the semester. Each lab exam assignment will be distributed at the
beginning of a lab period, and the entire 110-minute lab period will be used to
complete the assignment. The students must place their finished program on the
department server in the appropriate folder at the end of the lab period.
Tests:
Two 60-minute tests and a 100-minute
comprehensive final examination will be given. They will be announced at least
a week in advance. Student who has a hardship excuse for missing a test must
notify the instructor on or before the day of the test to schedule a makeup.
Grading:
Quizzes: 10%
Programming assignments: 25%
Lab exams: 15%
Tests: 30%
Final examination: 20%
Grading
Scale:
90 – 100 A
80 – 89 B
70 – 79 C
60 – 69 D
0 – 59 E
Tentative
Schedule
Week 1: Problem Solving and Software
Engineering (Carrano Chapter 1)
Visual C++ Debugging
Week 2: Key Issues in Programming (Carrano
Chapter 1),
Recursive Solutions (Carrano
Chapter 2)
Week 3: Counting with Recursion, Recursive
search of an Array (Carrano Chapter 2)
Week 4: Recursion and Inefficiency (Carrano
Chapter 2),
C++
Structures (Savitch Section 6.1),
Week 5: Classes
and Member Functions (Savitch Section 6.2)
Lab
Exam 1 (Array Processing
and Recursive Function)
Week
6: Abstract Data Types, ADT
Examples (Savitch Section 6.3)
Week 7: Friend Functions (Savitch Section
8.1), Review for Test 1,
Test 1 (Carrano Chapters 1 and 2,
Savitch Chapter 6)
Week 8: The Const Parameter Modifier, Overloading Operators,
Separate
Compilation (Savitch Sections 8.1 and 8.2)
Week 9: String
Classes (Savitch Section 10.3), List ADT (Carrano Chapter 3)
Lab
Exam 2 (Class and Member
Functions)
Week 10: Array Implementation of List ADT
(Carrano Chapter 3),
Sorted
List ADT (Carrano Chapter 3)
Week 11: Pointers
(Savitch Section 11.1),
Cstring (Savitch Section
10.1)
Week 12: Memory
management (Savitch Section 11.2),
Dynamic Arrays (Savitch
Section 11.2)
Week 13: Destructors & Copy Constructors (Savitch Section
11.3)
Review for Test 2,
Test
2 (Savitch Chapters 6,
8, 10, and 11, Carrano Chapter 3)
Week 14: Linked
Lists (Carrano Chapter 4)
Week 15: More
Linked Lists Operations (deleting from, insert to, etc)
December 12: Final Examination (Everything)
8:00
- 9:40 AM
(001)
10:00
– 11:40 AM (004)