CS 150 - Introduction to Computing II

Fall 2000 – Sections 001 and 004

 

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)