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.
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.
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
We will be using the following free online textbook
Course Textbook (on Stepik)
Link: https://stepik.org/course/84164/syllabus
Additional Resources
Automate The Boring Stuff With Python by Al Sweigart (Optional)
Link: https://automatetheboringstuff.com/
Think Python (2nd Edition) by Allen B. Downey (Optional)
Link to pdf version: http://greenteapress.com/thinkpython2/thinkpython2.pdf
Link to HTML version: https://greenteapress.com/thinkpython2/html/index.html
NOTE: You need NOT purchase any textbook for this course! Readings will be assigned from the above FREE ONLINE TEXTBOOK and other online sources.
Our course website can be found here: https://sites.google.com/ucsd.edu/cse8afall2024/
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!
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.
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. When posting a question on Piazza, make sure to select the appropriate folder for your question. For example, if you have a question on Exams, you should select the Exams folder.
There are two high level course components in CSE 8A
Lectures will consist of active learning, where you will work alone and in groups to solve problems and answer problems. Discussions will be problem solving sessions where we will be solving worksheet problems. 10% of your grade will be from lecture and discussion participation (7% for lectures and 3% for discussions), so attending lectures and discussions regularly and engaging with the activities will be key.
➡️Lecture participation will be recorded via webclicker that you will fill out during lecture. You must submit these questions during lecture. You must attend the lecture you are signed up for. If you are unable to attend a lecture, please make sure to watch the lecture recordings on your own. You will not be able to receive credit for lecture participation through watching lecture recordings. You can miss up to 4 lectures without any penalty.
➡️Discussion participation will be recorded via completed worksheets submitted on gradescope. You must submit the worksheet at the end of the discussion. You may attend any of the three discussion sections. If you are unable to attend a discussion, please make sure to watch the discussion recordings on your own. You will not be able to receive credit for discussion participation through watching discussion recordings. You can miss up to 2 discussions without any penalty.
Our lecture schedule is as follows. All times are in Pacific Time (PT).
Lecture A00: Tuesdays and Thursdays @ 9:30 AM — 10:50 AM at CENTER 115
Lecture B00: Tuesdays and Thursdays @ 11:00 AM — 12:20 PM at CENTER 119
Lecture C00: Tuesdays and Thursdays @ 2:00 PM — 3:20 PM at CENTER 115
All labs will happen on Wednesdays. There will be lab sessions starting as early as 8AM and the latest lab session will start at 7 PM. There will be a lab report that will be due every week at the end of each lab. Each lab section will be lead by TAs and tutors who will be helping you during the labs throughout the quarter. You are required to attend the lab you signed up for. Lab participation is worth 10% of your course grade. No labs will be dropped.
Lab participation will be graded on a three point scale:
Did not attend the lab nor submitted the report: 0 points
Attended and participated in the lab but did not submit the lab report: 1 point
Attended the lab and submitted the lab report but did not participate sufficiently during the lab: 1 point
Attended the lab, participated satisfactorily, and submitted the lab report: 2 points
You are allowed to make up for TWO missed labs throughout the quarter. If you miss a lab and would like to make up, you should do the following: 1) Submit the lab report on gradescope by EOD Friday (i.e., within 2 days after the missed lab) to receive the 1 point for lab submission, AND 2) Visit any of the TAs/tutors in your lab section during their office/tutor hours to explain your lab work to get the 2 full points for the lab by EOD Tuesday following the lab. You will not be able to make up for more than 2 missed labs.
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 Mondays. The review quiz will cover topics from the Stepik reading assignments, lectures, and discussions. You have to ensure that you do the readings and attend/watch lectures before taking the review quizzes. Review quizzes will be on Prairie Learn. Review quizzes must be done individually. There will be 8 RQs in total; no RQs will be dropped. You can attempt the review quizzes multiple times (before the deadline) until you get them correct!
There will be a total of 4 Programming Assignments (PAs) and 2 open-ended projects. The PAs will be 1 week long and the projects will be 2 weeks long. 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. PAs are worth 10% of your final grade and projects are worth 10% of your final grade. All PAs should be done individually! All PAs and projects will be counted towards your final grade. No PAs or Projects will be dropped.
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 1, 2024 @ 7:00 PM - 8:50 PM
Section A00 @ Center (CENTR) 101, Section B00 @ Center (CENTR) 115, Section C00 @ Center (CENTR) 119
Final Exam: Saturday, December 7, 2024 @ 11:30 AM - 2:30 PM
Location TBA
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.
The final exam is worth between 25%-35% of your grade. Your participation in lecture and discussion can make up to 10% of this grade. If you do not attend any lecture or discussion, your final will be 35% of your grade. If you come to every lecture and discussion, your final will be 25% of your grade. If you come to only 3% of the lectures and discussions, your final will be (35% - 3%) = 32% of your final grade.
Both the midterm and final exams will be held in-person.
There will be two skill demos in this course: a midterm and a final demo.
Midterm Skill Demo: Week 4
Midterm Skill Demo: Week 8
You must score an average of at least 55% in the skill demos to pass the class.
midterm_skill_demo_score = max(midterm_skill_demo_scroe, final_skill_demo_score)
If you score higher on the final skill demo, your final skill demo can replace your midterm skill demo grade. Note, that your final skill demo score cannot be replaced with midterm skill demo. Only your midterm skill demo can be replaced.
The skill demos will be held on Prairie Learn at the Triton Testing Center (TTC).
Details on scheduling your skill demos: (Updated on Oct 7th, 2024)
Skill demonstrations for this course will be administered by the Triton Testing Center (TTC) in the Computer-Based Testing Lab in AP&M B349. The TTC’s rules concerning testing are the rules for this course. You must schedule your skill demos in advance, and it is recommended that you do so as soon as possible. Scheduling for all skill demos is open. To schedule, visit prairietest.com and log in with your UC San Diego credentials. More information about testing policies and procedures can be found on the TTC’s website. You may also email tritontesting@ucsd.edu for assistance.
Please note that, if you plan to use OSD-approved accommodations for your skill demo, you will take it at the TTC’s Pepper Canyon Hall location. You must schedule your skill demo at least three days in advance through the RegisterBlast system.
Policies and Procedures for testing at TTC – AP&M.
A physical photo ID is required for testing. Electronic IDs and photographs of IDs are not accepted.
Students should arrive 5-10 minutes before their scheduled testing time. Testing starts promptly at the session’s indicated start time. Late arrivals will be admitted when staff are available and additional time will not be given.
All personal items must be stored in the lockers near the stairway and elevator before entering TTC – AP&M.
PAs and Projects: 20%
Participation (0 - 10%)
Lecture: 7%
Discussion: 3%
Labs: 10%
Skill Demonstrations
Midterm SD: 5%
Final SD: 5%
Exams
Midterm: 15%
Final: 25% - 35%
Prairie Learn Review Quizzes: 10%
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.
Final Letter Grade = min(Assignments Grade, Assessments Grade)
Assignments = Average(PAs, Projects, Labs, Review Quizzes, Participation)
Assessments = Average(Skill Demos and Exams)
Example:
If you average score on the assignments is 97% (A grade) and your average score on the assessements is 86% (B grade), then your final letter grade will be computed as follows:
Final Letter Grade = min(Assignments Grade, Assessments Grade) = min(A, B) = B grade
Each student gets four 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 two days late. You can only use a maximum of 2 slip days for any PA. No PA can be submitted more than 2 days late.
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 2 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. After 2 days no late PA submissions will be accepted.
Each student gets four free “slip days” that allow an automatic 24-hour extension on any project. You do not have to ask to use your slip days. Just submit your project after the deadline (but before 24 hours after the deadline) and it will be automatically deducted from your account. You may submit your projects up to two days late. You can only use a maximum of 2 slip days for any Project. No Project can be submitted more than 2 days late.
Once you use up your free slip days, you can still submit projects late but for each late day you will be docked 20% of the grade for that PA. You cannot submit a project more 2 than days late. For example, if you submit your project anytime between 12:01am - 11:59pm on the day after the project is due, your project 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 project is due, your project 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 project is due, your project will be graded for a maximum of 40% total points. After 2 days no late Project submissions will be accepted.
Each student gets eight free “slip days” that allow an automatic 24-hour extension on any review quiz. A link to a google form will be posted on Piazza for each review quiz due by 5pm of the original deadline. Just submit your assignment after the deadline (but before 24 hours after the deadline) and fill out the google form to have your slip days be deducted from your account. You may submit your review quizzes up to two days late. You can only use a maximum of 2 slip days for any review quiz. No review quiz can be submitted more than 2 days late.
If you enrolled in the course late, you will have until the end of Week 3 to submit any programming assignments or review quizzes that you may have missed before the time you enrolled in the course. For example, if you joined the course at the beginning of Week 2, then you may submit the Week1's PA1 and RQ1 anytime before the Friday of Week 3 (i.e., Friday, October 18th) to get credits for it. You will be expected to submit all the remaining course work starting from the time you are enrolled (in this example, Week 2) normally with other students.
You will NOT be able to make up any missed labs, discussion worksheet, and lecture participation.
To submit these missed assignments, please check for an assignment on gradescope that will be named as 'Late-Adds Only'. For example, PA1 (Late-Adds Only).
As a reminder, we drop 4 lectures and 2 discussions without any penalty and your missed participation points go toward your final exam. For more details on this refer to the Course Components section above. If you have any concerns at the end of the quarter due to this policy, feel free to bring it up to the instructors or TAs.
We, the course staff of CSE 8A, highly encourage you to collaborative work with other students in the class on labs and take home assignments. However, it is your responsibility to make sure you understand the concepts in assignments you collaborate on.
IMPORTANT: If you are collaborating with someone with the intent of copying code or review quizzes to get points, even though you may feel you are doing well, you may still end up failing the course if you do not do well on exams and skill demos.
You and a friend are working on a PA together. You two come up with different solutions, so you discuss, test, and see what works together.
You ask your friend to help you understand a problem you are stuggling with on the review quiz. You share your thought process with your friend and your friend helps you in overcoming your learning barrier.
“Alright, you take part 1 of the PA and I’ll do part 2 of the PA?” “Cool.”
Your friend completes the PA. You copy it and submit it as your own, and you do not understand it as your own, meaning you may fail the skill demos.
You are with a friend working on a review quiz. You just copy what your friend is writing down on the quiz, and you do not understand it on your own, meaning you may fail the midterm and final exams.
If you are found cheating, 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.
The basic rule for CSE 8A is: Start early! Work Hard! 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!
Collaboration is highly encouraged, however if you copy code from a friend or an external source without understanding it on your own, it will be considered cheating and you may be reported to the academic integrity office. If you’re unsure what counts as cheating, feel free to reach out to the instruction staff for clarifications.
Generative AI Policy
These following policies regarding generative artificial intelligence (AI) use apply only in CSE 8A, and may not necessarily apply in other classes at UCSD or reflect the university’s stance on AI use in education.
Can I use generative AI for assignments?
We will be providing you with an AI tutor that was specifically designed for CSE 8A. This AI tutor, powered by generative AI, can provide help with programming assignments, and guide you when you are stuck, but without giving you the answer directly. You will be allowed to use this AI tutor as much as you want!
If you use generative AI tools like ChatGPT, these tools will almost always give you too much of the answer, which will cause you not to learn. This will then cause you to do poorly on the skill assessments and exams, where you will not have access to generative AI. We recommend you use our provided AI tutor instead of ChatGPT, but if you decide to use any Generative AI aside from the AI tutor, we would like you to briefly cite how you used AI in a comment. This citation allows us to understand the role of AI in the learning process, and will not impact your grade. We also want to know why you turned to ChatGPT instead of the provided AI tutor, so that we can understand how to make the AI tutor better.
Finally, later in the class, we will be using Github Copilot as part of the class, and at that point you will be allowed to use Copilot.
Does that mean I can use generative AI to do all my assignments for me?
While we won’t consider the use of generative AI tools like ChatGPT a violation of academic integrity, we require that you can understand the material on your own. You can’t use AI during skill demos or during exams! If you do use AI to help you learn or complete assignments, be sure that you’re able to understand everything on your own. One of the best ways of ensuring this is to use our provided AI tutor instead of ChatGPT, since the AI tutor was designed specifically to teach you instead of giving you the answer.
How can I use generative AI to help me learn?
We highly recommend that instead of using outside tools like ChatGPT, you use our provided AI tutor. However, if you want to use ChatGPT, one way to approach using AI is to treat them like a friend in this class. For example:
You can ask an AI chatbot to explain a snippet of code to you, and you can ask follow up questions.
You can give an AI chatbot a snippet of code and an error message, and you can ask it to help you debug your program.
What should I be aware of when using generative AI?
While generative AI tools may seem intelligent, it is important to recognize that there are significant limitations, including but not limited to:
AI can make up facts and pretend to know things it doesn’t. Be sure to double-check any information it tells you if you’re unsure.
AI may be able to write code well, but don’t let this replace your own learning. Being able to read, write, and understand code on your own are critical skills for programmers.
I have other questions about using generative AI in CSE 8A.
We encourage you to ask any questions about our policies publicly on Piazza, or directly to the instructor or the TAs via email or during office hours. Figuring out how to work with generative AI is a new challenge for both students and educators, so we encourage you to have an open discussion about it!
UCSD provides additional resources for students about how to use generative AI in a way that upholds academic integrity.
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 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 in-person 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 Tutoring - Student Procedures 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.
AI Tutor: When working on Programming Assignments, you will have access to an AI tutor interface specifically designed for CSE 8A. You can ask this AI tutor for help while working on your programming assignments.
Email: If would like to discuss anything confidential with your instructors (e.g., personal issues preventing you from being successful in this course), then please email your instructors directly.
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/.
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.
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.
To further support our department’s commitment to diversity, equity and inclusion, we also offer a range of resources and initiatives that address the needs of our diverse community:
Website: https://cse.ucsd.edu/diversity_equity_inclusion
Office Hours: https://cse.ucsd.edu/diversity/dei-committee-faculty-mentorship-hours
Contact the committee: cse-dei-leads@ucsd.edu
The Office for Equity, Diversity, and Inclusion (EDI) is committed to building individual and departmental capacity to address barriers to success for our underrepresented faculty, staff, and students, to further efforts toward inclusive excellence and foster a more welcoming and supportive campus climate. EDI supports the campus community through a number of initiatives, programs, workshops and a variety of other resources.
“This public acknowledgment serves to honor and respect Indigenous peoples and their land on which our campus resides. UC San Diego was built upon the territory of the Kumeyaay Nation. From time immemorial, the Kumeyaay people have been a part of this land. Today, the Kumeyaay people continue to maintain their political sovereignty and cultural traditions as vital members of the San Diego community.”