SYLLABUS
CS
163: Data Structures
Summer
2012
Prerequisite: |
CS162 or consent of
instructor This means you should
have experience writing complete programs in C++ with experience creating
classes and building linear linked lists |
Instructor: Karla Fant
E-mail: karlaf@cs.pdx.edu
Office Location: FAB 120-19
Office hours: Thursday
4-4:50 in FAB 120-19 or by arrangement
Text: Data Abstraction and Problem Solving
with C++, Carrano
Lecture Notes: |
Lecture
notes and course power point slides are on D2L with a backup available on the
class web site: http://www.cs.pdx.edu/~karlaf |
|
|
|
|
|
|
Disabilities: |
If you have a
disability and are in need of academic |
|
|
|
accommodations, please notify the instructor immediately
to arrange needed support. This includes any accommodations required for
taking examinations. |
|
|
Hardware: |
CS
UNIX systems (solaris) |
||
Compiler: |
C++
language implemented by the g++
compiler. All
work this term will be done on unix! Do NOT use Dev Cpp in CS163. |
||
|
|
|
|
CS163 is a
Hybrid Class
This term CS163 is being
taught as a hybrid class which means we will be augmenting some lecture time
with required course videos to allow for in-class lab time. Students will
demonstrate proficiency at PSU by the midterm and final exam times. IT IS VERY IMPORTANT that all
required videos be watched within the week that they
are assigned. It is also important to regularly attend class as the
hands-on lecture time is designed for your success. Missing class time or not watching the videos may mean missing vital
information and failing the class!
To
account for the fact that we only meet once a week, all announcements and
course materials will be posted on PSU’s online system called Desire2Learn
(D2L) and sent to your pdx.edu account, so it is important to login frequently.
Course Materials:
All course materials (except exams and
textbooks) are available electronically and programs can be submitted entirely
electronically, so there is no requirement to come on campus to turn in your
work! In fact, many due dates do not fall on class time together. However, the
on-campus labs have tutors that can help with the assignments – so you might
consider scheduling some time to work at PSU.
Here are the links you
will need:
1. D2L under the Course Content tab http://d2l.pdx.edu
2.
CS163’s Home page CS163 Web Site for a backup copy of materials
Online Tools: Desire2Learn
We will be using Desire2Learn. Our goal is to use this software to work as a group in this course and to learn from one another. Login at least twice a week to: http://d2l.pdx.edu
a. Your password should be the same as your
Odin password.
b. Read announcements
c. Correspond with other
students about technology, ethics, problem solving, algorithms, and program
style issues.
d. Weekly participate with the online practice quizzes and
discussions.
e. Post questions and answers (D2L Discussions)
f.
Check your grades
g. Turn
in assignments in the
D2L Dropbox
h. Obtain links to watch the course lectures
i.
Access
Lecture Notes, Slides, and Videos via the Course Content
Questions?
If you have questions, the
best approach is to post messages on
Desire2Learn or send email directly to karlaf@cs.pdx.edu.
Sending D2L Mail will not provide for a quick response as it is an internal-only
mail system – it is not “email”.
Electronic mail works the
best if you have a question that you encounter as you work on the programming
assignments. Please be advised that questions should be clearly formulated and
it should be clear from the question that you have attempted to solve the
problem on your own. Do
not post code online or on Desire 2 Learn. Do not, unless explicitly
asked by the Instructor, simply email your program and expect a response!
Instead, talk about what problems you are encountering and what you have done
to make progress. Make
sure to provide your full name and
indicate which class you are in when
sending a message.
Be careful when seeking
help from others. You should seek help from (a) instructor, (b) TA’s, and (c)
Tutors. We are here to work with you – either in person or remotely. But,
beyond this be careful. Do not to share your code with others! Never post your code in the D2L discussions,
the Web, social networking sites, or the web. Never give your assignments to any other PSU students, regardless
of their situation. Never email
your code to anyone except your instructor. Performing any of these actions
will result in a ZERO grade on that assignment.
If you have administrative
questions and need to talk directly with the Instructor, send mail to: karlaf@cs.pdx.edu.
Office hours listed on
this syllabus are also highly recommended. Since
I received 100’s of email messages, make sure to put “163 Question” in the
subject heading.
Is CS163 the right class
for me?
CS163
is designed for students who have already programmed in C++ previously. In this class we use C++
to learn about data structures applying the syntax previously learned.You should already be able to
program using the following C++ syntax:
(a) classes
(b) pointers
(c) functions
with pass by reference
(d) linear
linked lists
(e) and,
understand recursion at a conceptual level
Course Description:
Data
abstraction with formal specification. Elementary algorithm analysis. Basic concepts of data and its representation inside a computer.
Linear, linked, and orthogonal lists; tree structures.
Data structures are implemented as data abstractions. Sorting and searching
strategies. Data management.
Goals:
To acquaint students with
structures used in C++ for the storage and manipulation of data. The concept of data abstraction and the
problem of building implementations of abstract data types are emphasized. Both static and dynamic implementations of
major structures are presented and the advantages and disadvantages of each are
discussed. Structures include lists of
several types, stacks, queues, trees, binary trees, B-trees and graphs. Recursion and key transformation (hashing)
are examined. Students are encouraged to examine algorithms and to make
judgments about the practical and social application of these algorithm concepts
to large scale programming projects; the course stresses the importance of
quantitative methods in designing software.
Material to be Covered:
•
Material to be covered will include data abstraction with formal
specification, elementary algorithm
analysis, basic concepts of data and its representation inside a computer,
linear linked and orthogonal lists, tree structures, sorting and searching
strategies, and data management.
Approach:
There are three major learning
outcomes expected for CS163:
1.
Proficiency in Programming (in C++)
2.
Problem Solving and Critical Thinking
(via participation)
3.
Proficiency in the Course Concepts –
Data Structures
You must receive a passing
grade in each of these three learning outcomes:
1.
Proficiency in Programming (in C++)
a. 5 graded programming assignments
b. Midterm and Final Syntax Proficiency
demonstrations (Pass/No Pass)
2.
Problem Solving and Critical Thinking (via participation)
c. 5 graded homework assignments
d. Participation with in-class lab sessions
(Pass/No Pass)
3.
Proficiency in the Course Concepts
e. Watch the course videos each week (Pass/No
Pass)
f.
Graded
Examinations (Midterm, Final)
Policies
for Proficiency in Programming (in C++)
Policies for Assignments:
•
Course requirements consist of five
assignments which include written components (5% of your grade) and programming
components in C++ that comprise (30% of your grade). The programming portion provides
experience building correct implementations of abstract data types.
• The
written components include discussions on algorithms, ethics, and style issues.
These must be completed to get a grade on each assignments.
These must be your own work and may not be copied from the web or other
students. Be careful to not plagiarize.
• For
the programming component, 20% of your grade is based on the program style,
comments, and documentation provided with the program. Make sure to follow the
STYLE SHEET!
• 20% of the program grade is based on
the design write-up. The design write-up must be a minimum of 1 page or at least 600 words. Refer
to the style sheet for information about what should be discussed.
• Partial credit will be
given for incomplete work. However, 25 points will be automatically deducted
for programs that cannot successfully compile and link. If you find you are
continually having problems meeting the due dates, make an appointment.
•
Each student is expected to submit only
original work. Software and passwords must be kept confidential. Any person who
violates these will receive a grade of
zero on an assignment which will result in an F for the course and a letter
will be sent to the head of the CS Department. Identical programs will be
treated as copying even with cosmetic changes.
• Submit your programs and write-ups provided electronically to
the D2L Dropbox (make sure to select the “submit”
button after uploading the files, otherwise your submission will be lost). For
backup, please also email your project as attachments to karlafgr@cs.pdx.edu. You should also experiment with submitting
programs using the D2L dropbox.
Late Programs:
• Each
programming assignment will be due on the due date; they will not be accepted
late for full credit. Late assignments
will be accepted one week late with 5% late points deducted. The last
assignment may not be turned in late. Assignments beyond this will not be
accepted unless previously arranged with the instructor. There will be
situations where the instructor will change a due date.
Computing Environment:
The CS UNIX systems (known as Solaris) using the g++ compiler which must be used for all assignments. Odin’s g++, Dev Cpp, or Visual C++ are not
acceptable. Do not use the excuse but
it runs at home on my PC.
Policies for
Demonstrations: Pass/No Pass
Policies
for Problem Solving and Critical Thinking (via participation)
Policies
for Homework:
• Every assignment includes a written homework
component. All answers must be your own work and may not be copied from the web
or other students. Be careful to not plagiarize. Doing so will result in a zero
on an assignment and a failure in the class.
• The due dates correspond with your
programming assignment due dates and should be submitted to the D2L dropbox.
Policies for in-class Lab
Sessions: Pass/No Pass
Policies
for Proficiency in the Course Concepts
Lecture Videos – Pass/No
Pass
Policies for Exams:
• It is against
department policy to give final exams early (no exceptions!). Exams will all be
closed book, closed notes.
EXAMS:
See the
instructor in advance if you have a midterm conflict; the final is given only
at the scheduled time. In emergency
situations, makeup exams can be proctored through the testing services center
and cost students a fee ($10). To make arrangements with the testing center
you must first get authorization from your teacher, then
set up an appointment with the testing center, which then is followed by
communicating the date/time of the exam to your teacher so that they can get
the testing center an exam. Do not assume
that the testing center will be available to be used (except in emergency
situations).
Minimum Grade
Requirements:
Demonstrate Proficiency in C++ |
Pass/ No Pass |
Labs: Open Labs or Classroom lab time |
Participation |
Pass/ No Pass |
Attendance |
Keep up with Course Material |
Pass/ No Pass |
Every week watch Videos and Read Chapters |
-
Written Homework -
Programming Projects |
||
Midterm |
25% |
At PSU |
Comprehensive Final |
40% |
At PSU |
•
INCOMPLETES will be given only when
a minimal amount of work remains to
be completed, only for a valid reason and only for a fixed time period. Do not expect an incomplete in this
class.
• CHEATING: Each student is expected to submit only
original work. Any person who violates
these requirements will receive a grade of zero for an assignment which based
on the above grade requirements will result in an F for the course. A
letter will be sent to the head of the CS Department.
Students will
receive a zero on an assignment if any of the following activities take place:
1. Student accepts an assignment and/or
program from another student
2. Student supplies an assignment and/or
program to another student
3. Student posts the assignment and/or
program on the web, social networking site, or D2L discussions
4. Student shares their password with
another student at PSU giving that student access to their assignments and/or
programs
5. Students work together on assignments
and turn in the same and/or similar assignments.
6. Student turns in work that was obtained
from other sources such as the web, friends, tutors or TA’s.
7. Student leaves work available for others
to copy from
8. Student attempts to purchase programs
from others (in person or electronically).
The work you
submit must be your own. It is not acceptable to hand in assignments in which
substantial amounts of the material was done by someone else. You must be especially
careful that in the process of discussing problems with other students that
they do not inadvertently end up using your work. In such an event, all
students involved will receive a zero on that assignment.
• No Basis for a Grade – A no basis for a
grade in this class only applies when a student has not turned in any work, not
taken any exams, and have not participated on D2L. If you have complications
and cannot finish the class, make sure to drop or withdraw. Otherwise you will get a grade in the class.
Being Successful!
1.
Login
and Participate twice a week with D2L.
2.
Keep
up with Materials
3.
Attend or Watch all class lectures
4.
Participate in at least 7 of the D2L
online Quizzes
5. Ask
Questions! Use the TA’s, Tutors, use D2L discussions,
and correspond with your teacher!
Try to Exceed my
Expectations!