COMP142 - Computer Science II: Object-Oriented Programming (Fall 20)
- Instructor: Dr. Marion Lang
- Course website: ml8.github.io/comp142
- Email: langm@rhodes.edu
- Schedule:
- Section 1 (CRN11266): MW 11-11:50, F 11-12:50
- Section 2 (CRN11267): MW 1-1:50, F 1-2:50
- Office Hours: MW 2-4 or by appointment.
Course Description and Learning Objectives
An introduction to the fundamental concepts and practices of object-oriented programming. The object-oriented programming paradigm is introduced, with a focus on the definition and use of classes as a basis for fundamental object-oriented program design. Other topics include an overview of programming language principles, simple analysis of algorithms, basic searching and sorting techniques, and an introduction to software engineering issues.
Prerequisite: COMP 141.
Through active participation in this course you will:
- Develop practical skill in programming using the Java programming language
- Learn principles for good program design, especially the uses of data abstraction and modular program composition
- Understand the fundamental design, analysis, and implementation of basic data structures and algorithms
- Assess how the choice of data structures and algorithm design methods impacts the performance of programs
- Apply your programming skills to diverse applications in science and engineering
- Articulate the principles that underlie the ACM code of ethics
- Write clear and precise documentation
- Plan and work collaboratively with other students
- Describe instances of software professionals taking action on ethical issues.
Textbook
Sedgewick, Robert, and Kevin Wayne. Introduction to Programming in Java: An Interdisciplinary Approach. Second Edition. New York: Pearson/Addison Wesley, 2017. (ISBN 978-0672337840)
Booksite
The textbook is accompanied by a web site that provides an extensive amount of information and resources that supplement the text: introcs.cs.princeton.edu/home.
Course structure and schedule
Our class time will be spent discussing the readings from the text and other relevant topics in computer science, taking written exams, and working in pairs on programming activities that will help prepare you for the exams and programming projects. Your homework will generally include readings from the text and other related articles, completing programming exercises, working on programming projects, and preparing for exams.
One day per week (Fridays) we will have an in-class lab assignment that will be completed in pairs.
The course schedule will be maintained on the Canvas page for this course. That page will be the source of truth about the class. Each week I will publish a weekly module that will be our plan for that week. Check the Canvas site frequently.
Grading
Your grade in this course will be based on
- Programming projects (50%)
- Exams (40%)
- Readings and practice exercises (5%)
- Participation (5%)
Letter grades will be assigned according to the following rubric:
Grade | Cutoff |
---|---|
A | 93 |
A- | 90 |
B+ | 87 |
B | 83 |
B- | 80 |
C+ | 77 |
C+ | 73 |
C+ | 70 |
D+ | 67 |
D | 60 |
F | 0 |
Programming Projects
There will be ten programming projects that involve applying material from class to create, complete, or debug programs. Each program will be assigned a letter grade according to a rubric that will be distributed with the assignment.
Exams
There will be three exams given during the course of the term and graded on a 100-point scale. The midterm exams account for 10% each and the comprehensive final accounts for 20% of the final grade.
Readings and Practice Exercises
There will be weekly reading assignments and practice programming exercises for you to complete outside of class. These exercises are graded for completeness at the time of each exam and assigned a letter grade.
Participation
I encourage everyone to participate in class. Interrupt me via chat, by raising your hand, pinging the TA, etc. Please don’t be shy about this; if you are confused about something, it is likely that someone else is confused as well. Teaching and learning is a partnership between the instructor and the students, and asking questions not only helps you understand the material, it also helps me know what I’m doing right or wrong.
I have regular office hours available, but am willing to schedule 1:1 time with you outside of these office hours. Please reach out to me over Slack or via email.
Class participation will be reviewed at the time of each exam and assigned a letter grade.
Note that I understand that time zone concerns, work obligations, and family obligations may make attending classes difficult or impossible at times. Participation in this class can take many forms: coming to and participating in class, coming to office hours, chatting with me and other students on Slack, reaching out over email, checking in with me in 1:1s, etc.
Tutoring
Free drop-in tutoring is available for COMP142. Tutoring will be held over Zoom
and Slack. Tutors are generally available during specified windows of time via
the program’s Slack workspace in the channel #tutoring
.
Late Work
Programming assignments are generally due at midnight on the specified date. However, there is a one-hour grace period. Late work is generally not accepted; programs submitted after 1am on the morning will be ignored. If there are circumstances that prevent you from completing your work on time, please reach out to me to discuss whether there are arrangements that can be made.
Students With Disabilities
If you have a disability and wish to receive academic accommodations, please contact the Office of Student Accessibility Services as soon as possible.
Collaboration
All programming assignments done outside of class should be completed on one’s own. There will be collaborative assignments completed during class, but all homework assignments must be completed individually unless otherwise specified. Put very simply, do not discuss any programming assignment solutions or share code with anybody else. I will be checking for similar assignments and will turn violations over to the honor council.
Academic Integrity
Plagiarism, cheating, and similar anti-intellectual behavior are serious violations of academic ethics and will be correspondingly penalized. If you are concerned about a possible violation of this kind, please talk with me. I understand that being a student at Rhodes can be stressful sometimes and you will have many demands on your time. However, I would much rather have you turn in a partially-completed assignment or do poorly on a test than have you violate the Rhodes Honor Code. I can — and very much want to — help you if you don’t understand the material, but violations of academic integrity will be dealt with harshly.
Unless otherwise specified, everything you submit in this course must be your own work and represent your individual effort. These are all included in the definition of reportable Honor Code violations for this course: copying all or part of a solution to a problem, downloading a solution from the internet and submitting it as your own, having someone else provide the solution for you, or allowing someone else to copy from you. If you have any doubt about what type of behavior is acceptable, please talk with me.
Diversity
A diverse learning community is a necessary element of a liberal arts education, for understanding of self requires understanding of others. We are committed to fostering a community in which diversity is valued and welcomed. To that end any discrimination or harassment on the basis of race, gender, color, age, religion, disability, sexual orientation, gender identity or expression, genetic information, and national or ethnic origin, will not be tolerated in the classroom.
We are committed to providing an open learning environment. Freedom of thought, a civil exchange of ideas, and an appreciation of diverse perspectives are fundamental characteristics of a community that is committed to critical inquiry. To promote such an academic and social environment we expect integrity and honesty in our relationships with each other and openness to learning about and experiencing cultural diversity. We believe that these qualities are crucial to fostering social and intellectual maturity and personal growth.
Intellectual maturity also requires individual struggle with unfamiliar ideas. We recognize that our views and convictions will be challenged, and we expect this challenge to take place in a climate of open-mindedness and mutual respect.
Sexual Misconduct
Rhodes is committed to ensuring a safe learning environment that supports the dignity of all members of the Rhodes community. Rhodes prohibits and will not tolerate sexual misconduct, which includes, but is not limited to, dating/domestic violence, sexual assault, sexual exploitation, stalking, sexual harassment and sex/gender discrimination. Rhodes strongly encourages members of the Rhodes community to report instances of sexual misconduct immediately. All Rhodes faculty, staff, Peer Advocates, and Resident Assistants are Mandatory Reporters (exceptions are confidential resources: Counseling Center, Chaplain, and Student Health Center) and are required by the College to report any knowledge they receive of possible violations of this policy to the Title IX Coordinator. If you choose to share information related to sexual misconduct with me, I am required to report it to the Title IX Coordinator; however, you will control how your report is handled and you are not required to pursue a formal claim. The goal is to make you aware of the range of options and resources that are available to you. For more information about Rhodes’ sexual misconduct policy or to make a report please see www.rhodes.edu/titleix.
FERPA
Federal law prevents me from discussing your grade in my course with anyone other than you. The Family Educational Rights and Privacy Act (FERPA) has also been strengthened by recent court cases so that it is not technically permissable to discuss grades via email. If you want to talk about your grade in the course, please set up a meeting.
I reserve the right to alter this syllabus as necessary.