This course delves into data structure and design with an object-oriented perspective. Topics include tree and graph structures, nested data structures, objects, classes, inheritance, interfaces, object-oriented collection class libraries for abstract data types (e.g. maps) and static vs. dynamic data types. Input and output streams, graphical user interfaces, and exception handling are also covered.
Concepts of object-oriented design are a large part of the course. Software qualities related to object orientation, namely cohesion, minimal coupling, modifiability, and extensibility, are introduced in this course, as well as some object-oriented design patterns. The course also introduces use of a modern integrated software development environment (IDE).
Programming projects will be required. (pre-requisites: CSCI 141)
Development of code and writings for labs and other graded work is an individual responsibility. The only parts of team-developed work are the team part of the project and the joint problem-solving hard-copy exercises; all assignments must be the result of individual effort, not teamwork.
Submitting individual work written by others or as an unsanctioned team is considered an act of academic dishonesty. Although students may discuss assignments and projects with others, all individually submitted writings and code must be created independently by the student and not copied from others or other sources. Team-developed work also must be created solely by team members and not copied from others or other sources unless with prior instructor approval. In cases where a student is suspected of cheating or copying material, the instructor shall act in accordance with http://www.rit.edu/academicaffairs/policiesmanual/d080.
Your graded is computed as a percentage. weighted by the table below. Letter grades are based on the following scale.
|Project 1||10%||The first project is individual only.|
|Project 2||15%||The second project is team based.|
|Labs||20%||Labs are usually due in one week. MyCourses' dropboxes have the due dates.|
|Recitations||5%||Includes mandatory on-time attendance and the Kahoot quiz grades.|
|Exam 1||15%||The first written exam (2 hours) is usually given around week 6. There is no practical.|
|Exam 2||15%||The second written exam (2 hours) is usually given around week 12. There is no practical.|
|Final Exam||20%||The final is a 2 hour, comprehensive, written exam, during final exam week.|
Note: Your whole course grade may only be at most 10 points more than the average grade of the elements of your worse component.
As a matter of practice, this limit comes into play when the difference between your Assignments and Tests averages is more than about 20%. It has been the experience of the department that a student whose grade difference is this great is having more difficulty than meets the eye with regard to understanding and mastering the material.
Here is an example. Let's say you got a 71% average on the Tests Component elements and a 93% average on the Assignments Component elements. In this case, your course grade would be limited to 81% (a B-), which is 10% above your Tests component grade. (Without the course rule, your final weighted grade would be 71 * .5 + 93 * .5 = 82%, which is a B.)
The prerequisite for CSCI 243 (Mechanics of Programming) is either CSCI 140 with a minimum grade of C- or CSCI 142 with a minimum grade of C- or CSCI 242 with a minimum grade of C-.
Questions may arise regarding an item of graded work. Grade appeals must be raised within one week after the day on which the grade was received. Otherwise, a grade becomes permanent one week after the student received the grade.
Numerical grades for the various items in this course will appear on line in MyCourses as the items are graded. However, keep two things in mind. First, any grades not yet entered are not treated as zero by the system. If this were not the case your course grade would start out as a 0 and slowly increase during the semester. Second, the so-called Course Grade Limit Rule is not automatically applied by the MyCourses system. For these reasons you will not see how your grade has suffered due to a missed assignment or exam, or wide disparity between exam and lab work grades, until whole-term calculations are done.
This course has 3 sessions per week, usually every other day. This course meetings are of several different types: lecture, problem-solving/lab, recitation and exams. Students are expected to attend all meeting sessions of the course.
This course meets for five hours each week: two hours of lecture, two hours of lab, and one hour of recitation.
The first class of the week is the lecture with the instructor. It is held in a classroom with all students in the section.
During the first lecture, the instructor splits the class into two groups (A and B). Group A continues the week with the lab session on the second day followed on the final day of the week by the recitation. Group B continues the week with the recitation on the second day followed by the lab session on the final day. Midway through the term, the two groups reverse meeting times for lab and recitation.
Each "lab" assignment grade actually has three parts, outlined below. The weekly "lab" grade is computed according to these weights.
|"Lab" Component Name
||Portion of "lab" grade
|Full Lab Assignment
There are no makeups granted for any of the components that a student fails to complete.
The problem-solving (PS) session takes place in a classroom where students work as a team and work on problems using pencil and paper, developing algorithms and data structures. The lecture instructor leads the lab's problem-solving segment with the assistance of Student Lab Instructors (SLIs). Instructors collect papers from the teams at the end of the PS session and grade them. Failure to attend a PS session will result in a 15% lab grade reduction.
The in-lab session is the second hour, usually right after problem-solving, that takes place in a computer lab room where students individually implement data structures and algorithms from the pen and paper PS exercise. An SLI leads the in-lab segment and grades those students' lab assignments. Failure to attend a lab session will result in a 10% lab grade reduction.
During the in-lab session, students also receive the full
assignment for the week, on which they work individually, on their
own time. Students can use the laboratory facilities of the
Computer Science Department when they are not scheduled for
classes, or their personal computers.
Students must submit the full programming portion of the lab assignment on line. The student is responsible for submitting all work on time. Failure to submit the full lab assignment will result in an automatic 75% lab grade reduction.
Lab assignments usually are due a bit less than week after they are assigned. There is an 8-hour late submission period lasting from the midnight submission deadline until 8 AM the next morning; late submissions carry a 20% grade penalty on the earned functionality score.
Students will work on a number of projects that involve more challenging, open-ended problems. Depending on the assignment, students will work individually or in teams.
Project deadlines and submissions are explained in the project writeups.
Recitation meets in the lecture room during the first hour of the recitation day; The recitation, run by a Teaching Assistant (TA), is designed to reinforce the student's understanding of the material covered in lecture. Normally the TA reviews the previous week's lecture, provides exercises for practice, and administers a weekly Kahoot quiz.
Recitation is required for all students. The TA takes attendance at recitation and a grade is entered each week which also includes the Kahoot quiz.
Exam weeks generally have different logistics. There may be a lecture or a problem-solving/lab in the same week, and the order of sessions may be different depending on the semester. The schedule contains the details of exam week logistics.