Accelerated Intro to Programming (UCSD CSE 11)

Greg Miranda (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 lecture, 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 8-12 hours on reading, lecture, and discussion; 4-6 hours on programming practice; and 8-12 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

Lecture content will be presented through live lecture and readings. All lectures will be recorded.
Attendance is encouraged but not required.

These will come with associated quizzes that are due on Saturday of each week. The quizzes are required work to demonstrate your consistent engagement with the material.

The lecture time is listed below (in the time zone of San Diego). The Zoom link for the lecture will be posted in Canvas.

SectionTimeLocation
A00 MTuWTh 9:30am - 10:50am Zoom

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 times are listed below (in the time zone of San Diego). Zoom links for the discussion sections will be posted in Canvas.

SectionTimeLocation
A01 TuTh 2pm - 2:50pm Zoom

Schedule

The schedule below outlines topics, due dates, and links to assignments. If you check the schedule at the beginning of the week, you’ll know when all reading quizzes, programming assignments, etc. will be due.

Staff & Resources

Staff

Greg Miranda (Instructor)

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

The first 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.

Expect to have about 5 minutes with a tutor or TA: you probably won’t have the solution at the end of the conversation, but you should feel un-stuck and ready to try new approaches. The goal of tutoring is to get you unstuck. You can also discuss lecture content and past quizzes with the tutors.

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 second 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%
    • Middle exam counts for 10%
    • Lowest exam counts for 5%
    • To pass the course, you must either pass:
      • Both midterms, or
      • The final exam

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 week will come with several associated quizzes. Completing the quiz before the due date (11:59pm San Diego time) 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 80% (ex: 8 out of 10 total) quizzes, surveys, or tasks for full engagement credit.

Programming

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

Each programming assignment will have a portion that is automatically graded, and a portion that is manually graded by the course staff.

After each assignment’s deadline, we will open a resubmission for that assignment for one week (this time period may be shorter for assignments near the end of the quarter). You can resubmit to improve your grade. The details of this process will be described along with the grades for the first programming assignment.

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%

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 (1-2 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 3, with Fri/Sat as the days to complete it (right around PA5, August 20-21). The second time will be in week 4 with Fri/Sat as the days to complete it (August 27-28). The last time will be for a few days around our final exam dates (September 3-4).

We do not expect that the programming work and recording will take two 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 and Missed Work

There will be opportunities to regain some (not necessarily all) lost credit on programming assignments if you submit something incomplete or miss the deadline, by resubmitting later with fixes. The details of this process will be described along with the grades for the first programming assignment.

No late work will be accepted for the programming exams. However, the combined grading policy for the exams will allow some flexibility in the event that you cannot complete one of them.

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