SYLLABUS
CS
202 Programming Systems
Summer
2012
Prerequisite: |
CS163 Data structures This
means you should have experience writing complete programs in C++ using
classes, pointers, dynamic memory and have experience writing programs
developing data structures such as Linear Linked Lists, Arrays of Linked
Lists, Linked Lists of Arrays, Trees, and Graphs. |
Instructor: Karla Steinbrugge
Fant,
E-mail: karlaf@cs.pdx.edu,
Office: Fab 120-19
Message Phone: 503-725-5394
Karla's Office hours: Thursday 4-4:50 in FAB 120-19 or by
arrangement
Text: C++ Primer Plus,
Stephen Prata
Thinking in Java, Bruce Eckel
Lecture Slides: Available at CS202
Home Page
Disabilities: |
If you have a
disability and are in need of academic |
|
accommodations,
please notify the instructor immediately to arrange needed support |
System Requirements: UNIX using g++ (CS Solaris)
UNIX Requirements: All programs are to be implemented and
tested on the cs unix systems.
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. Students will be demonstrating proficiency in programming in Unix, C++ and data structures.
Here are the links you will
need:
1. D2L under the Course Content tab http://d2l.pdx.edu
2.
CS202’s Home page CS202 Web Site
Online Tools: Desire 2
Learn
We will be using Desire 2 Learn.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 in practice quizzes and discussions
e. Post questions and answers
f.
Check your grades
g. Turn
in programming
assignments in the D2L Dropbox
h. Use the Course Outline for due dates
i.
Obtain
links to watch the course lectures
Questions?
If you have questions, the
best approach is to post messages on
Desire 2 Learn 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”.
When
sending email, make sure to include your name
and the class you are enrolled
in…otherwise we may not be able to answer your questions. Office hours listed on this syllabus
are also highly recommended.
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 to the teacher and expect a
response! Instead, talk about what problems you are encountering and what you
have done to make progress.
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
Since
I received 100’s of email messages, make sure to put “202 Question” in the
subject heading.
Course
Description:
Students will become
familiar with the language and operating system environment used in most upper
division courses in the Computer Science major curriculum. Use
of the file system, operating system calls, and shell-level programming;
low-level debugging of high-level programs. Programming exercises will
include applications of data structures and memory management techniques.
Goals:
The primary goal in CS202 is to prepare students for programming in the upper division 3xx and 4xx level classes. To achieve this goal, CS202 focuses on three areas: object oriented programming, advanced C++, and an overview of how Java relates to what we have learned in C++.
The majority of the term will be spent introducing students to object-oriented programming while learning advanced C++ syntax. Students will understand the difference between procedural abstraction and object oriented solutions. Students will spend the term designing and programming with inheritance hierarchies, with the goal of solving problems efficiently: producing high quality, robust, maintainable as well as efficient object oriented solutions. This will provide students with the chance to experience object oriented design and programming. Programming assignments will focus on advanced data structures while at the same time accomplishing these other goals. Students will learn about C++'s function overloading, operator overloading, copy constructors, and be introduced to inheritance.
Java skills developed include writing two programs using advanced data structures in Java with strict requirements to follow OOP guidelines – all data members private, no friendly access, and complete implementation of functions required to handle issues of deep versus shallow copies and compares. Students learn the relationship between the two languages and the similarity of Java’s references to pointers.
Then, the rest of the term compares Java to C++, where we will work through example projects in both languages.
Programming
Assignments:
• Course requirements consist of five programming
assignments in C++ and Java. The
programming assignments provide experience building correct implementations of object
oriented situations.
• 20% of each program's grade is based on the program style comments, and documentation provided with the program.
• Each
programming assignment must include the following writeups:
1. a minimum 600 word written discussion of
the major design consideration encountered when solving the specified problem.
In the design considerations, discuss what the main design considerations are,
why they are the main design considerations, how they are solved, and why the
approach taken is valid. Think in terms
of analyzing your solution! This means discussing the efficiency of the
approach as well as the efficiency of the resulting code. Refer to the style sheet for more information about what to discuss!
2.
a
minimum 400 word written discussion of how debuggers (gdb,
xxgdb, ddd, etc.) assisted
in the development. This write up must describe experiences with the debugger,
how it assisted code development, or how it could be used to enhance the
programming experience.
• 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 later 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.
• Partial credit will be
given for incomplete work. However, 25 points will be automatically deducted
for programs that cannot successfully compile and link.
Participation:
• Participation is determined through attendance and participation in in-class activities which is Pass/No Pass.
Coding Demonstrations:
Term Paper
• Each
student will be required to submit a typed term paper. The paper must explore how well your programs have met our
objectives to become object oriented programmers! Discuss how the designs meet
the criteria set out for OOP, and how they can be improved. The paper must
be a minimum length of 4 pages and a maximum of 7 pages (double spaced, 12
point font). If you have tables and sample code, they MUST be attached as
exhibits and should not be part of the 4-7 page count. Your term paper should
be done using Word or plain text.
Examinations and
Grades:
• 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).
• Grades are based on the following
percentages:
Demonstrate Proficiency in C++ |
Pass/ No Pass |
Labs: Open Labs or Classroom lab time |
Participation |
Pass/ No Pass |
Attendance |
-
Term Paper -
Programming Projects |
||
Midterm |
25% |
At PSU |
Comprehensive Final |
35% |
At PSU |
**The testing center is only
available on an emergency basis. An Alternative Testing Time will be provided
and announced during the term (usually in the evening).
**Individuals taking exams
at the testing center must get authorization from the Instructor for the
time/day selected for the exam. To do so, send email to: Authorization
for Exam Scheduling (karlaf@cs.pdx.edu) Using the testing center costs
approximately $10.
** Once authorized, students
can schedule an exam by sending email to: Schedule an
Exam (testing@pdx.edu)
Minimum Grade
Requirements:
•
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!