In this course, a follow-up to our introductory programming course CSCI 1300, students will learn how to utilize data structures in their programs to make their code more efficient in terms of speed and memory usage. They will also learn how to implement many of the most important data structures, and the trade-offs involved in different implementation decisions. (4 credit hour)
A "C-" or better in CSCI 1300; passing grade or concurrent enrollment in MATH 1660.
This semester, we will be using a ZyBooks text, combined with ZyLabs for some of the early programming assignments. Do sign up, please do the following:
Please note that you can download a pdf of the book, and I STRONGLY recommend that you do so! Data structures questions are quite fundamental in CS, and are a huge part of most technical interviews for jobs, so it is likely you will want this reference later in yoru career.
Email contact with the course instructor is a necessity in this class, since homework will all submitted via email. I will check email several times throughout the work day, and will also check email once per evening to answer questions and resolve issues. Email contact over the weekend may be more sporadic, although I will be sure to check at least once.
We will use a git system this year to submit many of the homeworks. Details on how to sign up and use the system will be posted on the announcement page and discussed in class.
Computers will be an integral part of this course, both inside and outside of class. However, out of courtesy to both the instructor and other students, please do not use the lab computers for non-class related activity. In particular, you do not need to be using a computer unless an exercise or in class activity requiring them is in progress.
You are unlikely to need cell phones during the course of lecture. Please ensure that your cell phone is set to vibrate or silent during lecture, and do not send text messages of any kind.
Most Thursdays will be devoted to a hands-on problem. Although we hope to have students complete it in class, we will allow each to be submitted anytime by 11:59pm on the following Sunday. Each lab will also have a pre-lab associated with it which will be due before class begins on the day of the lab.
These problems will be graded automatically through ZyLabs. Each will have a simple pre-lab, which is worth 1 point. The remaining points are awarded for a successful completion of the lab work, based on how many test cases your program passes. Note that completion of the prelab and an honest attempt at the lab will give at least some partial credit!
At the end of the semester, we will ignore your lowest of the lab grades, with the remaining scores contributing equally to this portion of the grade.
This semester, the course text will be an online text through ZyBooks. You will be required to do reading BEFORE class regularly; in addition, the book contains some simple exercises to reinforce the concepts. Your solutions will not be graded for correctness, but the ZyBooks framework records participation credit for attempting - if you get the solution correct, you move on, and otherwise it requires a certain number of attempts on each question before showing you the correct solution.
I will only score participation, but it is my hope that you will choose to engage with both the read and the reinforcement questions, as I think they are very helpful! At the least, I can guarantee understanding them will improve your exam and homework scores, since I plan to build on them as much as possible. I will also assume students have completed the reading, so that my lecture will continue from there; students who have not completed the reading are likely to be quite lost in class.
We expect about 12-13 assignments through the course of the semester. Some will be due via email submission (usually due by 11:59pm in these cases), while others may be done on paper and due at the start of class. Please read the academic integrity section of this document carefully, since I expect students to work on their own material and hold to high standards of behavior on all assignments.
On certain assignments, you will be required to work individually; on others you will be allowed to work in pairs. Early in the course you will have approximately one week for each assignment; later in the course you will often have two weeks.
Students will also be able to drop their lowest programming or homework assignment score at the end of the semester.
You will have a total of 3 exams over the course of the semster. Midterms 1 and 2 will each be worth 10%, and will take place rougly 1/3 and 2/3 of the way through the semester. The final exam will be comprehensive, although it will focus more heavily on the last part of the course. It will be worth 20% of your final score.
Letter grades will be based on each students overall percentage of awarded points according to the following formula.
The programming and homework assignments provided will be challenging enough for most students, so please focus as much as possible on the assignments provided.
Upon occasion (and solely at the instructor's discretion), there may be small extra credit activities, either by announcement in class or as part of an assignment. Please keep in mind that the extra credit is unlikely to significantly affect your grade; if you are concerned about your final grade, it is much better to focus your energy on the regular assignment. Extra credit is solely designed to provide an opportunity to students who wish to explore the topics further.
Homeworks will generally be due at 11:59pm via email. Late submissions will generally not be accepted unless arrangements have been made ahead of time. Please contact me as early as possible with any potential issues, since I am much more likely to grant an extension if you come to be ahead of time! In general, I try to be flexible if students have good reason, but I do reserve the right to not accept late submissions if solutions have already been released or if a student is abusing this flexibility.
I am happy to regrade any assignments, programs, quizzes or exam problems which you think were unfair or incorrect. You will never lose points for doing this, although I won't promise to always give you more points either! Please bring (or email) me the original assignment, plus a written explanation of your question or complaint, within two weeks of the time the paper in question is graded and returned to you.
In the context of this course, I encourage students to discuss general course material, which includes studying for exams, sharing notes if a student must miss class, and working on any practice problems which are assigned. We will also have occasional programming assignments that will be completed in pairs. However, unless clearly stated otherwise in the assignment description, any work which will be submitted for a grade must be completed by individuals. In addition, the only acceptable sources of information are the course textbook, the instructor, official university tutors, or other sources which are explicitly mentioned in an assignment. Students may not use other sources, including (but not limited to) websites other than the official course website or those explicitly listed in course materials, textbooks other than those officially listed below, or students (either past or present).
Students who violate academic integrity policies will be reported to the department. First time offenses on homework will result in a minimum of a failing grade on the assignment in question, with egregious or repeated offenses resulting in failure in the course. In addition, students may be referred to the College of Arts and Sciences for further disciplinary action.
The following is a statement of minimum standards for student academic integrity at Saint Louis University; I expect full compliance with the policies described.
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 at: https://www.slu.edu/provost/policies/academic-and-course/policy_academic-integrity_6-26-2015.pdf. 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.The CS department employs tutors during regular lab hours almost every day. Please see the department's tutoring information page for a list of hours and further details.
Student Success Center: 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 and is located in the Busch Student Center (Suite, 331). Students can visit https://www.slu.edu/life-at-slu/student-success-center/ to learn more about tutoring services, university writing services, disability services, and academic coaching.
University Writing Services: Students are encouraged to take advantage of University Writing Services in the Student Success Center; getting feedback benefits writers at all skill levels. Trained writing consultants can help with writing projects, multimedia projects, and oral presentations. University Writing Services offers one-on-one consultations that address everything from brainstorming and developing ideas to crafting strong sentences and documenting sources. For more information, visit https://www.slu.edu/life-at-slu/student-success-center/ or call the Student Success Center at 314-977-3484.
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;akratky@slu.edu; 314-977-3886) and share the basic facts 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 addresses: www.slu.edu/here4you and https://www.slu.edu/general-counsel.
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 to Disability Services.
For any student raising children, I understand that minor illnesses and unforeseen disruptions in childcare often put parents in the position of having to chose between missing class to stay home with a child and leaving him or her with someone you or the child does not feel comfortable with. While this is not meant to be a long-term childcare solution, occasionally bringing a child to class in order to cover gaps in care is perfectly acceptable.
All exclusively breastfeeding babies are welcome in class as often as is necessary to support the breastfeeding relationship. Because not all women can pump sufficient milk, and not all babies will take a bottle reliably, I never want students to feel like they have to choose between feeding their baby and continuing their education. You and your nursing baby are welcome in class anytime.
I ask that all students work with me to create a welcoming environment that is respectful of all forms of diversity, including diversity in parenting status. In all cases where babies and children come to class, I ask that you sit close to the door so that if your little one needs special attention and is disrupting learning for other students, you may step outside until their need has been met. Non-parents in the class, please reserve seats near the door for your parenting classmates. (Policy adapted from Dr. Melissa Cheyney)