Link Search Menu Expand Document

Syllabus 📖

Table of contents

  1. About 🧐
  2. Communication 💬
  3. Technology 🖥
  4. Class Components (capped at 100%) 🍎
    1. Lectures (2% Extra Credit)
    2. Readings (10%)
    3. Programming Assignments (36%)
    4. Discussions (4%)
    5. Exams (50%)
  5. Office Hours
  6. Policies ✏️
    1. Grading
    2. Regrades and Redemptions Requests
      1. Style regrade
      2. Compile error regrade
      3. Redemption
    3. A Note on Letter Grades
  7. COLLABORATION POLICY AND ACADEMIC INTEGRITY ⚠️❗
  8. Support 🫂
    1. Accommodations
    2. Diversity and Inclusion

About 🧐

Welcome to DSC30! This course introduces you to the foundations of programming in Java, data structures and algorithms. In particular, DSC 30 is the second class in the series taught in Java and covers data structures including: Stacks, Queues, Arrays, Lists, Linked Lists, Hash Tables, Binary Trees and Binary Search Trees, Balanced Trees, Heaps. This class also covers sorting algorithms such as Selection, Insertion, Merge, Quick and Heap.

Prerequisites: DSC20.


Communication 💬

This quarter, we’ll be using Edstem as our course message board. You will be added to Ed at the beginning of the quarter. If you’re not able to access it please self enroll using the given link above, as we’ll be making all course announcements through it.

If you have a question about anything to do with the course — if you’re stuck on a assignment problem, want clarification on the logistics, or just have a general question about data science — you can make a post on Ed. We only ask that if your question includes some or all of your code, please make your post private so that others cannot see it. You can also post anonymously if you would prefer.

Course staff will regularly check Ed and try to answer any questions that you have. You’re also encouraged to answer a question asked by another student if you feel that you know the answer!


Technology 🖥

We will be using several websites this quarter. Here’s what they’re all used for:

  • Course Website: where all content will be posted.
  • EdStem: discussion forum where all announcements will be sent, and where all student-staff and student-student communication will occur. You should be automatically added to EdStem.
  • Gradescope: where all assignments are submitted and all grades live. You should be automatically added to Gradescope; let us know if that’s not the case.
  • Autograder: where all OH tickets will be created and solved.
  • Zybooks: our class textbook where most reading will come from.
    • Sign in or create an account at learn.zybooks.com
    • Enter zyBook code: UCSDDSC30LangloisSpring2024
    • Subscribe
  • Java reference tutorial (by Paul N. Hilfinger): Supplementary material.
  • Head First Java, 2nd edition: Supplementary material.
  • UCSD Podcast: where lectures and discussion sections are recorded. You may also go to Canvas > Media Gallery

If you will not have reliable access to a computer this quarter, please reach out to us ASAP, as the university may be able to accommodate you.


Class Components (capped at 100%) 🍎

Lectures (2% Extra Credit)

Lectures will focus on explanations of complicated and important concepts, and I’d like to keep them as interactive as possible. Therefore I will use in-class polls as well as pre-released worksheets to work out different problems with students. It is strongly encouraged that everyone attends lecture sessions for more effective learning.

  • To earn credit you need to answer at least 70% of the questions.

You can attend any lecture section, but if space fills up, priority will be given to students officially enrolled in that section. For the Midterm Exam, you must attend the lecture section in which you are officially enrolled.

Readings (10%)

To prepare you for class sections, there will be required readings and/or video watching assignments to be completed before each lecture. You demonstrate your completion of reading assignments by submitting online reading quizzes for each class (except midterms and holidays).

  • Reading quizzes will be provided online via Canvas or Zybook Activity.
  • You can submit each quiz multiple times: 3 attempts for Canvas quizzes and unlimited attempts for Zybook activities.
  • Lowest 3 quizzes will be dropped for the quarter.
  • Deadline to submit them is Friday 11:59pm, it is strongly recommended that you complete the reading assignments before each lecture.
  • This category is capped at 100%.

Programming Assignments (36%)

  • PAs are released every week on the course schedule page.
  • You may turn in your code as many times as you like before the deadline, but only the most recent submission will be graded, so it’s a good habit to submit early and often.
  • All assignments must be done individually.
  • Deadline: Specified on the write-up.
  • You are allowed to submit the assignments late 5 times (you have 5 slip days). Can’t use more than 1 slip day per assignment.
  • None of the programming assignments will be dropped.
  • This category is capped at 100%.

Discussions (4%)

The purpose of discussions is to prepare you for taking exams on paper.

Process:

  • You will be given a few problems emulating exam questions and a limited time.
  • After the time is up, you will give your work to the tutor and then he/she will go over the solutions with you.
  • In order to record your participation, you will the weblicker app, so please bring your phones.

Notes:

  • 1 lowest discussion will be dropped.
  • If your exam score is above 90%, then 3 more discussions will be dropped.

Exams (50%)

There will be three exams this quarter:

  • Midterm 1 and 2 (10% each): during lectures, in person.
  • Final (30%): June 8th (Saturday), 11:30-2:30pm, in person. Location TBA.
  • This category is also capped at 100%.

Exam Redemption Policy

The final will be split into 3 parts: midterm1, midterm2, and new material. We offer midterm redemption opportunities only for those who have taken both midterm exams. You could replace your midterm score (not the final exam part) with the score you earn for the counterpart on the final exam (i.e. maximum between midterm1 score (%) and final-part1 (%), maximum between midterm2 score (%) and final-part2 (%) ). If you simply miss a midterm without notifing me, you are NOT eligible for this redemption policy.

  • You can’t skip any part of the final regardless of your midterms score. The entire exam needs to be taken.
  • You must score at least 55% on the final exam to pass the course. If you score lower than 55% on the final, you will receive an F in the course, regardless of your overall average.

Office Hours

To get help on assignments and concepts, course staff will be hosting several office hours per week. Some of these will be held remotely and some will be held in person. See the Staff Hours tab of the course website for the most up-to-date schedule and instructions.


Policies ✏️

Grading

Here’s how we will compute your grade.

ComponentWeightNotes
Class participation2% Extra Credit 
Reading Quizzes10%drop 3 lowest
PAs36%none dropped
Discussion4%drop 1 lowest
Midterm 110%see the Redemption Policy above
Midterm 210%see the Redemption Policy above
Final Exam30%must score >= 55% to pass

Regrades and Redemptions Requests

Assignment Regrade and Redemption Policy:

Once the grade is out, you have 4 days to request a regrade on Gradescope and we won’t take any ED posts asking for regrade. We will use the following regrade policies strictly:

Style regrade

For regrade request about style points, you should first check your grader’s comments before you request a regrade. After you read the comments, if you still believe the grader made a mistake, we will regrade your whole assignment strictly. For example, if you had a magic number that the grader didn’t catch before, you will lose points for it after you get your style points back where the grader made a mistake.

Compile error regrade

If your submitted files did not compile, and Gradescope showed

SUBMISSION FAILED. FILES DO NOT COMPILE.

in your submission page, you will automatically receive 0 in this assignment but you can ask for a regrade requst:

  • For weeks 1 and 2, when you learn the process, we apply no penalty for some cases (not for code’s logic but issues with the gradescope or IntelliJ).
  • 0 for the rest of the assignments.

Redemption

  • You can resubmit your work up to 1 week after you receive your PA grade and receive up to 70% of your lost points in the auto-graded portion. The last assignment doesn’t have this makeup option.

A Note on Letter Grades

We will use a standard scale for assigning letter grades:

Final Grade PercentageFinal Letter Grade
[90% , 100%]Some kind of A
[80% , 90%)Some kind of B
[70% , 80%)Some kind of C
[60% , 70%)D
[0% , 60%)F

Plus and minus cutoffs will be determined at the instructor’s discretion.


COLLABORATION POLICY AND ACADEMIC INTEGRITY ⚠️❗

The basic rule for DSC 30 is: Work hard. Make use of the expertise of the staff to learn what you need to know to really do well in the course. Act with integrity, and don’t cheat.

If you do cheat, we will enforce the UCSD Policy on Integrity of Scholarship. This means: You might fail the course and the Dean of your college will put you on probation or suspend or dismiss you from UCSD.

Why is academic integrity important? Academic integrity is an issue that should be important to all students on campus. When students act unethically by copying someone’s work, taking an exam for someone else, plagiarizing, etc., these students are misrepresenting their academic abilities. This makes it impossible for instructors to give grades and for the University to give degrees that reflect student knowledge. This devalues the worth of a UCSD degree for all students, making it important for the entire campus to band together and enforce that all members of this community are honest and ethical. We want your degree to be meaningful and we want you to be proud to call yourself a graduate of UCSD!

The Jacobs School of Engineering Code of Academic Integrity, the UCSD Policy on Integrity of Scholarship and this syllabus list some of the standards by which you are expected to complete your academic work, but your good ethical judgment (or asking us for advice) is also expected as we cannot list every behavior that is unethical or not in the spirit of academic integrity. Ignorance of the rules will not excuse you from any violations.

What counts as cheating?

In DSC 30, you can read books, surf the web, talk to your friends and the DSC 30 staff to get help understanding the concepts you need to know to complete your assignments. However, all code must be written by you, together with your partner if you choose to have one (when allowed). Note that a partner is allowed only when we explicitly say that groupwork is allowed for a particular assignment. Most assignments in this course must be completed individually.

The following activities are considered cheating and ARE NOT ALLOWED in DSC 30 (This is not an exhaustive list):

  • Using or submitting code acquired from other students (except your partner, when allowed), the web, or any other resource not officially sanctioned by this course

  • Having any other student complete any part of your assignment on your behalf

  • Acquiring exam questions or answers prior to taking an exam

  • Completing an assignment on behalf of someone else

  • Providing code, exam questions, or solutions to any other student in the course

  • Using any external resource on closed-book exams

  • The following activities are examples of appropriate collaboration and ARE ALLOWED in DSC 30:

  • Discussing the general (high-level) approach to solving homework problems

  • Talking about debugging strategies or debugging issues you ran into and how you solved them

  • Discussing the answers to exams with other students who have already taken the exam after the exam is complete

  • Using code provided in class, by the textbook or any other assigned reading or video, with attribution

  • Google searching for documentation on Java

How can I be sure that my actions are NOT considered cheating?

To ensure that you don’t encounter any problems, here are some suggestions for completing your work.

  • Don’t look at or discuss the details of another student’s code for an assignment you are working on, and don’t let another student look at your code.

  • Don’t start with someone else’s code and make changes to it, or in any way share code with other students.

  • If you are talking to another student about an assignment, don’t take notes, and wait an hour afterward before you write any code.

Note: in the discussion above, we are talking about other students that are not your pair programming partner. See the pair programming guidelines for information on working with a partner.

Remember, Academic Integrity is about doing your part to act with Honesty, Trust, Fairness, Respect, Responsibility and Courage.


Support 🫂

Accommodations

Students requesting accommodations for this course due to a disability or current functional limitation must provide a current Authorization for Accommodation (AFA) letter issued by the Office for Students with Disabilities (OSD). This AFA letter should be shared with the instructor and the Data Science OSD Liaison, who can be reached at dscstudent@ucsd.edu. Please contact us by the end of Week 3 to make sure we can arrange accommodations as needed.

Diversity and Inclusion

We are committed to creating an inclusive learning environment in which individual differences are respected and all students feel comfortable. If you have any suggestions as to how we could create a more inclusive setting, please let us know. We also expect that you, as a student in this course, will honor and respect your classmates, abiding by the UCSD Principles of Community. Please understand that others’ backgrounds, perspectives and experiences may be different than your own, and help us to build an environment where everyone is respected and able to thrive.