Syllabus, CMPSC 9, Spring 2023
Basic Facts
- Course Web Site: https://ucsb-cs9.github.io/s23/
- Instructor: Richert Wang
- Please use Piazza for course related communication.
- Lecture: Tu Th 11am-12:15pm (CHEM 1179)
- TAs: (contact via Piazza)
- ULAs: (contact via Piazza)
- Lab (50 minute lab sections): Wednesdays 12pm, 1pm, 2pm, 3pm, 4pm, 5pm, 6pm, 7pm (SSMS 1303)
- Office Hours: See https://ucsb-cs9.github.io/s23/info/office_hours/
Required Resources
- Textbooks:
- “Problem Solving with Algorithms and Data Structures Using Python” - Bradley N. Miller & David L. Ranum, 2nd edition
Official UCSB Catalog Description
CMPSC 9: Intermediate Python Prerequisite: CMPSC 8 or ENGR 3 with a grade of C or better. Intermediate topics in Computer Science using the Python programming language. Topics include object oriented programming, runtime analysis, data structures, and software testing methodologies.
A few course policies in brief
- If you are registered for another UCSB course that overlaps with this one, you are responsible for any work or material you may miss. I am within my rights to not give credit on any work you miss as a result, and WILL NOT make accomodations.
- Collaboration is only permitted when specifically allowed for — otherwise, you must do your own work independently. Lab assignments and examinations must be done independently this quarter.
- I recognize that some absences (e.g. minor illnesses, mishaps, etc.) are unavoidable. Litigating whether each of these is “excused” or not isn’t a good use of anyone’s time, so instead we will drop the lowest two grades from everyone’s homework, and drop the lowest quiz. This way, absences (or failure to submit homework) does not unduly penalize your grade unless it becomes excessive.
- We will use the gradescope system this quarter for lab submissions, homework assignments, and quizzes. The final exam will be conducted in-person during the final exam time scheduled for this course unless stated otherwise. More instructions on Gradescope will be given in lecture and lab assignments.
- All regrade requests must be made on Gradescope and we will not consider a regrade request one week after the assignment grades are distributed back to students.
What this course is about
CS 9 serves as a continuation of material covered in CS 8: Introduction to Computer Science using the Python programming language. The target of this class is for non UCSB CS majors who will learn additional fundamental CS topics such as object oriented programming, algorithm runtime analysis, fundamental data structures, and testing methodologies. By the end of this course, students will understand tradeoffs between various data structures, their performance, and their implementation.
Learning the details of programming requires A LOT OF PRACTICE, like learning any new skill. Making mistakes is an essential part of learning as long as you learn from them! Questions like “I wonder what will happen if I do this…” or “How will Python behave in this case…” is a great way to investigate and observe the functionality and limitations of a programming language (there are many programming languages available to software developers and each have their specific pros and cons that may or may not be the best choice for the problems you are trying to solve).
I find the best way to practice is to rapid prototype constantly. Writing simple snippets of code to test and confirm your understanding allows you to 1) practice typing out code, which makes you more comfortable with the language and 2) solidify your understanding of the specific behavior of the programming language functionality.
We highly encourage all students to start all assignments and reading as early as possible, and invite all students to seek assistance during our lab sections / office hours when offered. Waiting until the last-minute to ask questions or provide clarifications may result in not receiving a response in time - please give us ample time to help you appropriately if needed.
Piazza Etiquette
Here are some general rules about Piazza, to keep it from getting cluttered, make sure you can benefit the most from having this forum, and to make it easier for us to answer your questions. Class communication will be done through this platform (reminders / announcements / etc). Note: all lab work in this course must be done INDEPENDENTLY (no group work).
In general, Piazza is not a substitute for lab sections / office hours, and we generally will not consistently check Piazza on weekends - the best feedback is given in lab sections / office hours.
But when you have a question and would like to post it on Piazza:
- Search through existing Piazza questions to make sure your question hasn’t been answered before.
- Use the filters (lab, lecture, logistics) to navigate between questions easily.
- If you believe that other students will benefit from the answer, make the question public. Else, make it private.
- Please DO NOT post your code (even if incorrect) in your public questions at any time including past the deadlines. Snippets of code are generally fine, but should be framed in a generic way not specific to the lab or your unique solution.
- We do our best to get to your questions answered in a timely manner. However, if you find a question that you can help with, please do! We encourage students’ participation in answering questions.
- Remember that Piazza has a feature that will allow you to post anonymously - this will not reveal the author of a question/contribution to other students (but will be known to the course staff).
Course Grades
Letter grades will be determined by the end of the course after all labs, homeworks, quizzes, and final exam have been computed. I can say that I will not grade harder than a traditional straight scale (90% = A-, 80% = B-, etc.). However, I will adjust the letter grades accordingly based on your overall performance at the end of the course. If you are concerned about your grade in the class, I encourage you to discuss the matter with me during my office hours. Please come talk to me sooner rather than later so there can be some time where we can help you succeed in the course.
Your course grade will be determined as follows:
Grade Item | Percentage of Final Grade |
---|---|
Academic Integrity Contract | 1 % |
Quizzes (Fridays, Week 2,4,6,8,10) | 30 % |
Final (Wed 6/14), 12pm - 2pm | 40 % |
Homeworks | 9 % |
Labs | 20 % |
In general, homeworks will be assigned periodically throughout the quarter and should be completed on Gradescope by the due date.
There will be labs assigned throughout the quarter. These labs are autograded and your score is based on Gradescope’s recorded score. Lab sections and office hours are available to ask questions and seek assistance. Please be sure to check the due dates for all assignments on the course page and calendar.
Late work
I will consider late submissions / accommodations only for medical or family emergencies where documentation can be provided. This does not include overwhelming workload from other courses, scheduling conflicts, technical difficulties, or vacation plans. The course policy of dropping two lowest homeworks and one quiz is in place to accommodate any unfortunate situation where no form of documentation can be provided.
- The lowest quiz score will be dropped. There will not be any make ups for quizzes.
- Two of the lowest homework scores will be dropped.
- Late homework submissions will not be accepted. However, even if you know you will not be able to submit a homework on time, I highly encourage you to complete it anyways since the homeworks will help prepare you for the quizzes and final exam.
- All labs must be submitted by the Sunday due date. There will be a 24-hour late window open on Gradescope for each lab. Submissions during the late window period will have a 20% deduction from your grade. We will only consider your most recent submission.
- I assign labs on Sundays and have them due the following Sunday (unless stated otherwise).
- I have considered making labs due on Fridays instead of Sundays, but decided to provide the weekend for extra flexibility to students that need it.
- However, I will treat the Friday before the Sunday lab deadline as a soft deadline. Always aim to complete your lab assignments by the end of Friday.
- I will not consider any accommodations (even for emergencies) after the soft deadline. You may still submit a lab over the weekend before the end of Sunday without a late penalty, and you can still make a submission during the late window with a 20% penalty.
- I highly encourage students not to wait until the last-minute to complete lab assignments. We will not be available to provide assistance over the weekend, and there is a risk of encountering technical difficulties (internet outages for example) that prevent an on-time submission. Please plan accordingly.
- I assign labs on Sundays and have them due the following Sunday (unless stated otherwise).
Accommodations for disabilities
Students with disabilities may request academic accommodations for exams online through the UCSB Disabled Students Program at http://dsp.sa.ucsb.edu/. Please make your requests for exam accommodations through the online system as early in the quarter as possible to ensure proper arrangement.
Managing stress
Personal concerns such as stress, anxiety, relationships, depression, cultural differences, can interfere with the ability of students to succeed and thrive. For helpful resources, please contact UCSB Counseling & Psychological Services (CAPS) at 805-893-4411 or visit http://counseling.sa.ucsb.edu/.
Responsible scholarship
Honesty and integrity in all academic work is essential for a valuable educational experience. The Office of Judicial Affairs has policies, tips, and resources for proper citation use, recognizing actions considered to be cheating or other forms of academic theft, and students’ responsibilities, available on their website at: https://studentconduct.sa.ucsb.edu/academic-integrity. Students are responsible for educating themselves on the policies and abide by them.
Furthermore, for general academic support, students are encouraged to visit Campus Learning Assistance Services (CLAS) early and often. CLAS offers instructional groups, drop-in tutoring, writing and ESL services, skills workshops and one-on-one consultations. CLAS is located on the third floor of the Student Resource Building, or visit http://clas.sa.ucsb.edu
Standard Disclaimer
This syllabus is as accurate as possible, but is subject to change at the instructor’s discretion, within the bounds of UC policy.