SYLLABUS

CS 163: Data Structures

Fall 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:              Wednesday 12:30-1:20 and Friday 9-9:50 in FAB 120-19

 

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

 

 Handouts:

All handouts, due dates, required videos and programming assignments can be retrieved from D2L

 

 

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 or linux!

Do NOT use Dev Cpp or Visual Studio in CS163.

 

 

 

 

 

Two Sections of CS163

This term there are two sections of CS163. Section 001 is an “in-class” section and Section 002 is an “online” section. These classes are not the same.

 

Section 001: In class students will experience traditional lectures with accompanying CS199 lab where students will use their own computers (laptop, netbook, table, etc.) or check-out a PSU laptop computer. Attendance to lectures and labs are required. Lectures may be augmented with required course videos to allow for in-class demonstrations.

 

Section 002: Online students will have online materials available through D2L which will include lecture videos, slides, quizzes, and discussions. Online students participate with the online CS199-005 lab section which is supported through D2L. Online students will be required to take the midterm and final exam at PSU and demonstrate programming proficiency during that time. Remote students will need to arrange for examination and proficiency demonstrations early in the term through proctoring centers.

 

To account for the fact that each of us may be watching the class at different times, all announcements and course materials will be posted on PSU’s online system called Desire2Learn (D2L), so it is important to login frequently. The lecture video links and handwritten notes are only available through D2L.

 

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! However, the on-campus labs have tutors that can help with the assignments – so you might consider scheduling some time to work at PSU. There will be online activities and discussions to encourage progress; these are a vital part of your grade.

 

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

 

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.

 

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.

 

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

 

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)

a.       Pre-Lab exercises (Pass/No Pass)

b.      Participation (Pass/No Pass)

                                                                          i.      Section 001: Attendance and Lab Participation

                                                                        ii.      Section 002: D2L Discussions and Online Lab Participation

 

3. Proficiency in the Course Concepts

a.       Examinations (Midterm,  Final)

b.      Section 002: Watch the course videos each week. D2L quizzes unlock the next topic content area (Pass/No Pass)


 

 

Policies for Proficiency in Programming (in C++)

 

Policies for Assignments:

• Course requirements consist of five assignments which include written components and programming components in C++ that comprise (35% 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.

 

• LATE assignments will be accepted: one week late, for 5% off (except for the last assignment). There will be situations where I will announce changes to the due dates in class and posted on the web site. Assignments may not be turned in later than one week late.

 

• 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 assignments electronically to the D2L Dropbox (make sure to select the “submit” button after uploading the files, otherwise your submission will be lost). It is important to submit your assignment to the correct D2L Dropbox, otherwise it cannot be graded. For backup, please also email your assignment’s files as attachments to karlafgr@cs.pdx.edu. You may need to use a file transfer program – you can talk with the tutors (tutors@cs.pdx.edu) to get more information. On a PC I use a free program called WINSCP.

 

Policies for Demonstrations: Pass/No Pass

 

 

 

Policies for Problem Solving and Critical Thinking (via participation)

 

 (Section 001 Only- Inclass): Policies for in-class Lab Sessions: Pass/No Pass

 

(Section 002 Only- Online): Policies for online Lab Sessions: Pass/No Pass

 

(Section 002 Only - Online): Policies for On-line Discussions: Pass/No Pass

• Online Students are expected to login to D2L every week and participate (posting and reading) the online discussions! Your participation must be (a) meaningful, (b) instigate other discussion, (c) and be related to the class subject matter. Participation means that you can ask questions, answer other students’ questions, or answer the discussion questions. It all counts! However, simply providing the entire solution and/or code will not promote a meaningful discussion.

• Participating in discussions is Pass/No Pass. To pass this portion you must receive a passing grade 65% of the time.

 

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. Exam times will be made available for online students. These times will be announced in class and posted on the web 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

Proficiency Demos (twice)

Participation

 

 Pass/No Pass

Section 001: Attendance & Labs

Section 002: D2L Discussions & Labs

Keep up with Course Material

Pass/No Pass

Every week watch Videos

and Read Chapters

Individual Assignments

-          5 written & programming assignments

 

 

35%

 

 

Submit to D2L Dropbox

 

Midterm

25%

At PSU or Proctored

Comprehensive Final

40%

At PSU or Proctored

 

 

Policies:

Failure to turn assignments in on time will result in a zero for that assignment. Assignments will not be accepted after the last day of class.

 

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.

 

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

 

 

Being Successful!

1.      Login and Participate on D2L.

2.      Keep up with Materials

3.      Watch all class lecture videos each week or Attend all class sessions

4.      Practice Programming Constructs

5.      Perform the pre-lab exercises to get ready for each construct

6.      Ask Questions! Use Tutors, use D2L discussions, and correspond with me!

 

 

Try to Exceed my Expectations!