This course expects that you have successfully completed CSE 8B or CSE 11 at UCSD. We assume comfort and skill with basic Java programming, including: using and creating objects, drawing memory models, developing and programming algorithms to manipulate strings, arrays, and numerical data, writing programs that read and write from and to files, and building small to moderate size Java programs using the Java API as a reference.
If you have completed a rigorous introductory class in another object-oriented language (e.g. C++), you are probably OK to take this course, but you must learn the basics of Java on your own BEFORE this course begins. If you have taken an introductory course in a different language (Python, C), we recommend you take CSE 11 before this course.
In this course you will continue to develop your sophistication as a programmer by learning to write larger-scale programs that use and manage data efficiently and correctly. You will learn several basic ways of storing data (data structures), how to analyze your programs and your data structures, and how to use abstraction appropriately to create efficient, correct and reusable programs.
This course is more challenging than CSE 8B and CSE 11 in that your homework assignments will be larger, you will be expected to do more of the design (and analysis) on your own, and you will be given more freedom in your implementations. However, we expect that everyone who has succeeded in CSE 8B or CSE 11 can succeed in this course too.
For a complete set of learning outcomes in this course, see the course learning outcomes page.
Lectures (5%)
This class meets on Tuesday and Thursday - You must attend the lecture time that you enrolled in. These are instructor-led class periods.
During the lectures, we will occasionally work on quizzes. The quizzes are collected after the lectures. The correctness of the quizzes is not marked, but you need to submit 75% of the quizzes in order to get the full points from the class. Missed quizzes will yield partial marks.
Midterm (15%), and Final (20%)
There will be a short midterm exam and final exam as well. Exams cannot be made up. The midterm exam will be held in the normal lecture location during the lecture hours but the final exam is going to be held during the exam week.
Homework (60%)
There are a total of 7 to 8 programming assignments. All the assignments will require a time commitment and will form the bulk of the class mark.
The programming assignments are due every Wednesday at midnight (except the first assignment). There will be limited to no support in the 12 hours before the deadlines, so plan to finish early. Support is also limited or non-existent during weekends or public holidays.
These assignments will determine 60% of your grade. It is important to plan your time accordingly and submit all the assignments on time. Missing an assignment and especially missing several assignments will have a significant impact on your grades.
The assignments are to be done alone and according to the academic integrity guidelines.
Discussion Sections (0%)
There are two teaching assistant-led discussion sections available. They meet on
First discussion sessions will meet Monday 8th of April and Tuesday 9th of April.
There is a discussion section corresponding to each assignment. Discussions will focus on interactive activities that go along with programming assignments. This might include techniques for more effective development during programming assignments, conceptual problems about the assignment itself, a demonstration of a particularly tricky part of the assignment, and more.
The discussion sections are not required, but highly recommended. The discussion sessions will cover the weekly assignments in more technical detail or provide reviews for upcoming exams.
Open Labs (0%)
You are highly encouraged to do your programming assignments in CSE B260, which is in the basement of the CSE building. The lab will be staffed with tutors who are there to help you during scheduled hours (see Schedule). However, if the lab is full, you may work in any of B220-B260.
You will need an autograder account to get help from the tutors. They will be set up for you in the first few days of class, but if you do not have one, you can request on on the autograder site.
ZyBooks (0%)
We will encourage the students to utilise the Zybooks designed for this class. The code for the Zybooks will be posted soon.
We are going to be using GradeScope for assignment submission. Your grades are going to be published on Gradescope where you can also submit regrade requests (see regrade policy below). We will also utilise TritonEd as storage for grades but this is the only use for TritonEd in this course.
You can and should ask questions on Piazza. Piazza will be our primary Q&A tool where the instructor, TA's and tutors will be able to clarify and help out with issues.
However, there are some guidelines you should follow so that everyone can get most out of Piazza discussions.
The default question type is a public question. It you would like to have a clarification on an assignment writeup, have issues with environments or have any other question or concern where knowing the answer benefits everyone, please post your question publicly. Only if you have a spesific bug and you need to post some code, use the private settings.
If you have a deeply private issue, the best avenue is to send an email or instructor office hours. Piazza posts, even private, are visible to the tutors and TA's.
For public discussion, note that answers from your classmates are not official. They could be downright wrong or misleading, completely by accident. “My classmate said so on Piazza” is not a legitimate justification in most arguments, though they may indeed lead you in helpful directions.
No iClickers are used in this iteration of CSE12.
A score below 55% on the final exam OR below 55% on the programming assignments results in an F for the course, regardless of your overall grades.
Any violation of the academic integrity agreement for this course results in an F for the course. It is your responsibility to read and understand this policy.
We will use a standard scale for assigning letter grades: 90-100 = some kind of A; 80-89.9= some kind of B, 70-79.9= some kind of C, 60-69.9=D, <60=F. Plusses and minuses are decided at the instructor’s discretion.
You can hand in programming assignments up to 24 hours late for a 20% deduction. After that no credit will be given. Contact the instructor for documented extenuating circumstances.
Grading is not always completely mistake free. After grades are released, you will have a short period for regrade requests but you need to provide us justification why do you think a mistake was made. In some cases there might be no opportunities for regrade requests. The regrades are handled case by case basis.
There are no slip days. If your assignment is late, we will apply the late work policy of 20% points deduction for late submissions. However, we will disregard your lowest scoring assignment when calculating the assignment grade e.g. we will only count 7 assignments out of 8 towards your grade.
You are not allowed any study aids on exams (aside from those pertaining to university-approved academic accommodations) unless otherwise stated.
Acting with academic integrity in this course means that you do your own learning and are evaluated on your own work.
The first week has a form to fill out that asks you to read and understand this scholarship agreement, and to take this code plagiarism tutorial. These should cover what violations look like for this course; feel free to ask if you have any questions about a situation you are unsure about.
The IDEA Engineering Student Center, located just off the lobby of Jacobs Hall, is a hub for student engagement, academic enrichment, personal/professional development, leadership, community involvement, and a respectful learning environment for all. The Center offers a variety of programs, listed in the IDEA Center Facebook page at http://www.facebook.com/ucsdidea/ (you are welcome to Like this page!) and the Center web site at http://idea.ucsd.edu/. The IDEA Center programs support both undergraduate students and graduate students.
University of California, San Diego
Consent to Act as a Research Subject
Investigating the Impact of Pedagogical Choices on University Student Learning and Engagement
Who is conducting the study, why you have been asked to participate, how you were selected, and what is the approximate number of participants in the study?
Gabriele Wienhausen, Director of the Teaching and Learning Commons, together with her education research colleagues is conducting a research study to find out more about how pedagogical choices affect student learning and experience in the classroom. You have been asked to participate in this study because you are a student in a class that is being studied or used as a control. There will be approximately 500,000 participants in this study.
Why is this study being done?
The purpose of this study is to create knowledge that has the potential to improve the learning and educational experience of students at UC San Diego and beyond.
What will happen to you in this study and which procedures are standard of care and which are experimental?
If you agree to be in this study, the following will happen:
Your data from this class including grades, homework and exam submissions, and survey responses will be included in the analysis to determine the effectiveness of the pedagogical techniques used in this course compared to other similar courses.
How much time will each study procedure take, what is your total time commitment, and how long will the study last?
Your participation involves only agreeing to let us use your data in our analysis. It will require no time on your part above the time you put into this course without agreeing to the study.
What risks are associated with this study?
Participation in this study may involve some added risks or discomforts. These include the following:
1. A potential for the loss of confidentiality. We will not share your personally identifying data with people outside our research team. Data will only be kept in anonymized form for research purposes. Course data will not used for this research study until after final grades have been posted and will be rendered confidential by removing any identifiers before analysis. Your instructor will not know whether or not you are participating in this study until after final grades have been posted. Data from students who opt out of the study will be removed prior to data analysis. Research records will be kept confidential to the extent allowed by law. Research records may be reviewed by the UCSD Institutional Review Board.
Since this is an investigational study, there may be some unknown risks that are currently unforeseeable. You will be informed of any significant new findings.
What are the alternatives to participating in this study?
The alternatives to participation in this study are not to participate. If you choose to opt-out of participating in this research study, we will exclude your data from analysis. Whether you participate will have no impact on your experience or grade in the associated class as the professor will not know who is or is not participating in the study until after final grades are assigned
What benefits can be reasonably expected?
There is no direct benefit to you for participating in the study. The investigator, however, may learn more about how to improve student learning, and society may benefit from this knowledge.
Can you choose to not participate or withdraw from the study without penalty or loss of benefits?
Participation in research is entirely voluntary. You may refuse to participate or withdraw or refuse to answer specific questions in an interview or on a questionnaire at any time without penalty or loss of benefits to which you are entitled. If you decide that you no longer wish to continue in this study before the end of the quarter, simply respond to the online opt-out form here: https://goo.gl/forms/JSBRjEmkES6W6xYc2. If you decide to opt out after the quarter has ended, you must contact Ying Xiong (yix184@ucsd.edu) and give the quarter and the course from which you would like your data withdrawn.
You will be told if any important new information is found during the course of this study that may affect your wanting to continue.
Can you be withdrawn from the study without your consent?
The PI may remove you from the study without your consent if the PI feels it is in your best interest or the best interest of the study. You may also be withdrawn from the study if you do not follow the instructions given you by the study personnel.
Will you be compensated for participating in this study?
You will not be compensated for participating in this study.
Are there any costs associated with participating in this study?
There will be no cost to you for participating in this study.
Who can you call if you have questions?
Gabriele Wienhausen and/or her colleague has explained this study to you and answered your questions. If you have other questions or research-related problems, you may reach Gabriele Wienhausen at gwienhausen@ucsd.edu or (858) 534-3958.
You may call the Human Research Protections Program Office at 858-246-HRPP (858-246-4777) to inquire about your rights as a research subject or to report research-related problems.
Your Consent
If you consent to participate in this study and are at least 18 years old, no action is needed. If you DO NOT consent to participate in this study, or you choose to opt-out at any time during the quarter, please submit this form online at https://goo.gl/forms/JSBRjEmkES6W6xYc2. Your instructor will not have access to the list of students who opted out until after grades are posted. Note that you must separately opt-out of the study for each course involved in this study.