Syllabus

About the Course

Course description

Welcome to CSE 8A! We are excited to have you in this course. In this class, our goal is to help you experience the thrill of getting a computer to solve a problem of your choosing – by expressing that solution in a programming language. In this course you will do interactive in-class exercises and programming assignments to help you master the basics of computational problem solving and programming.

Prerequisites

CSE 8A is designed for students with no prior programming experience. We do not expect you to have any prior programming experience, just a willingness to learn.

Learning outcomes

Students who successfully complete CSE 8A will be able to:

  • Read a computational problem and formulate an algorithm to solve that problem

  • Describe the functionality of a program that you or someone else has written

  • Write simple Python programs using variables, functions, conditional statements, and loops

  • Store data in a program using data structures like lists, tuples, and dictionaries

  • Use memory models to trace the state of data during a program’s execution

  • Debug and test Python programs that you or someone else has written

  • Describe ways in which computer science plays a role in society and in other scientific disciplines

Course Resources

Textbooks

THERE IS NO REQUIRED TEXTBOOK FOR THIS COURSE!

We will be using the following freely available online resources

NOTE: You need NOT purchase any textbook for this course! Readings will be assigned from the above FREE ONLINE TEXTBOOKS and other online sources.

Course Website

Our course website can be found here: https://sites.google.com/eng.ucsd.edu/cse8afall2020/

The course webpage contains basic information, syllabus (that you are reading right now!), schedule (including office/lab hours), materials (notes, slides, etc) and staff contact information. You should check our course website often!

Canvas

We will be using Canvas (www.canvas.ucsd.edu) for publishing your grades for this course. The grades you see on canvas is YOUR OFFICIAL GRADE, and it is your responsibility to CHECK THEM REGULARLY to make sure they are recorded correctly.

Gradescope

You will use gradescope (www.gradescope.com) for submitting your programming assignments. We will use gradescope for grading your PAs, quizzes and exams. You will be added to our course on gradescope automatically sometime during week 1.

Piazza

We will use Piazza as our course discussion board. Please ask all course content related questions via piazza. Make your post public unless it contains personal information. This will help you get the fastest response possible to your post. DO NOT POST YOUR CODE as a public post on piazza as it will be considered as an Academic Integrity (AI) violation.

  • Sign up link: piazza.com/ucsd/fall2020/cse8a

  • Piazza homepage: piazza.com/ucsd/fall2020/cse8a/home

Course Components

1. Class Sessions (a.k.a. Lectures)

These are instructor-led class periods, but they will not be traditional lectures. During class, we will be watching pre-recorded lecture videos, you will work alone and in groups to solve problems and answer questions on Zoom video conferencing. The pre-recorded videos will be made available before each lecture but you are not required to watch them before the lecture since we will be watching them together in class. The live lectures will be recorded and the lecture recording will be made available after the lecture. As many students are taking the course from different countries around the world, classroom participation is not required but is highly encouraged to stay up-to-date on the topics being discussed in class. You may attend any of the 4 lectures. You are not required to attend the lecture that you originally signed up for. If you are unable to attend any of the 4 lectures, please make sure to watch the pre-recorded lecture videos and lecture recordings on your own.

Our lecture schedule is as follows. All times are in Pacific Time (PT).

2. Review Quizzes (RQs)

To prepare you for these interactive class sections, there will be reading assignments to be completed before each class session (except the first one). At the end of each week (except week 0), there will be a Review Quiz (RQ), which will be due at 11:59 PM PT (Pacific Time) on Fridays Sundays. The review quiz will cover topics from the reading assignments, lecture videos, and lecture discussion. You have to ensure that you do the readings and attend/watch lectures before taking the review quizzes. For any given week, you will find a link to the RQ that is due by the end of the week in our course schedule. Review quizzes will be on Stepik. You should create a Stepik ID to access the review quizzes. Review quizzes must be done individually. Late RQ submissions will not be accepted in this course. There will be 10 RQs in total and 2 lowest RQs will be dropped. You can attempt the review quizzes multiple times until you get them correct!

3. Programming Assignments (PAs)

There will be a total of 8 Programming Assignments, one for each week. All PAs (PA 1 - PA 8) will be counted towards your final grade. Typically, we will release a PA on Wednesday, which will be due at 11:59pm PT the following Tuesday. Each PA will focus on the content covered in the 2 lectures during the week the PA was released. For example, PA3 will be released during Week 3, so it will focus on content covered in the 2 lectures of Week 3. Along with each PA, we require a short video recording of you explaining your PA and/or a short writeup in which you will be answering some conceptual questions about the PA. More details about what to include in each video/writeup will be shared in individual PAs. One PA with the lowest score will be dropped.

You must score at least 55% (average) on the programming assignments of this course. If you score lower than 55% on the assignments, you will receive an F for the course, regardless of your overall average.

Pair Programming on PAs

We encourage you to work together with a partner using a Pair Programming approach. If you choose to work with a partner using pair programming, you will submit only ONE assignment between the two of you and both the partners will receive the same grade. You can have different partners for different programming assignments. You cannot change partners for the same programming assignment. For example, you may partner with one student for PA1 and a different student for PA2 but you should not work with one student for a part of PA1 and with a different student for the rest of PA1. Working with two different partners on the same PA will be considered as an academic integrity violation.

For details on what is Pair Programming and how it works, read this guide: Guide on Pair Programming. More details about Pair Programming will be shared during the first lecture.

Star points

A few programming assignments may have some additional challenges that you may implement to earn star points. Star points are not extra credit. If you do "enough" star points and are "close enough" to the boundary while calculating letter grades, you may be moved up to the higher letter grade, but do these star point extensions because you are intellectually curious and want a challenge. Not for the grade.

In addition to the Star Points that can be earned on the weekly assignments, we will also reward the top student answerers on Piazza with a Star Point. If you are among the top set of students who answer questions on Piazza, you will earn a Star Point. (We won't get specific about what "top" means, but every quarter there's a few students who rise well above the others in terms of their Piazza response activities).

4. Exams

There will be two exams in this course: a midterm and a final exam. The exam dates/times are shown below:

  • Midterm Exam: Friday, November 6th 2020

  • Final Exam: Saturday, December 12th 2020

The final exam will be cumulative and will cover all topics discussed in the course. You must pass the final exam to pass this course. You must score at least 55% on the final exam to pass the final exam.

Both midterm and final exams will be 3 hours long and you will be given a 24 hour time window to take these exams.

If your final exam score (in percentage) is higher than your midterm score, then your midterm score will be replaced by your final exam score!

5. Discussion Sections

Every week, Teaching Assistants (TAs) will hold an online Discussion Section on Zoom, in which they will review course concepts to try to help students overcome the learning breakdowns they may have encountered throughout the week. TAs will also review and offer help on how to get started on the PAs. Due to the online nature of the course, discussion sections are optional but you are highly encouraged to attend/watch discussions as they will be extremely helpful for your learning. You may attend any of the 6 discussion sections. You may even attend multiple discussions, if needed. You are not required to attend the discussion you originally signed up for.

The following is the schedule of the 6 discussion sections. All times are in Pacific Time (PT).

6. Lab Assignments

All labs will happen on Wednesdays. There will be lab sessions starting as early as 8AM PT and the latest lab session will start at 7 PM PT. There will be a lab assignment that will be due every week on Wednesdays Fridays before 11:59pm. You will be working small groups of 5 during the labs. Each small group will be assigned a TA/tutor who will be helping you during the labs throughout the quarter. You are required to attend the lab you signed up for. Lab assignments are worth 9% of your course grade. One lab with the lowest score will be dropped.

Late Policy

Programming Assignments

    • Each student gets eight free “slip days” that allow an automatic 24-hour extension on any programming assignment (PA). You do not have to ask to use your slip days. Just submit your assignment after the deadline (but before 24 hours after the deadline) and it will be automatically deducted from your account. You may submit your PAs up to three days late. You can only use a maximum of 3 slip days for any PA. No PA can be submitted more than 3 days late. If you are working in pairs, each late day will be counted as a slip day for both the students in the pair. If you don't use any or all slip days, they will directly help you to earn Star Points (2 star points per slip day).

    • Once you use up your free slip days, you can still submit assignments late but for each late day you will be docked 20% of the grade for that PA. You cannot submit a PA more than 3 days late. For example, if you submit your PA anytime between 12:01am - 11:59pm on the day after the PA is due, your PA will be graded only for a maximum of 80% total points. And if you submit it anytime between 12:01am - 11:59pm on the second day after the PA is due, your PA will be graded for a maximum of 60% total points. And if you submit it anytime between 12:01am - 11:59pm on the third day after the PA is due, your PA will be graded for a maximum of 40% total points. After 3 days no late PA submissions will be accepted.

Lab Assignments

  • Each student gets two free late days for the labs. You can only use a maximum of 1 late day for any lab assignment. No lab assignment can be submitted more than 1 day late. If you submit a lab assignment late after using up your two free slip days, then your lab assignment will not be graded.

Review Quizzes

    • You may miss up to a maximum of 2 review quizzes without any penalty as we will be dropping the 2 lowest RQ scores from 10 RQs. No late RQ submission will be accepted.

We have already built in ways for you to submit work late and make up for lost points, but if you feel you have a legitimate reason why you need additional accommodations please talk to your instructor right away to see what might be arranged. There will be no exceptions to these policies unless for very compelling personal reasons.

Grade Components

  • Programming Assignments (PAs): 49% (8 PAs, 1 lowest dropped, 7% each)

  • Review Quizzes (RQs): 20% (10 RQs, 2 lowest dropped, 2.5% each)

  • Lab Assignments: 9% (10 labs, 1 lowest dropped, 1 % each)

  • Midterm Exam: 10%

  • Final Exam: 12%

Grading cutoffs

By default, we will use the standard scale of 90%—100% = A, 80%—89.9% = B, 70%—79.9% = C, 60%—69.9% = D, and <60% = F. These cutoffs may be lowered if need be, but they will never be raised. In other words, we may make it easier to get a certain letter grade, but never harder. Pluses and minuses (e.g., A+, A-) will be given at the professors' discretion.

Important Grading Policies

  • You have 3 days from the time a PA is returned to request a regrade. After that, the grade is set in stone. To request a regrade, please contact the person who graded the assignment/quiz/exam originally. You should submit your regrade request through gradescope.com. Submit the regrade request on the corresponding problem and clearly explain why you think there is a grading error. If you submitted a regrade request without a clear justification and was simply abusing the regrade system, your grade will be lowered as a penalty.

Academic Integrity

All students must submit the Academic Integrity Form at the start of the course.

You will not receive any course credit until you submit the form. By submitting the form, you are agreeing to its terms, so be sure to read it carefully. We encourage you to study together and discuss concepts from this class, but all PAs must be written only by collaborating with your partner or completely independently. You should not collaborate with anyone on your reading quizzes and exams. If you are found cheating, you will receive an automatic F in the course, and you may face even stricter sanctions from the University. In short, do not cheat!

The basic rule for CSE 8A is: Work hard. Start early. Make use of the expertise of our amazing CSE 8A 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. 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 8A, you can read books, surf the web, talk to your friends and the CSE 8A staff to get help understanding the concepts you need to know to solve your PA problems. However, you must write your program only with your partner if you are pair programming or on your own if you are working alone.

In CSE 8A, 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.

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 not to 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:

    • Don't share your code with anyone else in the class except your partner if you are pair programming.

    • Don't start with someone else's code and make changes to it.

    • Don't discuss anything code related with any other students in the class (except your pair programming partner).

In CSE 8A, you must write your own answers on the review quizzes and exams. Getting quiz or exam answers from someone else, or providing answers to someone else, is cheating. Failing to follow this policy will result in an F for this course.

Getting Help

We expect that all students will need help at some point in this course. If you find yourself needing help, this is not cause for embarrassment: it is completely expected, and our goal is to ensure that you are able to receive the help you need. Please be sure to seek help early and often through any (or all!) of the following resources:

  • Your Study Group: Building a support system of friends (online!) with whom you can struggle and work through the challenges you encounter is one of the best ways to seek help. You will quickly understand how much you can learn by working together!

  • Office Hours: The instructors and the Teaching Assistants (TAs) are always willing to help you during our office hours. Ideally, office hours should be reserved for conceptual questions: coding-specific questions are best asked of the tutors during lab hours. All office hours can be found on the Course Calendar.

  • Lab Hours: There are many, many remote lab hours in which tutors are willing and available to help you with any questions you might have. Lab hours will be posted on the Course Calendar. You can get help by raising a ticket on the Autograder. Please read Remote Tutoring Procedures For Students to understand how to get help.

  • Piazza: Please use the Piazza discussion board for any questions related to the Programming Assignments (PAs), material in the course, 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 content related questions should be posted only on Piazza. You should ask specific questions related to your PA code during tutor lab hours. You should NOT publicly post any PA related code on piazza as it will be treated as an AI violation.

  • Email: If you have any questions about your grade, or would like to discuss anything confidential with your instructors, then please email your instructors directly.

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

Students with Disabilities

We aim to create an environment in which all students can succeed in this course. If you have a disability, please contact the Office for Students with Disability (OSD), which is located in University Center 202 behind Center Hall, to discuss appropriate accommodations right away. We will work to provide you with the accommodations you need, but you must first provide a current Authorization For Accommodation (AFA) letter issued by the OSD. You are required to present their AFA letters to faculty (please make arrangements to contact your instructor privately) and to the OSD Liaison in the department in advance so that accommodations may be arranged.

Basic Needs/Food Insecurities

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.

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, 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://docs.google.com/forms/d/e/1FAIpQLScs0Cznypp4SxQJOsFMgP9nFDjJ0zzYPlSBWsiP3_wiWkdjaA/viewform. 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.