Computer Science 1300
If you wish, you may download a printable version of the original syllabus. However, all of that information is also on this web page and the web page will be updated as the course proceeds, whereas the printed syllabus will not.
An introduction to computer programming based upon early coverage of object-oriented principles such as classes, methods, inheritance and polymorphism, together with treatment of traditional flow of control structures. Good software development practices will also be established, including issues of design, documentation, and testing.
MATH 1200 (College Algebra) or equivalent, and a C- or better in one of CSCI 1010 through 1090, or requivalent programming experience.
After successfully completing this course, students will be able to:
Accurately predict the behavior of small pieces of code authored by others, including use of control structures and interacting objects.
Make use of data types and control structures in order to implement high-level behaviors.
Write, debug, and document a well-structured program, of at least 100 lines of code, that functions in accordance with desired specifications.
Make use of objects from a class defined by someone else (such as built-in string and list classes, or from other language APIs).
Implement a user-defined class based upon given specifications, and make use of inheritance to design a subclass of another.
Demonstrate an emergent knowledge of recursion through simulation of existing code or implementation of simple recursive functions.
The class has four weekly meetings. We will be employing a flipped classroom model for most of the semester and attendance and class participation is expected. These meetings will offer learning opportunities that cannot be re-created purely from readings. Information on the lecture topic can be found on the course schedule web page.
We will be creating custom readings this semester, which will be released through an online system named Perusall. More information is given in a section below.
|Instructor:||Dr. Michael Goldwasser|
|Email:||michael.goldwasser at our university domain|
|Office:||Ritter Hall 355|
Face-to-face contact in class and in office hours is the most desirable means for individual attention and mentorship. With that said, email is another convenient form of communication. I try to respond to email promptly, including at least once each evening. However, if you have a question involving progress on a current programming assignment, we ask that you use the electronic submission system which allows you to submit work in progress for examination, and an issue tracker that will allow for online discussion between student and instructor about those materials.
In addition to the instructor, we will employ several peer assistants, both to provide guidance during in-class activities, and to hold drop-in tutoring hours at various times during the week.
We will employ a "flipped classroom" approach to the semester, constructed around what we will term units, with most units matching a single chapter of the textbook and involving two face-to-face class meetings (although for some units we might adjust this flow somewhat). The typical flow of the unit is as follows:
|Before Class||During Class||After Class|
Two days prior, instructor posts reading on perusall.
By 8:00am of class day, students must have completed the reading and sufficiently interacted with the material through perusall.
The instructor will review the reading assignment with the class, paying particularly to areas of concern/interest that were identified from the reading assignment. There will also be a question/answer period and a preview of the day to follow.
Homework exercises to review the unit are available; due next class (individually).
Homework Exercises due at 10:00am.
Pairs randomly chosen.
40 minutes of practice, exercises, challenges for pairs.
10 minute quiz, completed and submitted as a pair.
Get started on next unit, and any out-of-class programming assignments.
There will be a series of reading assignments that require student to prepare for class by reading and annotating chapters of the text through an online system named Perusall. (details below) That system will lock the assignment at 8:00am on the days that the readings will be discussed in class, and we will not allow late assignments.
We expect there will be between 20-24 reading assignment during the semester. Perusal "scores" student engagement on a 0-3 scale. We will calibrate by considering a score of 2 to be full credit (and a score of 3 to be extra credit). To provide some additional forgiveness for missed or poor assignments, we will drop the lowest 4 reading assignment grades at the end of the semester, and the remaining grades will contribute equally to this portion of the grade.
For each class day that is designated as a hands-on day, there will be a pen-and-paper homework set containing exercises from the relevant reading. This homework will be due at the beginning of the class meeting and we will not accept late homeworks.
We expect there will be 25 to 30 such assignments during the semester. To provide some forgiveness for missed or poor assignments, we will drop the lowest 5 homework assignment grades at the end of the semester, and the remaining grades will contribute equally to this portion of the grade.
All of the homeworks must be done independently, and in accordance with the policy on Academic Integrity as given below.
Most hands-on days will end with a ten minute quiz, to be completed and submitted by a pair of students who have been working together during that class period. We expect there will be 25 to 30 such quizzes during the semester. To provide some forgiveness for missed or poor quizzes, we will drop the lowest 5 quiz grades at the end of the semester, and the remaining grades will contribute equally to this portion of the grade.
Beyond the in-class work, we expect there to be about 10 more significant programming assignments during the semester. At the end of the semester, we will throw away the one lowest of the program grades, with the remaining scores contributing equally to this portion of the grade.
On certain assignments, you will be required to work individually; on others you will be allowed to work in pairs. Please respect the policy on Academic Integrity as given below.
Homework and programming assignments will sometimes include a small extra credit challenge. Please notice, however, that the actual extra credit given for these challenges is relatively insignificant. Students who are concerned about improving their overall grade would be best advised to focus efforts on doing as well as possible on the required work and in preparing for exams.
Our real reason for including these opportunities is to provide some fun and encouragement for students who wish to dig a bit deeper than was required in an assignment. For those students, the chosen extra credit challenges provide a good next step.
Letter grades will be based on each student's overall percentage of awarded points according to the following formula.
The timing of the various assignments, quizzes, and exams are orchestrated based around the classroom activities and so we will not allow any late submissions of reading assignments or homework assignments.
Quizzes and exams must be taken at the regularly schedule time unless advanced arrangements have been made for unavoidable conflicts or subsequently due to emergency situations with approprite documentation
For the out-of-class programming assignments, we wish to allow students to continue to work comfortably beyond the official deadline when a little more time will result in more progress, while at the same time discourage students from falling significantly behind pace and jeopardizing their success on future assignments. Our solution is the following exponentially decaying late formula (some have suggested that we should offer extra credit to anyone who fully understands this formula).
We will consider an assignment submission "complete"
when any part of the assignment is last submitted or
modified. Any assignment that is not complete promptly by
its due date and time will be assessed a penalty based on the
Academic integrity is honest, truthful and responsible conduct in all academic endeavors. The mission of Saint Louis University is "the pursuit of truth for the greater glory of God and for the service of humanity." Accordingly, all acts of falsehood demean and compromise the corporate endeavors of teaching, research, health care, and community service via which SLU embodies its mission. The University strives to prepare students for lives of personal and professional integrity, and therefore regards all breaches of academic integrity as matters of serious concern.
The governing University-level Academic Integrity Policy was adopted in Spring 2015, and can be accessed on the Provost's Office website.
Additionally, each SLU College, School, and Center has adopted its own academic integrity policies, available on their respective websites. All SLU students are expected to know and abide by these policies, which detail definitions of violations, processes for reporting violations, sanctions, and appeals. Please direct questions about any facet of academic integrity to your faculty, the chair of the department of your academic program, or the Dean/Director of the College, School or Center in which your program is housed. Specific College of Arts and Sciences Academic Honesty Policies and Procedures may be found here.
In addition to those general statements, we wish to discuss our policy in the context of this course. When it comes to learning and understanding the general course material, you may certainly use other reference materials and you may have discussions with other students in this class or other people from outside of this class. This openness pertains to material from the text and practice problems.
However, for work that is submitted for this course, you are not to use or search for any direct assistance from unauthorized sources, including but not limited to:
Acceptable sources of information include consultations with the instructor, organized tutoring centers on campus, as well as any materials explicitly authorized in an assignment. Even in these cases, if you receive significant help you should make sure to document both the source of the help as well as the extent.
Any violations of these policies will be dealt with seriously. Penalties will apply as well to a student who is aiding another student. Any such violations will result in a minimum penalty of a zero on the given assignment which cannot be dropped, and severe or repeated violations will result in an immediate failing grade in the course. Furthermore all incidents will be reported in writing to the Department and/or the Dean, as per the College procedure.
On certain programming assignments, we will explicitly allow students to work in pairs. In this case, conversations between partners is both permissible and required. Furthermore, both students are expected to contribute significantly to the development of the submitted work. It is unethical to allow a partner to "sign on" to a submission if that partner did not significantly contribute to the work.
The reading assignments for this course will be managed using an online tool from perusall.com. PDFs of the course materials will be uploaded to that site and available to students, and students are able (and required) to interact with the materials by marking up the reading with questions and comments, and viewing and responding to comments of other students.
In order to participate:
A student's grade for a reading assignment will be computed by perusall as follows. Each comment or question entered by a student is scored on a 0/1/2-point scale for below/meets/exceeds expectations, and the four highest-score comments will contribute to the overall grade for the reading assignment. (Click here for further technical details.)
To allow the student and instructor to exchange electronic files for programming assignments, we will rely on a version control system known as git, and a web-based system known as gitlab and available at git.cs.slu.edu. For further documentation of the use of this system, please see our notes.
Saint Louis University and its faculty are committed to supporting our students and seeking an environment that is free of bias, discrimination, and harassment. If you have encountered any form of sexual misconduct (e.g. sexual assault, sexual harassment, stalking, domestic or dating violence), we encourage you to report this to the University. If you speak with a faculty member about an incident of misconduct, that faculty member must notify SLU's Title IX coordinator, Anna R. Kratky (DuBourg Hall, room 36; email@example.com; 314-977-3886) and share the basic fact of your experience with her. The Title IX coordinator will then be available to assist you in understanding all of your options and in connecting you with all possible resources on and off campus.
If you wish to speak with a confidential source, you may contact the counselors at the University Counseling Center at 314-977-TALK. To view SLU’s sexual misconduct policy and for resources, please visit the following web address: www.slu.edu/here4you and www.slu.edu/general-counsel.
In recognition that people learn in a variety of ways and that learning is influenced by multiple factors (e.g., prior experience, study skills, learning disability), resources to support student success are available on campus. The Student Success Center assists students with academic-related services, is located in the Busch Student Center (Suite 331). Students can visit www.slu.edu/life-at-slu/student-success-center to learn more about tutoring services, university writing services, disability services, and academic coaching.
Students with a documented disability who wish to request academic accommodations must contact Disability Services to discuss accommodation requests and eligibility requirements. Once successfully registered, the student also must notify the course instructor that they wish to access accommodations in the course.
Please contact Disability Services, located within the Student Success Center, at Disability_services@slu.edu or 314-977-3484 to schedule an appointment. Confidentiality will be observed in all inquiries. Once approved, information about the student's eligibility for academic accommodations will be shared with course instructors via email from Disability Services and viewed within Banner via the instructor’s course roster.
Note: Students who do not have a documented disability but who think they may have one are encouraged to contact Disability Services.