UCSD CSE8A SSII 2024 Introduction to Python
- Edwin Solares (Instructor)
Basics - Schedule - Course Components - Staff & Resources - Grading - Policies
This web page serves as the main source of announcements and resources for the course, as well as the syllabus.
Basics
-
Lecture:
- In person: Franklin Antonio Hall 1011, Mon-Thurs (9:30am-10:50am)
- Remote: Discord #livestream channel 11:00am-12:50pm. Recordings from A section available after via Podcasts.
-
Discussion:
- In person: Franklin Antonio Hall 1450, Mon (11:00am - 12:50pm)
- Remote: Remote: Discord #livestream channel Tuesdays @ 9:00am-10:50am. Recordings available from A sections via Podcasts.
-
Labs:
- In person: Computer Science Engineering Basement B260 Wednesday (11am or 1pm)
- Remote: https://ucsd.zoom.us/j/92177661143 Wednesday (3pm or 5pm)
-
PA's/Homework:
- Prairie Learn Link - Under the homework section (autograded)
-
“Skill Demonstration” Exams: Flexible scheduling in weeks 2,3,4 and 5
- Prairie Test Link - signing up and taking the skill demos (autograded)
- In person: Register TTC slots via Prairietest link above
- Remote: Register via Remote zoom slots via Prairietest link above
-
Final Exam (used for making up test credit): Flexible scheduling on week 5. Maximum of 1 Make up for Skill Demos.
-
Podcasts: podcast.ucsd.edu
-
General Class Q&A Forum: Discord link on Canvas!
-
Code Q&A Forum: Piazza
-
Gradescope: https://www.gradescope.com
-
Textbook/readings: There's no official textbook, but we will link to different online resources for you to read to supplement lecture. There are a few good general overall resources if you want others to peruse, but these aren't required:
- Intro to Programming in Python by Soosai Raj, et al. Available for free on Stepik (requires you to create an account).
- Learn AI-Assisted Python Programming by Porter and Zingaro. Available for free as an eBook through the UC San Diego library (requires SSO).
Office Hours Calendar
Schedule
The schedule on the sidebar outlines topics, due dates, and links to assignments. The schedule of lecture topics might change slightly, but I post a general plan so you can know roughly where we are headed.
Syllabus
There are several components to the course:
- Lecture sessions
- Weekly quizzes
- Weekly Homework
- Weekly Lab sessions
- Lab reports
- Skill Demonstrations
- Project
Homework
Homework is released on a platform called PrairieLearn, and will generally consist of programming exercises and multiple choice questions. They are due the Sunday after they are released.
Labs
The course's lab component meets for 2 hours. In each lab you'll switch between working on your own, working in pairs, and participating in group discussions about your approach, lessons learned, programming problems, and so on.
The lab sessions and groups will be led by TAs and tutors, who will note your participation in these discussions for credit. Note that you must participate, not merely attend, for participation credit. Furthermore, if you do not finish all PrairieLearn tasks by the end of lab, you will have until the day to complete those tasks for lab credit. PrairieLearn tasks and participation both equally contribute to your lab grade.
If you miss lab, you'll still be held accountable for understanding the relevant material via Skill Demonstrations and Lab Reports. You can miss 1 labs without it impacting your grade (see Grading below). There is no way to make up a lab, even for illness, travel, or emergencies. My preference would be to require all 5 labs for an A, and have some kind of excused absences. However, tracking excused absences doesn't really scale, so the “one for any reason” policy is how we handle it. You don't need to justify your missed labs. Contact the instructor if you'll miss more than 1 labs for unavoidable reasons.
Lecture Sessions
Lecture sessions are on Monday through Thursday.
For In-Person students: Lecture will take place Mondays-Thursdays at 9:30am at Franklin Antonio Hall 1101. Discussions are at 11am on Mondays at Franklin Antonio Hall 1450.
For Remote students: Livestream will be available Monday-Thursday at 11:00am for lectures. Discussions are on Zoom on Tuesdays at 9am.
In each lecture, we'll have a paper handout (also available electronically) starting Week 1 Tuesday. At the end of lecture you'll have a chance submit your handout to Gradescope. You can do this by scanning it in the Gradescope app (for iOS and Android) or through the web interface. To get participation credit for lecture, you have to submit a handout filled in with reasonable effort. It's fine if answers aren't right, and some days don't have right answers. It's fine if things aren't totally complete, and some days we won't finish everything. But it should be clear from what you submit that you followed along and worked on the exercises we did in class.
If you miss class, you can submit them up until the start of the next class as late submissions. We recommend completing them while watching the podcast. We'll have TAs on hand as backup to collect the physical paper/help you scan and submit if you have any issue submitting. See Grading below for the required submissions and how that impacts your grade.
Discussion
Discussions will take place on Mondays at 11am and are led by your teaching assistants. The purpose of discussions is to review materials covered in lecture, labs, homework, and previous skill demos. There will also be extra coding exercises covered as well. This is the time for you to ask the teaching staff to clarify any questions you may have about the material. Starting from week 2, participation in discussions is mandatory and contibutes towards your Discussion and Lecture Participation grade.
Weekly Quizzes
Each week there will be an online quiz on PrairieLearn. The purpose of this quiz is to make sure everyone has checked in on the concepts we will be using in lab on Wednesday and Thursday. They are open for late submission until the end of the quarter, but see grading below for how late submissions correspond to grades.
Sometimes quizzes have associated readings or videos to supplement lecture.
Each week there will be an online, untimed, multiple-tries quiz due on Wednesday at 9 am.
Skill Demonstrations
Several times during the quarter, you will complete a skill demonstration via PrairieTest -- this course's version of exams. While skill demos are not explicitly cumulative, topics in programming do build on previous ones, so it is important to remember concepts from earlier in the class.
Rules:
- During your skill demo, you cannot ask any questions related to the content of the exam. However, you may ask questions related to getting set up on your lab computer and opening the exam. During the exam, you are not allowed any resources besides the notes sheet. Communication with other students is also not allowed.
- During week 5, you'll have the opportunity to improve scores for one skill demonstrations. Sign ups for these make up skill demos will be released during week 4. If you miss the skill demonstration for any reason, it counts as a Try Again.
There will be skill demonstrations in weeks 2, 3, 4, and 5 of the quarter. More details about how you'll complete them will be shared in lab.
Skill demonstrations will take place in CSE B250 for Section A (In person section) and on Zoom for Section B (Remote section), unless you have an AFA letter. You must schedule a time to take your exams in advance. To do this, visit prairietest.com and log in with your UCSD-associated Google account. From there, you will be able to see the exams available for reservation. Scheduling of exams will open on every Friday starting week 1.
Students requesting accommodations for this course due to a disability must provide a current Authorization for Accommodation (AFA) letter (paper or electronic) issued by the Office for Students with Disabilities (osd.ucsd.edu). Students are required to discuss accommodation arrangements with instructors and OSD liaisons in the department IN ADVANCE of any exams or assignments. Students with approved accommodations will be taking their exams at the Triton Testing Center. Exams must be scheduled at least 72 hours in advance at http://tritontesting.ucsd.edu.
Project
Details to be announced later in the quarter.
Grading
In order to get an A in the class it is recommended that you get an A in each component of the course. A+'s will be assigned at the end of the quarter and only to students showing exemplary accomplishments across all components of the course, and have shown strong collaboration with their peers.
A table that contains the grading scheme data. Each row contains a name, a maximum percentage, and a minimum percentage.
Letter | Grade Range |
---|---|
A | 100% to 94% |
A- | < 94% to 90% |
B+ | < 90% to 87% |
B | < 87% to 84% |
B- | < 84% to 80% |
C+ | < 80% to 77% |
C | < 77% to 74% |
C- | < 74% to 70% |
D | < 70% to 60% |
F | < 60% |
** A+'s will be assigned to those that performed exemplary throughout the quarter at the instructors discretion ** If a student fails to get 55% at any category (shown below) of the class, it will result in an F for the course.
The weighted breakdown of each category is as follows:
Category | Percentage |
---|---|
Discussion and Lecture Participation | 5% |
Quizzes | 15% |
Homeworks | 10% |
Project | 15% |
Skill Demos | 40% |
Lab | 15% |
Policy
Academic Integrity
Individual assignments describe policies specific to the assignment. Some general policies for the course are here.
Artificial Intelligence
You can use an AI assistant like ChatGPT or Copilot to help you write code in this class. If you do, you are required to include a section that shows:
- The prompts you gave to ChatGPT, or the context in which you used Copilot autocomplete
- What its output was and how you changed the output after it was produced
This helps us all learn how these new, powerful, and little-understood tools work (and don't).
Skill Demonstrations and Academic Integrity
Instructions for skill demonstrations will be posted in the week before they happen. You're free to collaborate with others on preparing for the skill demonstration, trying things out beforehand, and so on.
As a reminder, you are ONLY allowed the following resources during the skill demo:
- One sheet of notes (printed or handwritten).
- Python docs, which are provided as a link within PrairieLearn.
You are NOT allowed to utilize any other resources, especially the following tools during the skill demo:
- Internet (besides Python docs)
- AI tools, such as ChatGPT
- Google Colab
- Collaboration with other students
If you are unsure of whether a resource is allowed, please ask!
If you use ANY unauthorized resource, you will receive a 0 on your assessment, your exam will be will be terminated, and you will potentially receive an F in the class and be referred to the Office of Academic Integrity.
You cannot share details of your skill demonstration with others until after you receive your grade for it. You cannot communicate with anyone during the skill demonstration.
For remote students:
- We will be enforcing having your video camera on during the skill demo. If your laptop does not have a working camera, then please also join the Zoom meeting using your phone in addition to your laptop.
- We will require you to show all your windows on your laptop, your sheet of notes, and your environment and background before being checked-in.
- Failure to comply will result in a no-show, and the student will not be checked-in and not be allowed to take the skill demo.
Quizzes and Academic Integrity
You can work on weekly quizzes with other students.
Anticipated Frequent Questions
Can I attend a lab section other than the one I'm enrolled in?
No, please do not try to do this. The lab sections have limited seating and are full. We cannot accommodate switching.
How can I switch sections?
You have to drop and re-add (which may involve getting [back on] the waitlist). Sorry.
What do I need to do to get an A?
See the grading section above.
Can I leave lab early if I'm done?
The labs are designed to not be things you can “finish”. Labs have plenty of extension and exploration activities at the end for you to try out, discuss, and help one another with. Co-located time with other folks learning the same things is precious and what courses are for. Also, if you need an extrinsic motivation, you won't get credit for participation if you don't stay, and participate, the whole time.
Do I have to come to lab?
Yes, see grading above.
What should I do if I'm on the waitlist?
Attend and complete all the work required while waitlisted (this is consistent with CSE policy).
I missed lecture/have to travel for a lecture, what should I do?
Find the associated handout for the week above, watch the podcast, and hand in a scan/digital PDF of the handout to Gradescope before the next class.
I missed the late deadline for a lecture handout submission, what should I do?
You cannot submit a lecture handout after the posted deadline on Gradescope; move on and focus on getting to the next ones!
I missed lab, what should I do?
You cannot makeup missed lab credit (but have a few “allowed” misses). Make sure you understand the material from lab because it will be used on skill demos and lab reports; try to do the parts that don't involve discussion on your own, and review your group's lab notes.
I missed a quiz deadline, what should I do?
You can submit it late until the end of the quarter. Generally we allow lots (think like 1/3 to 1/2) of the quizzes to be late without it impacting your grade, but do take them seriously before lab so you're prepared.
I missed my skill demonstration time, what should I do?
You will need to use your 1 make-up. No other make-ups are allowed. Scheduling: Make-ups will be available in week 5.
Where is the financial aid survey?
We do this for you; as long as you submit a quiz, lecture handout, or do a lab participation in the first week, we will mark you as commencing academic activity.
Week 1 – GitHub, PrairieLearn, Variables, String Functions and Operators
Lecture Materials
- Monday Lecture & Discussion Notes (PDF)
- Monday Colab Notebook
- Tuesday Slides (PDF)
- Tuesday Lecture Handout (PDF)
- Wednesday Prints&BasicArithmetic Colab Notebook
- Wednesday Prints&BasicArithmetic2 Colab Notebook
- Wednesday Swapping&MoonWeight Colab Notebook
- Wednesday Lecture Handout (PDF)
- Thursday Input&Output Colab Notebook
- Thursday Lecture Handout (PDF)
- Thursday Slides (PDF)
Part 1: Getting to Know Your Peers, Ice Breaker Activity (5 mins)
We will split into groups of 3-4 students. Choose your groups wisely, as these are your groups for the rest of the quarter! You will have a tutor or TA assigned to your group for help.
In your groups, share:
- How you'd like people to refer to you (pronounce your name/nickname, pronouns like he/her/they, etc)
- Your major
- One of:
- A UCSD student organization you're a member of or interested in
- Your favorite place you've found on campus so far
- A useful campus shortcut or trick you know
- Your answer to the following question. Discuss why you chose that answer.
Part 2: Setting up a GitHub Account
Having a professional portfolio website for yourself can be useful in many, many ways. It's a useful URL to put at the top of your resume/CV where potential employers can learn more about you. Lots of great work in CS is published only on someone's personal page, or is at least most accessible there. Most CS faculty have such a page (just a few examples from new CSE faculty), for example.
Github (https://www.github.com) is a web service for storing and
sharing code, along with a huge number of services surrounding that code. It
uses a tool and protocol called git
https://git-scm.com/ to store and
retrieve that code.
If you do not have a GitHub account already, please go ahead and create one now! Ask your TAs and tutors if you have any questions about setting it up.
Part 3: GitHub Codespaces
GitHub Codespaces is a great way to quickly set up a programming environment directly from GitHub.
Important Note: Make sure you apply for your Github Student Account in order to get access to the codespaces (which comes with the GitHub Student Developer Pack). You can sign up here! This may take a few days, so if you are not yet approved, you will not be able to create a Codespace this week. However, please make sure to apply for it today, since we will be using Codespaces in the future.
Once you have set up Codespaces, go to this repository on GitHub. Click “<> Code”, click then "Codespaces", then "Create codespace on main". Now, you have a full programming development environment, which you can use to edit files and run code!
Part 4: Introduction to PrairieLearn
PrairieLearn is an platform where you will be completing programming assignments and skill demonstrations. For today's lab, log into PrairieLearn. You will need to make an account if you haven't done so already! Make sure to select CSE8A SSII2024 when you enroll.
Navigate to the CSE 8A course and click on "Lab 1". There are several questions to work through, which you may do in pairs. As always, ask your tutors or TA if you have any questions!
Lab Tasks
Navigate to PrairieLearn and begin the Lab 3 tasks with your group!
Week 4 – File I/O, Dictionaries, and Tuples
Todo
- Quiz 3 us.prairielearn.com
- HW 4 us.prairielearn.com
Lecture Materials
Discussion Materials
Colab Notebooks:
Lab Tasks
Navigate to PrairieLearn and begin the Lab 4 tasks with your group!
Week 5 - Object Oriented Programming and Classes
Todo
- Quiz 4 us.prairielearn.com
- HW 5 us.prairielearn.com
- Spotify Group Project Github link
Lecture Materials
Discussion Materials
Lab Tasks
Navigate to PrairieLearn and begin the Lab 5 tasks with your group!