Fundamentals of Computing - CS230

Spring   Semester 2006


Instructor:      Mohammed Gaus Alam                                                                                                                       Office: 229 Ayres Hall

Email:             malam@jsu.edu                                                                                                                                    Telephone: 782-5359

Office Hours: 2:00-4:00 PM T TH  

 

Prerequisite:   Mathematical completion (C or better) of College Algebra or higher level mathematics course or score as indicated by ACT enhanced minimum math score of 24 or SAT minimum math score of 520.

Textbook:       1) Programming & Problem Solving with C++ by Dale/Weems/Headington 4th  ed.

                        Chapters 1 – 6 and chapter 9   ISBN 0-7637-0798-8

                        2) Essential Computing Mathematics by Lipschutz (Schaum’s Outlines) Chapters 1-6

                        3) An additional book will be required for the Problem Solving lab

Sign Up:         Required Problem Solving Lab = 20% of your grade

Diskette:        High density diskette which can be purchased in class for $1.00 or a jump drive.

Description:    A study of problem-solving tools and techniques and a broad survey of the major areas of computing. Visual C++ will be the language used to implement the problems.

Course requirements & grading percentages:

            Exam 1 .................................................................................................................................. 15%

                Exam 2 .................................................................................................................................. 15%

                Problem Solving Lab.......................................................................................................... 20%

                Homework and Lab Projects............................................................................................. 30%

                Final exam (comprehensive).............................................................................................. 15%

                GA Session.............................................................................................................................5%

Any student who receives failing grades during this course is urged to discuss this with me.

See the GA assigned to your class for tutoring. Their tutoring hours will be listed in the student lounge.

Course Policies:  All current JSU policies apply.

1.             Roll will be called daily. The necessity to attend classes and labs on a regular basis will soon be apparent.

2.             An hundred percent attendance is recommended. Most lectures and labs would include topics from previous lectures. Private lectures will not be provided if the student is absent in the class and the lab without a valid reason. Student is responsible for all announcements and assignments made in class.

3.        If a student misses an exam, arrangements for the makeup exam should be made within one week.  It is student’s responsibility to request for a make-up exam. The reason for absence must be legitimate (doctor’s excuse, etc.).  Only one make-up exam is allowed.  All others must be taken on time.  Exams not taken will result in a zero.

4.                    Arrive to class on time. If you arrive late the door will be closed and you will not be allowed to attend class. You are responsible for all material given and assignments made in class.

5.                    All homework assignments are to be turned in at the beginning of class on the due date. 5 points will be deducted for each day late for 20 point assignments and 10 points will be deducted for assignments worth more than 10 points when late.  If you know that you will be out, you may turn in your assignment early. No credit for just sending an electronic copy. Students will be working together in the lab portion of the class; however, students are expected to complete their homework assignments on their own. Plagiarism will not be tolerated. The penalty is ZERO for ALL students involved.

6.                    A hard copy and electronic copy are required for labs and projects. Labs and projects are not graded if the hard copy is not turned in. The hard copy and electronic copy are both due at the beginning of class for the date due.

7.                    All students are expected to attend class fully prepared with appropriate materials and all devices which make noise turned to the off position (e.g., cellular phones, pagers, personal stereos, etc.).  No electronic equipment may be used during exams.

8.                    Any student behavior deemed disruptive by the professor will result in expulsion of the student from the classroom, with an absence for the day and possible disciplinary action. No tobacco related products in class.

9.                    The following is a Disability Accommodation statement: According to Public Law 504 and the Americans with Disabilities Act, Jacksonville State University will provide reasonable access and appropriate accommodations for otherwise qualified disabled students. If you need such access or accommodations, please consult with your professor immediately.

Problem Solving Class is required as part of CS230 and is not optional

 

Objectives Objectives:

 


1.     Develop problem solving skills which enhance computer solution.

2.     Learn software engineering concepts and skills.

3.     Gain experience in use of high-level programming language such as C++.

4.     Write programs using proper format.

 
Tentative Course Outline and Schedule
Introduction (Class & Labs)                                                                              Ch. 1 Programming Text                                     

                                History of Computing &

                                Introduction to Problem Solving

 

Basic Math Foundations
                                Set Theory                                                                            Ch. 6 Essential Math Text

                                Logic & Truth Tables                                                          Ch. 4 Essential Math Text

 

Basic Computing Foundations                                                                         

                                Introduction to Algorithms                                               

                                C++ output                                                                            Ch. 1 Programming Text

                                Syntax & Semantics                                                             Ch. 2 Programming Text

                                Data & Variables                                                                  Ch. 3 Programming Text

                                Sample Problems (labs)

EXAM 1

                                C++ Programming (cont)                                                     Ch. 3 Programming Text

                                Algorithms to Code                                                            

                                Sample Problems (labs)

Math Foundations (cont)

                                Computer Number Systems                                                Ch. 1 Essential Math Text

                                Computer Math                                                                    Ch. 2 Essential Math Text

                                Computer E-form                                                                  Ch. 3 Essential Math Text

Program Construct

                                Input/Output; Assignment Statement                              Ch. 3 Programming Text

                                Arithmetic Expressions

                                Functions & Function Calls                                              

                                Sample Problems (labs)

Program Design

                                Design for Input/Output of Data                                       Ch. 4 Programming Text

                                Validation of input                                                               Ch. 5 Programming Text

                                Interactive vs. Batch input

                                Sample Problems (labs)

 

EXAM II

Algorithms, Flowcharts, Pseudocode                                                              Ch. 5 Essential Math Text

Selection Statement                                                                                            

                                Logical Expressions                                                             Ch. 5 Programming Text

                                If Statements-branch-conditional

                                Sample Problems

Looping Statements                                                                                           

                                While Loops&Do While-control structure                      Ch. 6 Programming Text

                                For Loops –control structure                                             Ch. 9 Programming Text

Final Exam  Comprehensive but mainly on material covered since exam 2.

The introduction of each new topic will be followed by appropriate classroom applications, lab work and homework assignments.

FINAL EXAMINATION SCHEDULE

 Class Time

Exam Time

Exam Date

   CS230_02    

 

 

 

As a programmer always remember that programming is not all about writing codes and compiling them and receiving correct output. Designing software is an art; an art that is used when an architect designs his skyscraper or an engineer designs his model plane or space shuttle.

As programmers we always have to be careful in terms of program’s efficiency, flexibility, clarity and validity. We must remember that just like an airport or the tallest building in town our program may need modification in the future. Our program must be able to accommodate that modification. You as a software designer may not be present at that time but your code will. Other programmers will work on it and they will have to be able to understand your work. They will have to understand your logic. So be clean, and always write comments next to your codes for clarity. Always indent your code whenever it is necessary.

As a programmer you must understand the environment (user group, memory availability, output time urgency, program efficiency, program accuracy etc.) your program will run. Just like the way a civil engineer would understand his environment (air pressure, river bed, water pressure, weight etc.) before he designs a bridge over a river. You have to design software where each module will communicate with each other in most efficient way. Each module has to be flexible enough to be modified or replaced without effecting the operation of the other modules. Too many interdependent modules always will make your program less receptive towards its environment. A building with too many interdependent structures is always harder to renovate than a building with few interdependent structures.

Now that you realize that you are not only a programmer but also an architect build your thoughts strings as such. The best time to do that is from NOW. Every program you write, keep it clean for yourself and others, make it most efficient to deal with its environment, design your logic so that it can be modified easily.

Every lab will be graded based on the following grading policies in order to shape your programming style to ensure the above practices in your programs.  

 

 

Lab grade points distribution:

 

Program Algorithm                                           5pts.

Program necessary comments                           3pts.

Proper indentation and neatness                        2pts.

Running program with correct output                 8pts.

                                                                        Program Clarity                                                 2pts.

Main