- Learning cooperatively
- Access and accommodations
- Extenuating circumstances and inclusiveness
While CSE 142 focused on control issues (loops, conditionals, methods, parameter passing, etc.), CSE 143 focuses on data issues. Topics include: abstract data types (ADTs), lists, stacks, queues, linked lists, binary trees, recursion, interfaces, inheritance, and encapsulation. The course also introduces the notion of complexity and performance trade-offs in examining classic algorithms such as sorting and searching and classic data structures such as lists, sets, and maps. The course will include a mixture of implementing data structure and using components from the Java Collections Framework.
- Administrative Questions
- Pim Lustig email@example.com
- CSE 142 or equivalent
- Reges/Stepp, Building Java Programs (5th Edition)
By the end of the course, students should be able to:1
- Select appropriate abstract data types for use in a given application.
- Design and modify data structures capable of insertion, deletion, search, and related operations.
- Trace through and predict the behavior of algorithms (including code) designed to implement data structure operations.
- Identify and remedy flaws in a data structure implementation that may cause its behavior to differ from the intended design.
CSE 143 focuses on algorithm design through programming. However, this approach may not be best for every student. CSE offers a number of complementary courses that provide alternative views on computation.
In CSE 143:
- Algorithms are more important than data. (Compare to CSE 163.)
- Technical problems are more important than creative problems. (Compare to CSE 154.)
- Programming solutions are more important than the problems they solve. (Compare to CSE 180.)
Learning requires deliberate practice.
- Sustained motivation.
- Tasks that build on prior knowledge.
- Immediate, personalized feedback on tasks.
- Repetition of all of the above.
Collaboration improves the effectiveness of practice. With the exception of assessments, we encourage you to discuss course activities with your friends and classmates as you are working on them. You will definitely learn more in this class if you work with others than if you do not. If you are helping another student, don’t just tell them the answer; they will learn very little and run into trouble on assessments. Instead, try to guide them toward discovering the solution on their own. Practice is most effective when it builds on what you already know while addressing specific areas for improvement.
In addition to collaborating with other students, the course staff are another resource for personalized feedback. The teaching assistant leading your quiz section is your academic mentor. Beyond teaching quiz section, your TA is also often the same person providing feedback on your take-home assessments. While your TA can’t do the learning for you, your TA can help you identify how to make the most of your practice in order to achieve the highest possible understanding of course concepts. They can also point you to resources both within the course and beyond it.
The best way to meet with a course staff member is to go to email them. You can also schedule a meeting with the instructor—we encourage you to invite other students and meet as a group.
Learning cooperatively is different from sharing answers.
You are encouraged to discuss the lessons with other students, as long as you write your own code and submit your own work. Finding a study group is a great idea. The purpose of each lesson is for you to learn the course material, not to prove that you already know it. Therefore, you can expect to receive substantial assistance from the course staff.
Collaboration is not allowed on take-home assessments. You may discuss general ideas of how to approach an assessment, but never specific details about the code to write. Any help you receive from or provide to classmates should be limited and should never involve details of how to code a solution. It should also not be in front of a computer.
- Discuss examples from lessons with others. Each lesson is designed to prepare students for assessments.
- Talk to a TA to learn how to solve specific bugs and improve your understanding of the problem.
- Post questions about problem specifications to the course forum.
- Looking at someone else’s take-home assessment solution in any form for any reason at any time, ever.
- Working in lock-step with others. Your workflow should not involve giving or receiving a walkthrough of a take-home assessment.
- Posting solution code to any assessment in a public place. This applies even after the course is over.
Both parties involved in a cheating case are equally culpable. That is, helping someone else cheat is just as bad as reading someone else’s solution. There are many resources for helping students learn in this course. The right thing to do in this situation is to point them to resources such as their TA. The course staff are here to help you succeed. Contact us in person, over email, or via the course forum.
If you’re not sure if you’re following the policy, ask. If you are retaking the course, you may resubmit a previous solution unless that program was involved in an academic misconduct case. If misconduct was found, you must write a new version of that program.
To account for illness, absence, and other life occurrences, we will drop about 20% of your lowest-scoring ed lessons and external brain submissions.
Final course grades will be assigned based on your individual achievement, not based on your performance relative to other students in the course this quarter. The course is not curved. Instead, final course grades will be assigned based on the standards of achievement set in previous quarters. Inevitably, the difficulty of various parts of the course varies from quarter to quarter. We cannot determine the final grading scale until all scores are available at the end of the quarter. During the quarter, we won’t know how to answer questions about what your final grade will be or how well you need to do on an assignment to achieve a certain grade.
Programming is a skill, and learning programming efficiently requires deliberate practice. Focus on getting as much practice and feedback as you need to improve your learning, rather than just the minimum necessary to make a particular grade.
Take-home assessments are typically due 11:59 PM Thursdays Anywhere on Earth (UTC-12), which is 4:59 AM Friday in Seattle, WA. Only take-home assessments may be submitted late. Each student receives 10 “late days” for use on assessments. A late day allows you to submit a program up to 24 hours late without penalty. For example, you could use 2 late days and submit a program due 11:59 PM Thursday by 11:59 PM Saturday with no penalty. Once a student has used up all the late days, each successive day that an assessment is late will result in a loss of 5% on that assessment. No take-home assessments will be accepted more than 3 days after its due date.
Students are encouraged to first discuss take-home assessment grading with their individual TA. If you aren’t sure why you lost a point or if you believe that your TA did not grade your assignment consistently, you should start by talking to your TA to see if you can resolve it directly. If you can’t resolve the discrepency directly, complete a Regrade Request within 1 week of receiving assessment feedback.
Your experience in this class is important to us. If you have already established accommodations with Disability Resources for Students (DRS), please communicate your approved accommodations to me at your earliest convenience so we can discuss your needs in this course.
If you have not yet established services through DRS, but have a temporary health condition or permanent disability that requires accommodations (conditions include but not limited to; mental health, attention-related, learning, vision, hearing, physical or health impacts), you are welcome to contact DRS. DRS offers resources and coordinates reasonable accommodations for students with disabilities and/or temporary health conditions. Reasonable accommodations are established through an interactive process between you, your instructor(s) and DRS. It is the policy and practice of the University of Washington to create inclusive and accessible learning environments consistent with federal and state law.
We recognize that our students come from varied backgrounds and can have widely-varying circumstances. If you have any unforeseen or extenuating circumstances that arise during the course, please do not hesitate to contact the instructor in office hours, via email, or private post to discuss your situation. The sooner we are made aware, the more easily these situations can be resolved. Extenuating circumstances include work-school balance, familial responsibilities, religious observations, military duties, unexpected travel, or anything else beyond your control that may negatively impact your performance in the class.
Washington state law requires that UW develop a policy for accommodation of student absences or significant hardship due to reasons of faith or conscience, or for organized religious activities. The UW’s policy, including more information about how to request an accommodation, is available at Religious Accommodations Policy. Accommodations must be requested within the first two weeks of this course using the Religious Accommodations Request form.
Additionally, if at any point you are made to feel uncomfortable, disrespected, or excluded by a staff member or fellow student, please report the incident so that we may address the issue and maintain a supportive and inclusive learning environment. Should you feel uncomfortable bringing up an issue with a staff member directly, you may consider submitting anonymous feedback or contacting the Office of the Ombud.
Leo Porter, Daniel Zingaro, Cynthia Lee, Cynthia Taylor, Kevin C. Webb, and Michael Clancy. 2018. Developing Course-Level Learning Goals for Basic Data Structures in CS2. In Proceedings of the 49th ACM Technical Symposium on Computer Science Education (SIGCSE ‘18). ACM, New York, NY, USA, 858-863. DOI: https://doi.org/10.1145/3159450.3159457 ↩