class: center, middle name: title # CS 10C - Course Introduction ![:newline] .Huge[*Prof. Ty Feng*] ![:newline] .Large[UC Riverside - WQ 2026] ![:newline 6]  .footnote[Copyright © 2026 Joël Porquet-Lupine and Ty Feng - [CC BY-NC-SA 4.0 International License](https://creativecommons.org/licenses/by-nc-sa/4.0/)] ??? - Hi everyone, my name is Ty Feng - Welcome to CS 10C, the last course of the CS 10 series! - It's the second time that I'm teaching this course, and I'm very excited! --- # Who am I? ## At UCR... - 2025-present: **Lecturer** ## At UC Davis... - 2024-25: **Lecturer** ## Startup experience... - 2024-present: Created **[CourseAssist](https://courseassistai.com)** to support students with LLM-based course-specific tutoring ![:newline] ## Previously - 2024: **MS** at UC Davis *Research Areas: Computer Science Education, AI, HCI* - 2020-23: **Software Engineer** in industry - 2020: **BS** at University of Miami, FL ??? ![:newline] - Lecturer at UC Davis for a year - Startup founder: built CourseAssist to give students accurate learning support - Software engineer in the industry for a few years after undergrad at U Miami - I've learned a ton through these experiences, in terms of what is expected for a CS person to know to pursue a career in academia or in the industry. ![:newline] - I try to emphasize these aspects in my teaching; for example, by paying attention to your program implementations and your coding style, and not only on the correctness of your code. - As you can see, I've also gained experience in different settings: across industry and academia - It's something that I try to incorporate in my teaching --- # and the rest of the team... ## Graduate Teaching Assistants
Zhixu Li
zli538@ucr.edu
Sachin Chopra
sachin.chopra@email.ucr.edu
--- # and the rest of the team... ## Graders
Kevin Loritsch
klori003@ucr.edu
Luke Baring
luke.baring@email.ucr.edu
Alton Qian
alton.qian@email.ucr.edu
Rohan Bennur
rohan.bennur@email.ucr.edu
Adil Mohiuddin
adil.mohiuddin@email.ucr.edu
Dana Van
dvan037@ucr.edu
--- # Undergraduate Learning Assistants (ULAs) Get tutoring help from ULAs. Website: [ula.cs.ucr.edu/](https://ula.cs.ucr.edu/)  --- layout: true # Why CS 10C? --- ## Important steps in CS (undergrad) education  ??? - A few important steps in cs education: - Step 1: learning languages - Beginner programmer - Step 2: learning a bit of math, and a bit of hardware, but most of all DS and algo - Apprentice computer scientist - Step 3: learn more of the all stack: from theory, to software and all the way down to the hardware. And piece everything together in OS. - Computer scientist ![:newline] - why are DS and algos so important? - let's start with the slightly vain answer --- ## Why study data structures and algorithms? ![:newline 2]  ![:newline 2] - To get a job/internship as a software developer! ---  ??? - In the book, list of all the very important topics - Some of which you may have heard of already, or even practiced a little - In red, everything we will learn in this class alone; it's most of these topics! - All in first column - All in second column - Last three in third column ![:newline] - Now for the less shallow answer... --- Kernighan & Pike: > **Every program depends on algorithms and data structures**, but few programs > depend on the invention of brand new ones. ??? - A better answer is that: "every program depends on algorithms and data structures" - Learning tools to write programs - Brian Kernighan invented C language, among other things (was working at bell labs when they were inventing everything) - Rob Pike was also at Bell labs (created the Go language) -- ![:newline 2] ## Concrete objectives *(not in order)* - "Must know" data structures - Lists, queues, stacks, trees, graphs, hash tables, etc. - Typical algorithms - Sorting, graph algorithms - Algorithm analysis - Big-O - Intensive programming! - C++11 --- layout: true # Course structure --- ## Class .center.scriptsize[ | | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday | |--------|--------|-----------|-----------|-----------|--------|-----------|-----------| | Week 1 | | Lecture 1 | | Lecture 2 | Lab 1 | | Lab 1 Due | | Week 2 | | Lecture 3 | | Lecture 4 | Lab 2 (last day to drop) | | Lab 2 Due | | Week 3 | | Lecture 5 | | Lecture 6 | Lab 3 | | Lab 3 Due | ] ![:newline] .lcol[ ## Lectures - Focused on concepts - Supported by slides + whiteboard - Lots of example code ] .rcol[ ## Labs - Exercises for you to practice - Supported by TAs - Extension of lectures ] ??? - Please refer to syllabus to know the schedule in terms of topics that we will talk about throughout the quarter --- ## Assessment .lcol66[ - Mix of written assessment... - Written homework, exams, quizzes - ...and programming assessment - Programming homework and lab assignments ] -- ![:flush 1] ### Schedule - W1: We have the first lab this week - W2: Written HW 1 Assigned - W3: Written HW 1 Due; Prog01 Assigned - W4: Prog01 Due; Prog02 Assigned - W5: Midterm 1 on 2/5-6 - W6: Prog02 Due; Prog03 Assigned - W7: Prog03 Due; Written HW 2 Assigned - W8: Written HW 2 Due; Midterm 2 on 2/26-27 - W9: Prog04 Assigned - W10: Prog04 Due - W11: Final Exam ??? - You'll be busy every week on something different - Interleaving of written assessment and programming assessment --- ## Grading Breakdown - Labs: 10% (10 labs with the lowest score dropped) - grading is based on program correctness, code quality, and demos - you receive 4 bonus points if you demo your program to your grader during the lab - Quizzes: 10% (around 9 quizzes with the lowest score dropped) - checks your understanding of the prior week's lab and lectures - you will take the quiz on Canvas at the CS Test Center - schedule your quizzes in PrairieTest and take them on Monday or Tuesday - HW Assignments: 30% - 2 written assignments - 4 programming assignments - grading is also based on correctness, code quality, and demos - like the lab assignments, you will also receive 4 bonus points for demos - Exams: - 2 Midterms: 15% each - 1 Comprehensive Final: 20% - if you score <70% on the final, the highest course grade is a D+ ## Late Submission Policy Late submission for assignments will be penalized, unless you have a documented emergency due to illness or university-sponsored events. --- layout:false # [CourseAssist](https://app.courseassistai.com) We will use CourseAssist for question-answering and class communication this quarter. - The official AI tutor for this course - Trained on the course materials - Focus on learning, rather than writing code for you - Available when your TAs aren't - Course Chat - If you still need help after asking the AI Tutor, make a public post on Course Chat - You are highly encouraged to help each other by answering questions - TAs and I will monitor Course Chat and answer questions - AI may auto-reply if it knows the answer from previous Q&As - Accounts will be emailed to you this week. --- layout:false # Academic Integrity - It is your responsibility to follow the UCR Academic Integrity Policies and avoid cheating. - You should write each line of your program yourself, and you should know what it does and why it is there. - Copying code generated by artificial intelligence without proper citation is cheating. --- layout:false # Final words ## Course Syllabus Please read the syllabus carefully: [tinyurl.com/10cwq26](https://tinyurl.com/10cwq26) ![:newline] ## Important Websites - **Canvas**: [elearn.ucr.edu](https://elearn.ucr.edu) - You may find assignment due dates, announcements, and files here - **Course Website**: [cs.ucr.edu/~tyf/10c](https://cs.ucr.edu/~tyf/10c) - Check here for lecture notes - **Textbook**: [cs10c.gitbook.io](https://cs10c.gitbook.io) - Our online textbook - **Gradescope**: [gradescope.com](https://gradescope.com) - Where you will turn in your lab and homework assignments - **CourseAssist**: [app.courseassistai.com](https://app.courseassistai.com) - AI Tutor & Course Chat Discussions ![:newline] ## Disclaimer This class may be a significant step up from CS 10A/B or the CS 9 series! ![:newline] - Data structures and algorithms can sometimes be quite conceptual - Higher expectations regarding the quality of your code