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
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 |