Transcript Lecture01

CS 261: Data Structures
Summer 2007
Location: WNGR 153
Time: M-F 11:00 – 11:50pm
* Slides partly from Dr. Ron Metoyer
Instructor
•
•
•
Venkata Janardhan Rao ( Jana )
Office: KEC 2048 - #19
Office Hours:
•
•
TBD
or by appointment
Recitation Sections
Recitation sessions will be used to provide:
•
Instruction in C programming (fundamentals, pointers,
compiling, techniques, style, etc.)
•
•
Another resource for further learning/discussion of
concepts, data structures, and algorithms
Exam review, return
They will help you acquire programming skills
and knowledge needed to complete
assignments, worksheets, and exams
Textbook
•
Data Structures – Schaumm’s Outline Series
•
Readings assigned from Dr. Budd’s lessons
•
Reference book for C
•
C/C++ Programmer’s Reference (Third Edition), Herbert
Schildt
•
Programming with C – Byron Gottfried, Schaumm’s
Outline Series
Course Web Page
http://classes.engr.oregonstate.edu/eecs/summer2007/cs261/
Check this web page often!!! It contains:
• The schedule for assignments, midterms, exams, and
lectures
• Updates on assignments
• Lecture slides
• Course Policies
• ...and more...
Course Lecture Notes
•
•
•
Will typically be available either an hour
before class or shortly after
If you would like a copy to scribble on during
class, you are responsible for printing it out
Not all notes will be in .ppt format – we will
do some board (or overhead) work
Blackboard
•
We will also use Blackboard for:
•
•
•
Reporting your grades
Discussion Forum
To login to Blackboard, go to
http://my.oregonstate.edu and login with your
ONID id
Prerequisite Courses:
•
•
CS 162
MTH 232
Prerequisite Programming Skills :
•
•
•
You will learn to program in C (not necessarily
in class!!)
We will spend a couple of lectures introducing C
You will then be thrown to the lions
•
•
Really...it’s not that bad
The best way to learn – write a lot of code
Prerequisite Skills & Characteristics:
•
•
•
•
•
Analytical skills, problem-solving ability
“Teaching” ability
Planning/scheduling ability
Flexibility, patience, persistence
Integrity, responsibility
Academic Honesty
•
Honesty is absolutely essential in order for
learning to take place.
•
Your approach to academic work will form
the foundation of professional integrity in
your career.
Academic Honesty
•
Honesty:
•
•
•
Ok
•
•
•
Absolutely essential in order for learning to occur
Will form the foundation of your professional integrity in your career
Discuss concepts, general approaches, strategies
Discuss bugs
Not Ok
•
•
•
•
Debugging someone else’s code
Sharing code, homework answers, etc. – e-mail, verbal, etc.
Common excuse: “We worked on it together”
Common response: Divide credit among participants
•
Default policy for cheating: an F for the course
•
Expected to produce and understand all aspects of your own work
Collaboration
•
•
•
•
You are expected to do your own work!
But, you are allowed to verbally discuss
general approaches and strategies with other
students, TAs or the instructor
Do not simply let someone else tell you how to
solve the problem
Don’t let someone else copy your work
Collaboration
•
•
If you give or receive help you must describe
that help in the program header block (more on
this later)
If you list another student as a collaborator,
that student must also list you as a
collaborator.
Academic Honesty
Things you are NOT allowed to do:
• Use code (printed or electronic) from other
students
• Use code from the Internet (unless explicitly
allowed by the instructor)
• Give your code (printed or electronic) to other
students
• Ask another student to troubleshoot your code
• Help another student to troubleshoot their code
Examples of academic dishonesty
•
Copying code (electronically) from any source
and then changing…
•
•
•
•
the header block
the variable/method names
the comments
etc.
University and Department Academic
Honesty Policy
•
University Academic Honesty Policy:
http://oregonstate.edu/admin/stucon/achon.htm
•
CS Academic Honesty Policy:
http://www.eecs.oregonstate.edu/undergraduate/cs/dishonesty.html
What if I need help on assignments?
1.
2.
Post to the discussion forum on Blackboard
(make sure you don’t post code that gives the
answer away)
See me in my office hours or make an
appointment
Start your assignments early! Don’t wait till the
day before the due date.
Grading
•
•
•
•
Assignments – 30%
Quizzes and Homework's – 20%
Midterms – 20%
Final – 30%
Grading policies
•
•
•
•
Allowed only 1 late assignment. The late assignment
must be submitted by due date + 48 hours.
You have 1 week after the exam or project has been
returned to the class to question your grade.
If you cannot take an midterm/exam at the scheduled
date/time, contact the instructor at least 1 week in
advance to arrange for an alternate test date/time.
Students who miss a midterm or final exam without
an excused absence will be given a mark of 0.
Handing in Programming Assignments
1.
Make sure you have an ENGR account. If you
don’t go to
https://secure.engr.oregonstate.edu:8000/teach.php?type=want_auth
2.
3.
4.
5.
6.
7.
8.
Log in at the website above
Click Submit an Assignment
Choose the assignment from List of Assignments
Browse for the files to submit
Select the relevant file(s)
Click Submit
Verify successful submission
Submitting programs
•
Must be submitted electronically by 11:59
PM on the due date.
•
Be sure to submit all files that are required
to run your program.
Program documentation
1. Always identify yourself and the program at the top
of the main file.
/*
<your name>
<date>
<collaborators, description of help>
<project identification>
<development environment>
<project description>
*/
2. Always identify yourself and the file contents at the
top of other .h and .c files.
/*
<your name>
<date>
<class description>
*/
Program documentation
3. Always provide a description for each
procedure / function.
/*
<method description>
<preconditions>
<postconditions>
*/
4. Always use self-documenting code.
5. Provide additional comments as needed.
(Usually comment logical sections of code.)
Programming Assignments
•
•
•
Must also be copied to your ENGR (or other OSU
account) before the deadline.
If you submit the wrong files and you have not copied
your project to your ENGR account (before the
project deadline), you will not be given an
opportunity to resubmit and you will get a zero for
that assignment.
We do NOT accept modification dates on personal
computers as proof that the files were done on time.
Program Development
•
•
I will be using the gcc compiler on unix to
grade your assignments
You may develop on any platform ...such as
Microsoft Visual Studio, however, you must
verify that it compiles and runs with gcc before
turning it in.
Office Hours Policy
•
•
I will help you understand the assignments
I will only help you debug code if you can
demonstrate confidence in supporting code
•
•
If function A calls function B, you must
demonstrate that function B is behaving correctly
(ie...demonstrate with a test case!!!)
I won’t help debug if you’re not providing unit test
cases
Learning Objectives
At the completion of the course, students will be able to...
•
describe the properties, interfaces, and behaviors of basic abstract data
types, such as collection, bag, indexed collection, sorted collection,
stack, and queue.
•
read an algorithm or program code segment that contains iterative
constructs and analyze the asymptotic time complexity of the algorithm
or code segment.
•
state the asymptotic time complexity of the fundamental operations
associated with a variety of data structures, such as vector, linked list,
tree, and heap.
•
recall the space utilization of common data structures in terms of the
long-term storage needed to maintain the structure, as well as the shortterm memory requirements of fundamental operations, such as sorting.
•
design and implement general-purpose, reusable data structures that
implement one or more abstractions.
•
compare and contrast the operation of common data structures (such as
linear structures, priority queues, tree structures, hash tables, maps, and
graphs) in terms of time complexity, space utilization, and the abstract
data types they implement .