Accelerated Intro to Programming (UCSD CSE 11)

This is a previous version of the course (Spring 2020). For the Fall 2021 edition, see https://ucsd-cse11-f21.github.io/. If you want to see the older version, scroll down.

Joe Gibbs Politz (Instructor)

Basics - Schedule - Staff & Resources - Grading - Policies

In this course, you will learn to write, trace, and test programs; explore the interactions between programs and data; and practice organizing programs for clarity and re-use.

We will explore these topics interactively in lecure, you will implement programs to practice your programming skills, and you will reflect on this learning through your own program designs.

This web page serves as the main source of announcements and resources for the course, as well as the syllabus.

Basics

On an average week in CSE11, you can expect to spend 4-6 hours on videos, reading, lecture, and discussion; 2-3 hours on programming practice; and 4-6 hours working on your programming projects. If you find yourself spending dramatically more time than this, it’s a good idea to contact the course staff and discuss more efficient strategies in office hours.

Lecture

Most lecture content will be presented asynchronously through videos and readings. These will come with associated quizzes that are due on the following Tuesday or Thursday at the start of our originally-scheduled lecture time. The quizzes are required work to demonstrate your consistent engagement with the material.

In our originally-scheduled lecture time, we will play the videos with an opportunity for live questions, clarifications, and some prompts for you to work on beyond the assigned reading and videos. Attendance is encouraged but not required. Recordings of relevant classwide discussions will be posted after the meetings, though the selected videos/reading for the given day are the official “lecture” for that day.

The scheduled lecture time is (in the time zone of San Diego) Tuesday and Thursday from 11am-12:20pm. You can visit the lectures via zoom links provided with each of the lecture links in the schedule spreadsheet below.

Discussion Sections

Discussion sections will be used to demo tools and answer questions about the programming assignment specifications. They will be recorded and released, also have similar discussion prompts and breakout groups to work on problems. Attendance is encouraged but optional. The discussions are (in the time zone of San Diego) from 4-4:50pm. Zoom links for the discussion sections will be posted in the resources provided in the schedule spreadsheet below

Schedule

The schedule below outlines topics, due dates, and links to assignments. In a typical week, by 5pm Monday before class all due dates, readings, and notable events in the course until the following week will be posted here. So if you check the schedule at the beginning of the week, you’ll know when all reading quizzes, programming assignments, etc. will be due. We will often have the schedule confirmed more than a week out, but we’ll strive to be up to date with the current week.

Staff & Resources

Staff

Prof Joe Gibbs Politz (Instructor)

There are 12 staff members(instructor, TAs, and tutors) to help with your learning, and a few kinds of help sessions you can attend.

The first is group help hours at the times listed below. Group help hours are a great place for any kind of question about the course, from help with your assignment to clarifications about material in lecture to questions beyond what we cover in the course. Group help hours is not a good place to get help with your specific debugging challenges with your code, since we’ll usually be reluctant to share one students’ code with a whole group, as that could rob the rest of the group of some productive struggle and learning.

The second is 1-on-1 help hours where TAs and tutors are available to answer your questions about any course content, though often this is a good place to go for programming help. At the times below, the course staff will be available to answer your questions, and it’s a great place to get debugging help, since you’ll be able to 1-on-1 screenshare with a tutor.

You can see instructions for how we’re setting this up for remote access here:

Remote Lab Hours How-To

These rules help us make sure we get timely and actionable help to as many students as possible. They also encourage students to do some meaningful work on their own before reaching out for help – the goal of the course is for you to be able to do programming work on your own!

The third is through Piazza.

Piazza is an online discussion board where we can make announcements and students can ask questions. Both we (the course staff) and your classmates can answer your questions. There are a few kinds of questions you should ask on Piazza:

  • Private questions about your code related to a programming assignments
  • Private questions about your grade / progress in the course
  • Public questions about the content of lecture, discussion, lab, and any readings
  • Public questions containing no code that relate to programming assignments

For each assignment, you will find a Frequently Asked Questions post, where we will answer all common questions we receive in office hours and via (private) Piazza posts. If you ask a question that’s already answered in that post, we’ll likely just send you a link to that post. That post will be updated as new important questions and answers come in.

When answering questions, be polite, be clear, and assume the best intentions of the person asking. If it turns out you make a mistake or were wrong, admit it with a smile (emoji are great for this 😊), and make sure the correct information is clear. Above all, keep in mind that the course is a community whose goal is to foster a positive learning environment for everyone.

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.

Grading

There are three components to your grade in the course:

  • 20% Engagement (surveys, lecture quizzes, etc)
  • 50% Programming Assignments (weekly)
  • 30% Exams (Code + video), 2 midterms + final
    • Best exam performance counts for 15% 17%
    • Middle exam counts for 10% 12%
    • Lowest exam counts for 5% 1%
    • To pass the course, you must either pass:
      • Both midterms, or
      • The final exam

      (This policy changed to be slightly more lenient, allowing the final exam to be sufficient even if both midterms were failed.)

Your final letter grade will correspond to the following table:

A+ A A- B+ B B- C+ C C- D, F
  >97    93-96.99     90-92.99    87-89.99    83-86.99    80-82.99    77-79.99    73-76.99    65-72.99    Below 64.99 

We may adjust the above scale to be more lenient (depending on a number of factors that we will not publicize), but we guarantee that we will not adjust the scale to make it harder to get a better grade. We will not adjust the scale for individual students.

Engagement

Each lecture will come with an associated quiz. Completing the quiz before the next lecture section with at least half of the answers correct gains engagement credit. You can also get engagement credit by submitting various surveys and other small engagement tasks we may ask of you throughout the quarter.

You need to get credit for 14 (out of 20 total) quizzes for full engagement credit.

Programming

Most weeks there will be a programming assignment. Direct practice with programming will make up the majority of your work in the course.

On each submission, you will get a grade which partially comes from an automatic grade based on the correctness of your code (a small part of your grade) and some manually-written feedback from the course staff (the larger portion). If you don’t complete the assignment because you didn’t attempt some of the parts, you’ll miss out on most of the credit. However, if you make a clear effort at all the parts, we will give you feedback tasks as part of your grade report. After you get your grade, you’ll follow up with a new submission that addresses the feedback tasks and your grade will be based on how well you responded. A more correct and thorough initial submission will usually have a much smaller set of feedback tasks.

There are 10 PAs total, and their relative weightings that add up to 50% are:

  • PA0.5: 1%
  • PA1: 4%
  • PA2: 5%
  • PA3: 6%
  • PA4: 7%
  • PA5: 6%
  • PA6: 3%
  • PA7: 8%
  • PA8: 5%
  • PA9: 5%

After you get your grade back on each you have some time to improve your grade via feedback tasks and resubmitting any automatically-graded component.

Exams

In place of on-paper exams, we will follow a different procedure for “exams” this quarter.

Twice during the quarter and once at the time of the final exam, we will give you a short programming assignment that you must complete in a short time frame (2-3 days) without any help from other people, including the course staff. You can use any resources, notes, readings, and past code from the course to help in addition to Web-based resources. Along with submitting the program, you will record a short video of yourself presenting the program you wrote, demonstrating its behavior and your understanding. We’ll give some opportunities for practice with this process, and much more detailed instructions with the exam release.

The first time will be in week 6, with Thu/Fri/Sat as the days to complete it (right after PA5, May 6-8). The second time will be in week 9 with Thu/Fri/Sat as the days to complete it (May 28-30). The last time will be for a few days leading up to our final exam date (June 7-9).

We do not expect that the programming work and recording will take three days of constant work. The tasks will be significantly shorter than the PAs, so this should only take a few hours. We give the broad range to give you the best chance to schedule some quiet, focused time to do the work and record the presentation.

It’s worth explaining why we are using this mechanism. There are at least two reasons:

  1. Presenting your code, and demonstrating it via screenshare, is a really important skill and shows us a lot of your learning. Getting practice with this style of presentation is a good thing for you to learn in general and a rich way for us to assess your skills.
  2. The main thing that in-person, on-paper exams let us do is easily verify that it is in fact you, the student, completing a major assessment. We can similarly do so with a video – many students are concerned that cheating will be frequent in all-remote courses, and this is our way of ensuring that we are giving grades to the people who earned them.

We will delete all the videos we receive from you after assigning final grades for the course, and they will be stored in a university-controlled Google Drive directory during the quarter only accessible to the course staff.

Please send a private message on Piazza or an email to the instructor if you have concerns about this exam policy or cannot complete exams in this style for some reason.

Policies

Academic Integrity

Individual assignments will describe their academic integrity requirements. This have a missive on academic integrity has some details some examples of what we expect in terms of collaboration in the course.

Note that with the course remote, one challenge we face as an instructional team is verifying that students are submitting their own work. We typically use exams to mitigate this particular challenge to academic integrity, since it requires an in-person, ID-checked assessment. Assignments and exams will come with specific policies for what types of collaboration is allowed, but we have one course-wide policy – we may reach out to students to schedule a check-in on their understanding of work they’ve submitted if we’re suspicious about an academic integrity violation. This would involve a videoconference with a TA or instructor to check that the student has the understanding demonstrated by their work.

We don’t expect to use this option much (certainly you are a student that acts with integrity!), but we state it clearly in the syllabus in case it becomes necessary so it isn’t a surprise to anyone.

You should be familiar with the UCSD guidelines on academic integrity as well.

Late Work

In general, late work is not accepted. However, most of the categories of submission for the course allow some missed submissions without having a large impact on your grade, and you only have to submit a subset of them for full credit.

Regrades

Mistakes sometimes occur in grading. Once grades are posted for an assignment, we will allow a short period for you to request a fix (announced along with grade release). If you don’t make a request in the given period, the grade you were initially given is final.

Diversity and Inclusion

We are committed to fostering a learning environment for this course that supports a diversity of thoughts, perspectives and experiences, and respects your identities (including race, ethnicity, heritage, gender, sex, class, sexuality, religion, ability, age, educational background, etc.). Our goal is to create a diverse and inclusive learning environment where all students feel comfortable and can thrive.

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/.

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 be 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 Laurel Nelson (laureln@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.