COP 3330
Data Structures, Algorithms, and Generic Programming I
Fall 2024 Syllabus
Instructor Information
Position |
Name |
E-mail |
Office |
Office hours |
Course Instructor |
Bob Myers |
myers@cs.fsu.edu |
Love 108-D |
Tues 1:00 - 3:00 PM |
Recitation TA |
Chris Draper |
chd16@fsu.edu |
Love 108 suite |
Thurs 9:00 AM - 12:00 noon |
Recitation TA |
Hannah Housand |
hjh21a@fsu.edu |
Majors Lab (Love 006) |
Tues 11:30 - 1:00 PM Wed 5:00 - 6:30 PM |
TA/grader |
Patrick Canady |
pc21@fsu.edu |
Love 108 suite |
Tues 5:30 - 6:30 PM Thurs 5:30 - 6:30 PM Fri 1:00 - 4:00 PM |
TA/grader |
Jacob Copham |
jlc21b@fsu.edu |
Love 108 suite |
Thurs 1:00 - 2:30 PM Fri 10:45 - 11:45 AM |
LA (Learning Assistant) Information
Name |
Office hours |
Location |
Jaylon Coad |
Mon 5:00 - 7:30 PM Tues 3:00 - 5:30 PM |
Love 108 suite MS Teams |
Landon Martin |
Tues 4:30 - 6:30 PM Thurs 4:30 - 6:30 PM Fri 3:00 - 4:00 |
ACE Center ACE Center Zoom |
Elizabeth Sauer |
Tues 9:30 AM - 12:00 noon Wed 9:00 - 11:30 AM
|
Love 108 suite |
Leonardo Ribera |
Mon 3:00 - 5:00 PM Wed 4:30 - 6:00 PM Fri 12:00 - 1:00 PM |
Love 108 suite |
Class Schedule
Main class
Sections |
Room |
Time |
2, 4, 5, 6 |
HCB 103 |
Mon/Wed 1:20 - 2:35 PM |
3, 7, 8, 9 |
BEL 180 |
Mon/Wed 3:05 - 4:20 PM |
Recitation
Section |
Room |
Day |
Time |
Instructor |
LA Assistant |
2 |
MCH 202 |
Thurs |
8:00 - 8:50 AM |
Draper |
Elizabeth Sauer |
3 |
MCH 315-A |
Thurs |
1:20 - 2:10 PM |
Draper |
Landon Martin |
4 |
MCH 202 |
Thurs |
9:45 - 10:35 AM |
Housand |
Elizabeth Sauer
Landon Martin |
5 |
MCH 202 |
Thurs |
11:35 AM - 12:25 PM |
Housand |
Leonardo Ribera |
6 |
MCH 202 |
Thurs |
1:20 - 2:10 PM |
Housand |
Jaylon Coad |
7 |
MCH 315-A |
Thurs |
3:05 - 3:55 PM |
Draper |
Jaylon Coad |
8 |
MCH 315-A |
Thurs |
4:50 - 5:40 PM |
Draper |
Leonardo Ribera |
Course Requirements:
Prerequisite Course
- A C- or better in COP 3014 or COP 3363, or an equivalent
introductory programming course
Course Website:
Textbooks:
- Absolute C++, 6th ed., Walter Savitch., Addison-Wesley
ISBN: 0133970787
Course Objectives:
Upon completion of the course, the student will:
-
Understand the Object Oriented Programming concept and be able to discuss
the differences between procedural and object oriented languages.
- Demonstrate the ability to create and use classes within the C++
programming language
- Demonstrate the ability to create, compile, and execute programs
in multiple compiler environments (typically Microsoft Visual C++ and the
GNU g++ compiler in unix) using the Object-Oriented design model.
- Be able to build C++ classes using appropriate encapsulation and
design principles
- Demonstrate the use of arrays and pointers in the solution of
programming problems using C++
-
Be able to program using important C++ techniques, such as composition of
objects, operator overloads, dynamic memory allocation, inheritance and
polymorphism, file I/O, exception handling, templates, bitwise operations,
preprocessor directives, and basic data structures.
Grading Policy:
The final course grade will be computed as follows:
Programs / Assignments |
30 % |
Test 1 |
20 % |
Test 2 |
20 % |
Final Exam |
30 % |
In addition to the scale listed above, in order to earn a C- or better
in the course, a student is required to achieve a test average of
C- or better. If the test average is below this level, the highest
possible course grade is a D. The test average can be computed with
the following formula:
TestAvg = ((Test1 * 20) + (Test2 * 20) + (FinalExam *
30)) / 70
Letter Grade Scale:
Letter | Numerical Average |
A | 92.00 - 100 |
A- | 90.00 - 91.99 |
B+ | 88.00 - 89.99 |
B | 82.00 - 87.99 |
B- | 80.00 - 81.99 |
C+ | 78.00 - 79.99 |
C | 72.00 - 77.99 |
C- | 69.00 - 71.99 |
D | 62.00 - 68.99 |
D- | 60.00 - 61.99 |
F | 0.00 - 59.99 |
Tests:
There will be three tests -- two term tests and a final exam. All exams
are in the normally scheduled classroom. Students need to bring and show
your Student ID on test days. The final exam will be cumulative. The
test formats will be a mixture of short-answer, code reading and
understanding, and code writing. Tentative test dates are listed
below. Be aware that these may change slightly depending on where
we are in the course materials.
Test Dates: (Test 1 and 2 tentative)
Test 1 |
Mon, Oct 7 |
Test 2 |
Wed, Nov 13 |
Final Exam |
Sec. 2, 4, 5, 6: Wed, Dec 11, 12:30 - 2:30 PM
Sec. 3, 7, 8, 9: Thurs, Dec 12, 3:00 - 5:00 PM |
For your reference
Link to Fall 2024 Final Exam Schedule
Incompletes
The grade of 'I' (Incomplete) will be assigned only under the
following exceptional conditions (in keeping with FSU's policy on
Incompletes):
- The final exam is missed with an accepted excuse for the absence.
In this case, the final exam must be made up within two weeks of the
beginning of the next semester
- Due to an extended illness or other extraordinary circumstance, and
with appropriate documentation, the student is unable to participate in
class for a period affecting graded work, such that it is not possible
to complete/grade the missing work before end of course.
- The missing work cannot constitute the majority of the work in the
course, and the student must already be passing the course in their
other coursework, for an incomplete to be considered
- In such a case, arrangements must be made to make up the missed
portion of the course prior to the end of the next semester.
Please note that "Incomplete" is not a
"get-out-of-bad-grade-and-retake-the-course" card. University policy on
Incompletes will be strictly followed.
Recitation / Quizzes
Periodic quizzes may be given, in lecture, in recitation class, or
online, to help students gauge their progress in the class, and to gauge
attendance, if needed. Attendance and participation is expected, both in
lecture and recitation class. There may also be some hand-in coding
exercises done in recitation class. Any attendance grades, quiz grades,
or graded work from recitation will count in the assignment average.
Programming Assignments
- Programming assignments will be more substantial and challenging
than those in the intro Programmming I course, and they will require
more effort to complete. Make sure to begin assignments when they are
first announced. Waiting until the due date to start is a bad
strategy!
- Please note also that programming is a skill, and PRACTICE is
the only way to learn a skill effectively. Please make sure to start
assignments early enough to leave yourself time for appropriate
practice, as well as testing and debugging!
- ALL ASSIGNMENTS IN THIS COURSE ARE TO BE DONE INDIVIDUALLY.
Students are not permitted to share assignment solutions together, or
with others who are within or outside of our course. Please see the
Academmic Honor Code policies below.
- Assignment specifications will be posted on the course web
page.
- Turn in all assignments on time! Late assignments
will be accepted one day after the due date, with the deduction of a
letter grade (10%). Assignments more than a day late will not be
accepted.
- Compiling -- Programs that do not compile are very tedious to
grade, and they show a lack of testing, which is a large part of
programming. There will be an automatic 5% point penalty for each compile
error in a student's code that has to be fixed in the grading process.
(This means that program submissions with compile errors will likely earn
very little, if any, credit). Make sure your code compiles before you
submit it!!!
- Assignments need to be submitted through the provided assignment
submission web page. Instructions will be provided before the first
assignment is due. E-mailed files will NOT be counted as valid
submissions.
- You can submit your file(s) as many times as you want up until the
submission cut-off (the end of the late day). Resubmits with the same
filename will simply overwrite any prior version, so make sure the LAST
thing you submit is the version you want graded!
- Each student is responsible for ensuring that their program files
were submitted correctly, and the correct version. Note that the
submission page will echo back the contents of the file you just
submitted, so DOUBLE-CHECK IT!
- Any concerns or issues regarding the accuracy of grades must be
addressed first to the grader of the assignment in question, and also
must be brought up within 7 days of the grade being posted
Excused Absence Policy
- Excused absences include documented illness, deaths in the family
and other documented crises, call to active military duty or jury duty,
religious holy days, and official University activities. These absences
will be accommodated in a way that does not arbitrarily penalize students
who have a valid excuse. Consideration will also be given to students
whose dependent children experience serious illness.
- It is the student's responsibility to notify me as soon as possible
regarding any excused absences that affect graded work. In the case of
tests, you need to notify me within 48 hours of any excused absence
that causes you to miss a test
Miscellaneous Policies:
- The course web page is your friend -- check and refresh it
frequently! It will be continually updated with essential course
materials, such as assignments, examples, and notes outlines. It will
also include other helpful supplements, such as instructions for using
the compilers, suggested exercises, and other useful help materials. It
is your responsibility to check the web page often for posted
materials.
- A student will be allowed to make up a missed test if he or she has
a notice of illness from the Student Heath Center or family physician.
Any other excuses that are not medical or emergency related will be at
the discretion of the instructor, and must be approved in advance.
If you miss a test for any reason (without advance approval), you must
notify me of the issue within 48 hours of the missed exam. Missed tests
must be made up within 2 weeks of the test date, unless there is an
extended long-term excused absence (e.g. hospital stay, etc).
- Students in the class should have a computer account from the
Computer Science Department (sign up for one if you don't already have
one), and this can and should be used to store project files and access
one of the compilers used in the course.
- Knowing the contents of this syllabus is each student's
responsibiltiy. "I didn't know" in regards to a clearly stated course
policy will NOT be considered a valid excuse for anything during the
course
- Please turn off cell phones, computer audio, Nintendo Switches, and
any other things that beep and/or make noise in the classroom.
Academic Honor Policy:
The Florida State University Academic Honor Policy outlines the
University’s expectations for the integrity of students’
academic work, the procedures for resolving alleged violations of those
expectations, and the rights and responsibilities of students and faculty
members throughout the process. Students are responsible for reading the
Academic Honor Policy and for living up to their pledge to “ . . .
be honest and truthful and . . . [to] strive for personal and
institutional integrity at Florida State University.” (Florida State
University Academic Honor Policy, found at
http://fda.fsu.edu/Academics/Academic-Honor-Policy.)
ALL WORK IN THIS COURSE IS INTENDED TO BE DONE INDIVIDUALLY
In addition to this information, please be aware of the
following:
- It is NOT APPROPRIATE to utilize websites such as: CHEGG.com,
COURSEHERO.com, etc. DO NOT post our assignments to these websites to
solicit answers, and DO NOT use/view/utilize the 'solutions' found on
these websites. Doing so is in direct violation of the FSU honor policy.
- It is NOT APPROPRIATE to work on assignments with other students or
to give or receive solutions to or from anyone before an assignment is
due and handed in (by all parties).
- It is NOT APPROPRIATE to share any amount of code with your
classmates. When you turn in code with your name on it, you are
representing that work as your own. If your submission matches that of
another student, this is considered a violation of the Academic Honor
Code.
- It is NOT APPROPRIATE to copy/paste, or use any amount of code
written by other people from any web sources, forums, etc. as your own
solutions.
- It is NOT APPROPRIATE to post your code online in public view, where
other students can copy it. If I find your code online (unapproved
online compilers, text sites, blogs, help sites, etc...), no matter what
the intent was in posting your code, this is automatically in violation
of the Academic Honor Policy and the appropriate actions will be taken.
If you are keeping code on repositories like GitHub, make sure your code
is not searchable and viewable by the public
- Plagiarism detection tools, such as MOSS, will be used in the
grading process.
- It IS APPROPRIATE to utilize examples found in the course textbook or
in the course notes and examples, as long as the source is cited. This is
appropriate, as some hand-in assignments will have structural elements
that are based on examples we've done in class, or contain other code
that is provided to you in the assignment specification.
- It IS APPROPRIATE to discuss solutions and techniques on assignments
with other students AFTER the assignment has been graded and handed back.
- It IS APPROPRIATE to study general topics, ideas, and solve
non-assigned-for-homework questions for practice with other classmates.
- If it is found that a student has violated the academic honor policy
the student is not permitted to drop or withdraw from the course and must
complete the course with the sanctions assessed via the policy. This is a
UNIVERSITY policy.
- A first violation of the honor code will result, at minimum (but not
limited to), a penalty of a 0 grade on the assignment or test involved,
along with a reduced course letter grade for that term (-10 points off of
the final course grade).
- If the violation is that of soliciting solutions on external
web sites (Chegg, Course Hero, etc) -- which is also a violation of
copyright -- the penalty will be an automatic F in the course, regardless
of whether it is a first violation or not
- Any second violation of the honor code will result in an automatic F
in the course, and possible proceedings before the FSU Honor Code
Committee.
Americans With Disabilities Act
Students with disabilities needing academic accommodation should:
(1) register with and provide documentation to the Office
of Accessibility Services; and
(2) bring a letter to the instructor indicating the need for
accommodation and what type. This should be done during the
first week of class.
This syllabus and other class materials are available in
alternative format upon request.
For more information about services available to FSU students
with disabilities, contact the:
Office of Accessibility Services
874 Traditions Way
108 Student Services Building
Florida State University
Tallahassee, FL 32306-4167
(850) 644-9566 (voice)
(850) 644-8504 (TDD)
sdrc@admin.fsu.edu
https://dsst.fsu.edu/oas
Students approved to take exams at the OAS office are expected to
take exams at the regularly scheduled time. Any exception to this
will only be granted with a valid documented reason and must be approved
by the instructor a week before the exam.
Syllabus Changes
Except for changes that substantially affect implementation of
the evaluation (grading) statement, this syllabus is a guide for
the course and is subject to change with advance notice.