South Dakota State University

CSC 250 – Computer Science II – 3 Credit Hours

Fall 2007

 

Class Meetings:  MWF 9:00–9:50 am, SPE 120

 

Instructor:            Paula Kurtenbach                                     Office Location:  AD 144A  

Office Hours:       Tues & Thurs 1:00 – 3:00 pm                   Office Phone:      (605) 688-4533

E-mail:                  paula.kurtenbach@sdstate.edu                Campus Lab:       Admin 142

WebCT:                http://webct.sdstate.edu                            Tech Support:     (605) 688-6776

 

 

Course Description

Problem solving, algorithm design, standards of program style, debugging and testing.  Extension of the control structures and data structures of the high-level language introduced in CSC 150.  Elementary data structures and basic algorithms that include sorting and searching.  Topics include more advanced treatment of functions, data types such as arrays and structures, and files.

 

Course Prerequisites:  CSC 150

 

Technical Requirements

Writing C++ Programs:  Ways to Write C++ Programs

 

Text:   Starting Out with C++, From Control Structures through Objects”  5th Edition by Tony Gaddis. The publisher is Addison-Wesley.

SDSU Bookstore:  http://www.sdstatebookstore.com/

 

Objective

The primary objective of this course is to continue development of the fundamentals of computer science emphasizing computer programming, logical development, and implementation of solutions to problems using a high level programming language such as C++.

 

Goals

·         Able to apply knowledge of computer science, mathematics, and science.

·         Able to design, test, and implement software, as well as to analyze and interpret data and programs.

·         Able to solve future problems by applying techniques and skills learned in this course using modern software tools.

 

Outcomes

A Student who successfully completes this course should be able to:

·         Define, create and manipulate multi-dimensional arrays.

·         Define, create, and manipulate character strings.

·         Understand and implement searching and sorting techniques.

·         Define, create, and traverse dynamic lists.

·         Understand and implement linked lists, stacks, and queues.

·         Understand and implement classes and objects.

·         Understand user created libraries (header or .h files) and include / implementation files (.c)

·         Understand recursion

·         Define user-defined data types using built-in types and other language constructs.

·         Process data that is stored in external text files.

 

 

Instructional Methods 

Class time will include a mixture of lecture, discussion and in-class activities.  To excel in this course, you must read the text, attend class and take notes before completing the learning activities and programming assignments.  Many of the programming segments on the quizzes and exams are directly related to the programming assignments.  Programming assignments become more difficult as the course progresses.  It is very important to stay caught up and to start the programming assignments early in order to do well in the course.  

 

Your course grade will be determined by a combination of Quiz, Learning Activity, Programming Assignment, and Exam scores as noted below:

 

Grading/ Evaluation Procedures:                           Grading Scale:         

      Quizzes                                      10%                        90-100%  = A

      Learning Activities                      10%                        80-89%    = B

      Programming Assignments       20%                        70-79%    = C

      Exam 1                                      20%                        60-69%    = D

      Exam 2                                      20%                        0-59%      = F

      Comprehensive Final Exam      20%                                                                   

      Total                                           100%                     

 

 

Quizzes
Quizzes may be announced or unannounced and will be given every 1-2 chapters.  For most quizzes, you will need to describe the concepts discussed in the unit, give the output of short programming segments and write short programming segments to fit specific criteria.  Most quizzes do not include True/False, Matching, or Multiple Choice questions. 

 

The purpose of the quizzes is to help you focus on the course materials and to give you an idea of what to expect on the exams.  The quizzes may be given in class, or via WebCT.

 

 

Assignments
Each unit in this course includes Learning Activities which may ask you to answer text book questions, complete short programming exercises, or design solutions to problems.  Solutions will be collected during class, usually at the beginning of the hour, on the assignment due date.  Assignments completed using a word processing program must be printed and turned in during class.  Late Learning Activity Assignments will only be accepted until the class period following the assignment due date and will receive a deduction of 10% per day in accordance with the late work policy stated below.

 

Each unit in this course also includes a Programming Assignment.  To complete each programming assignment, you must design, write and test a computer program.  Your design must be recorded and submitted in WebCT, along with your working program (source code file).  It is your responsibility to completely test your program so that it meets the criteria specified in the programming assignment.  I will run each program and test it against those same criteria to make sure that it is correct.

 

All programming assignments must be coded in C++ and must compile and run under Linux.  You may use the computers in Admin 142 to write your programs, you may use your own computer to login to the SDSU Linux server and write your programs, or you may use a different program to write and debug the programs on your own computer.  If you choose to use a windows-based application to write the programs, it is best to ‘ftp’ the files to the SDSU Linux server and run them under Linux to verify their operability before submitting them in WebCT.  Directions for transferring and running programs on the Linux server or for installing Linux on your computer are available at: http://www.engineering.sdstate.edu/~gamradtk/computers/comps.html

 

Programming assignments will be posted at least one week in advance of their due date.  Programming assignments must be submitted by 11:55 pm on the due date or they will receive a reduction in points of 10% per day.  Assignments turned in more than one week after the due date will not be accepted and will receive a zero grade.   Programming assignments that are turned in but do not compile will be returned to the student to be “fixed and resubmitted”.  They will receive the late grade reduction of 10% per day when fixed and re-submitted, in keeping with the late work policy. 

 

 

Exams
Each student must write 3 exams.  Two exams will be given during the semester.  The final exam is comprehensive and will be given during finals week.  All exams contain short answer and essay questions some of which require students to analyze or write programs or program segments.  Exams are closed book, closed notes.  Programmable calculators (including TI Graphing Calculators) may not be used during the exams.  Exams are designed so that students who write their own quality programs for the programming assignments should be able to score well on them.

 

Students who are unable to take an exam at the specified date/time must notify the instructor as soon as possible to make other arrangements.  If an exam is missed without advance notice, an alternate, make-up exam will be given with a reduction in points of 10% per day in keeping with the Late-Grading-Procedure stated above. Exams not taken within the week following the regular testing week will receive a zero grade.

 

 

Cheating and Plagiarism Policy

All students are expected to do their own work.  Students who turn in duplicate assignments will receive no more than ˝ credit for the assignment.  Repeat offenders will receive a zero grade for the assignment.  Students who work together to figure out an assignment, must each understand the solution well enough to write their own unique program or answer.  Upon discovery of cheating/plagiarism, all prior work is subject to review and a change of grade. Anyone caught cheating on an exam will receive a zero grade for that exam.  In addition, violation of the academic policy could result in disciplinary action by the University.  Refer to SDSU Conduct Code 01:10:25 at http://studentaffairs.sdstate.edu/JudicialAffairs/StudentCode/Chapter10.pdf for additional information.

 

 

Freedom in Learning

Students are responsible for learning the content of any course of study in which they are enrolled.  Under Board of Regents and University policy, student academic performance shall be evaluated solely on an academic basis and students should be free to take reasoned exception to the data or views offered in any course of study.  Students who believe that an academic evaluation is unrelated to academic standards but is related instead to judgment of their personal opinion or conduct should first contact the instructor of the course.  If the student remains unsatisfied, the student may contact the department head and/or dean of the college which offers the class to initiate a review of the evaluation.

 

 

Student Accommodations:

Students who need special accommodations should contact the instructor and the Office of Disability Services, Room 145 Binnewies Hall, (605) 688-4504, as soon as possible.  It is the student’s responsibility to contact the Office of Disability Services to set up necessary accommodations.  The instructor must receive permission from the Office of Disability Services in order for any special accommodations to be given.  For more information, please refer to:  http://www3.sdstate.edu/StudentLife/DisabilityServices/Index.cfm .

 

 

 

Computer / Lab Use

Students may use the Computer Science Lab located in Administration Bldg Room 142.                          

 

Sunday

Monday - Thursday

Friday

Saturday

Noon – 10:00 pm

8:00 am – Midnight

8:00 am – 5:00 pm

Noon – 7:00 pm


Note
: Lab hours are also posted in ADM 142. Please note special postings for holiday hours.

 

 

Programming Note

Learning to program computers is fun & challenging.  It can also be very frustrating.  Please start on the programming assignments early & be persistent.  When you get stuck, ask specific, well-worded questions and keep trying! 

 

 

Course Outline

Following is a list of topics and approximate schedule for the course.  The WebCT calendar contains the exact schedule for this course and takes precedence over the information listed below.

 

Topic

Time

Objective

Unit 1, 2D & 3D Arrays

1 week

- Define, create and manipulate multi-dimensional arrays.

Unit 2, Searching & Sorting

1 week

- Understand and implement searching and sorting techniques.

Unit 3, Pointers

1.3 weeks

- Define, create, and manipulate character strings.

- Define, create, and traverse dynamic lists.

- Understand and implement linked lists, stacks, and queues.

Unit 4, Characters, Strings, and the String Class

1.3 weeks

- Define, create, and manipulate character strings.

Exam 1, Units 1 – 4

.3 weeks

- Unit 1 through Unit 4 Objectives

Unit 5, Structured Data

1.3 weeks

- Define user-defined data types using built-in types and other language constructs.

Unit 6, File I/O

1 week

- Process data that is stored in external text files.

Unit 7, Classes

2.3 weeks

- Understand and implement classes and objects.

 

Exam 2, Units 5-7

.3 weeks

- Unit 5 through Unit 7 Objectives

Unit 8, Linked Lists

1 week

- Define, create, and traverse dynamic lists.

- Understand and implement linked lists.

Unit 9, Stacks & Queues

1 week

- Understand stacks and queues.

Unit 10, Recursion

1 week

- Understand recursion.

Final Exam (Comprehensive)

.3 weeks

- Unit 1 through Unit 10 Objectives