It is expected that you have taken high school algebra and are familiar with computing concepts. You should also have taken a course in a compiled language. CSE 11 assumes that you have basic programming exposure. The pace of this class is fast as shown in its title.
You should read this entire syllabus. It is important. It may be the most important thing you read for this course. But here are the pieces of information you absolutely do not want to forget. I don't mean for this to sound scary, but so many students fail to read or understand these points, so I want to make them as clear as possible.
∑ Homework (PAs) is due by 11:59 pm on the due date. No late work will be accepted unless it is due to a documented emergency and the instructor of the course has to approve it before the due time.
∑ We have assigned reading, but we won't check your reading nor assign grades to your reading activities. We expect students to read the reading assignments before each lecture.
∑ It is your responsibility to ensure that you have correctly submitted the correct code for your homework assignment. Incorrectly submitted assignments will be graded as is. We won't accept late work due to fairness to other students in our classes.
∑ All homework assignments must be done based on the instructions.
∑ All questions for the class should be posted to Piazza. Emails to the instructor should be about personal and confidential matters only.
∑ We offer each student two slip days that will allow you to be late for up to 24 hours after the due date of an assignment. Feel free to use them for emergency purposes or for balancing the load from different classes.
In this class, you will learn to:
∑ Understand the basic idea of variables, flow controls, and memory models.
∑ Be able to debug, test, and document a functional Java program.
∑ Manipulate strings and files in Java
∑ Describe and use some of Java's Abstract Data Types (ADTs) and Application Program Interfaces (APIs).
∑ Implement algorithms to solve relatively complex problems.
∑ Design, write and debug relatively complex classes.
∑ Understand and use inheritance and polymorphism in your programs.
∑ Implement recursive solutions to problems.
∑ Design and use test cases to ensure the correctness of your programs.
∑ Practice good documentation habits.
∑ Work in Linux environment, and run programs from the command line.
∑ Gain independence and resourcefulness to solve problems and write programs on your own.
∑ Sign in or create an account at learn.zybooks.com
∑ Enter zyBook code: UCSDCSE11Summer2020
We assign reading from the book as well as some in-session exercises.
Your final grade will be determined via the following percentages:
We will use a standard scale for assigning letter grades:
The instructor has the discretion to assign + or - for a given letter grade, though in general we will stick with the normal scales for + 0r -.
Instructor: Greg Miranda (A00)
Online zoom link: https://ucsd.zoom.us/my/gregmiranda
Online office hours: M/W 9am - 10am, F 9am-11am. Or by appointments. Email me if you need to make an appointment.
Instructor: Paul Cao (B00)
Online zoom link: https://ucsd.zoom.us/my/yic242
Online office hours: T/Th 10am - 12 noon. Or by appointments. Email me if you need to make an appointment.
Please only email instructors with personal (confidential) questions. If you need to see us at a time other than the office hours, you should email us in advance to set up a time. You should look at their calendar and propose a few time slots of 30 minutes or less.
We have many tutors for this class who are available to help you online. If you need tutor help, just submit your ticket on autograder.ucsd.edu. All tutoring sessions are online via zoom.
∑ Class Sessions (a.k.a. Lectures)
These are instructor lead sessions that will focus on explanations of complicated and important concepts, and explore strategies on manipulating basic data structures. Instructors will use in-class polls as well as pre-released worksheets to work out different problems with students. These sessions will be recorded and will be available online. It is strongly encouraged that everyone attends lecture sessions for more effective learning. We understand that sometimes it isn't possible under the current situation affected by Covid-19. For those who can't attend lectures real-time, you should watch the recorded video.
∑ Reading Assignments
To prepare you for these interactive class sections, there will be reading assignments to be completed before each class section. There are also videos that accompany the reading. This reading and the videos are required, and you should complete the reading assignments before each lecture. This part isn't graded though due to the tight schedule in summer.
We plan to have a single midterm for the summer session and the midterm will be completed
∑ Problem Solving Assignments (PAs)
Most weeks there will be a problem solving assignment due by 11:59pm on the due date. These will consist of reading a problem statement formulating a plan to solve the problem (an algorithm) implementing a solution (writing a program in Java that solves the problem). You should complete all the PSAs by yourself.
∑ Discussion Sections
Discussion sections are optional. Discussion sections start Week 1. Discussion sections in 11 focus on basic concepts and offer help on the PAs. They are extremely helpful for you. You should try to attend the discussion session you registered in. The discussion sessions are not the same for Mondays or Wednesdays. But both sessions will be recorded for your reference.
Complete your academic honor pledge in this link (Links to an external site.) before the end of Week 1!
The basic rule for CSE 11 is: Work hard. Start early. Make use of the expertise of the CSE 11 staff to learn what you need to know to really do well in the course. Don't cheat.
If you do cheat, we will enforce the UCSD Policy on Integrity of Scholarship (see the General Catalog or the corresponding web page, scroll 2/3 of the way down). This means: You will get an F in the course, and the Dean of your college will put you on probation or suspend you or dismiss you from UCSD.
What counts as cheating?
In CSE 11, you can read books, surf the web, talk to your friends, and the CSE 11 staff to get help understanding the concepts you need to know to solve your PSA problems. However, you must write your program alone for all PSAs.
The goal of CSE 11 will be a turning point for most of you on understanding how different strategies to solve a problem may result in vastly different efficiency. Future instructors, employers, and colleagues will expect that you will attain a certain proficiency in data structures. Using unauthorized aids in doing your work will prevent you from attaining the proficiencies that others will expect. Meeting or not meeting these expectations relate directly to getting internships, retaining employment, and success in your future studies.
In CSE 11, using or even looking at program code or the write up of algorithms that someone else has written (unless it was explicitly provided as part of the assignment), or providing program code or detailed algorithms to someone else, or turning in code that you have written with someone else other than your partner, is considered cheating. Yes, we do electronically check every program that is turned in. In recent quarters, we also found out that people unintentionally post their codes on public github repos and it is a violation of the AI policy! We report all these cases to the academic integrity office. If you want to share your work with future employers or simply want to save a copy of your work, you can post them privately on your github account!
Receiving a grade on a PA doesn't mean that you have passed the plagiarism checking. We can report cheating cases any time during the quarter, even after we submit your final letter grade. So the safest bet is don't cheat!
How can I be sure that my actions are NOT considered cheating?
To ensure you don't have a problem with this, here are some suggestions:
In CSE 11, you must write your own answers on the quizzes unless it is specified otherwise. Getting answers from someone else, or providing answers to someone else, is cheating. Everyone needs to stop writing on the exam/quiz once the exam/quiz period has ended. Failing to follow this policy will result in an F for this course.
To reinforce these points, every student in CSE 11 must read, understand, and sign the Integrity of Scholarship Agreement. You must sign an integrity statement before completing any of the assignments or labs. Go to the course website main page and find the link for the tutorial there.
To detect instances of academic integrity violations in programming assignments we will use 3rd party software. We recommend you only include your class lab account ID (not your name or PID) in your submissions. Including your name and/or PID will disclose that information to the 3rd party.
We expect that ALL STUDENTS WILL NEED HELP at some point in this course. If you find yourself needing help, this is not a cause for embarrassment. It is completely expected. Please seek help early and often through any (or all) of the following resources.
Open lab hours:
There are many, many hours in which tutors are willing and available to help you with any questions you might have. Course tutor calendar can be found here (Links to an external site.) and how you can get help with a tutor can be found here (Links to an external site.).
Online help - Piazza:
Use the Piazza site for any questions related to the PA, material in the course, quizzes, exams, or course logistics. Piazza allows you to post questions anonymously (to other students) if you donít feel comfortable revealing your name. In general, all questions should be addressed to Piazza EXCEPT:
∑ Confidential questions that you wish to address to your instructor only. Please email your instructor directly.
∑ Questions about your grade. Please contact the person who graded your assignment directly.
∑ Posts that include portions of your PA solution. Please see a tutor our tutoring session or post these questions privately.
Your instructor and TAs are always willing to help you during her or his office hours. If you cannot make it to your instructorís or TA's office hours but wish to meet with your instructor or TA, please send her or him an email to set up an appointment.
Our instructional staff will make a concerted effort to be welcoming and inclusive to the wide diversity of students in this course. If there is a way we can make you feel more included please let one of the course staff know, either in person, via email/discussion board, or even in a note under the door. Our learning about diverse perspectives and identities is an ongoing process, and we welcome your perspectives and input.
We also expect that you, as a student in this course, will honor and respect your classmates, abiding by the UCSD Principles of Community (https://ucsd.edu/about/principles.html). 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 feels comfortable.
If you experience any sort of harassment or discrimination, please contact the instructor as soon as possible. If you prefer to speak with someone outside of the course, please contact the Office of Prevention of Harassment and Discrimination: https://ophd.ucsd.edu/
If you are experiencing any basic needs insecurities (food, housing, financial resources), there are resources available on campus to help, including The Hub and the Triton Food Pantry. Please visit http://thehub.ucsd.edu/ for more information.
We might conduct research studies in this class that includes the analysis of student grades and/or reformat of course structure to learn how we can teach computer science better. Refer to the consent form here and here