Course Information

Table of Contents


COURSE DESCRIPTION

The Post-AP Computer Science course is designed for highly motivated students who have successfully completed introductory and AP-level courses. It leverages the Python programming language, renowned for its versatility across various domains, to deepen students’ engagement with real-world technological applications. The realm of Data Science is explored first, where Python libraries like Pandas, NumPy, Matplotlib, and Seaborn are used to wrangle vast collections of data, perform statistical analyses, create visualizations, and interpret trends. Students choose datasets to investigate, perform Exploratory Data Analysis experiments, and assemble the results into a formal research poster. The focus of the course then shifts to using Python for Web Development, particularly in creating dynamic server-side applications through the Flask framework and handling SQL database interactions. By learning how to integrate Python logic with HTML web pages, students bridge the gap between backend data processing and frontend user interfaces. Projects range from simple interactive applications, like personal blogs and to-do lists, to more complex ones, like live data dashboards. Finally, students explore the forefront of technology through modules on Machine Learning and Artificial Intelligence. By the end of the course, students will have developed a robust portfolio of programs that demonstrate their advanced coding skills and readiness for future challenges in the world of technology.


Assignments & Grading

PROJECTS (40% of overall grade)

  • 💻 Projects serve as the bulk of our coursework. There will be one major coding project assigned per unit that we will work on in class over several weeks.
    • These projects have minimum requirements to test your technical skills, but are largely graded on your 🎨 creative effort!
  • Projects follow this workflow:
    1. A link to a GitHub template repository will be provided as starter code. A repository, or “repo,” is like a 📂 project folder that contains several code files.
    2. You will write your code in the GitHub Codespaces IDE. An IDE is an “Integrated Development Environment,” which means an application (or web-app) where you can write and run code.
    3. Your completed project will be submitted on Blackbaud by copying your 🔗 repository link.
  • Projects are graded on a 5-point scale, and EXTRA CREDIT is always available to encourage effort and creativity. See the rubric section below for details.
PROJECT GRADING RUBRIC

Programming projects are evaluated via a qualitative system considering a program’s efficiency, legibility, correctness, completeness, comments, etc. The grading rubric employs a 5-point scale. The overall assignment score is then adjusted to be out of 10 points, such that students earn a baseline grade of 50% ("scaled zero"). Extra credit may be awarded for exceptional effort!

EVALUATION SCORE PERCENT
A submission that exceeds standard expectations, often reflecting additional work beyond the requirements or gets the job done in a particularly elegant way. Rarely awarded, but well-earned. 6/5 110%
A submission that satisfies all the requirements for the assignment and demonstrates sufficient effort. It reflects solid understanding and a job well done. 5/5 100%
A submission that meets most of the requirements for the assignment, possibly with a few small problems. Alternatively, it may meet all of the base requirements but through a "bare minimum" effort. 4/5 90%
A submission that has several problems that cause it to fall short of the requirements for the assignment. It may also demonstrate some misunderstanding of the underlying concepts. 3/5 80%
A submission that has extremely serious problems (i.e. the program does not compile or run), but nonetheless shows some effort and understanding. 2/5 70%
A submission that shows little effort and does not represent passing work. 1/5 60%
Work that fails to demonstrate understanding and/or has insufficient evidence of individual work may be graded as low as scaled zero (50%). Missing assignments also receive a scaled zero (50%). 0/5 50%
  • 💯 GRADE IMPROVEMENT POLICY: You may re-submit projects for a full RE-GRADE, but you must email me to let me know which project, and it must be completed at least one week BEFORE the end of the current quarter.
    • When re-working your projects, you are encouraged to come to office hours for help or additional feedback. I am way more likely to grade your work favorably if you have shown effort towards improving your skills…
    • Coding is an iterative process which means it is VERY normal not to have your programs working perfectly the first time! Programmers often have to edit their code many times.

📧 You must SEND ME AN EMAIL whenever you update or resubmit a project, especially after the assignment has been graded on Blackbaud! Otherwise I will not be notified.

HOMEWORK (30% of overall grade)

  • 💬 Homework is assigned in the form of a CodeCollab: like posting on a discussion board, but instead of talking about a book or article, the class has a shared goal of figuring out how some 🔍 mystery code 🔍 works.

  • Homework assignments follow this workflow:

    1. At the beginning of each week, I will post a DISCUSSION assignment on Blackbaud that includes a GitHub repository link to a working program that you will analyze collaboratively.
    2. You will “fork the repository” (make your own copy of the program) to run it, experiment with it, and figure out how it works.
    3. To earn full credit, you must post at least two (2) comments: one main post, and one response to a classmate. See our course website’s CodeCollab Instructions page for detailed guidelines.

CodeCollabs are always due on Fridays @ 11:59PM

  • LATE HW GRADING PENALTIES: Late homework will recieve no penalty if submitted within one week of the deadline, a 5% deduction if submitted in the 2nd week past the deadline, and a 10% deduction if submitted later than 3 weeks.

📧 You must SEND ME AN EMAIL whenever you submit homework late, especially after the assignment has been graded on Blackbaud! Otherwise I will not be notified.

CLASSWORK (30% of overall grade)

  • 📝 Classwork involves a mix of note-taking lessons and interactive coding activities.
    • 📓 Notes: Each unit begins with a series of tutorial-style lessons where you will write code alongside the instructor, learning new concepts through practical demonstrations while building your own working program to use as a reference.
    • 🎯 Activities: Between note-taking sessions, you will also be tasked with coding exercises that provide you opportunities to check your understanding, play around with new skills, think creatively, practice debugging, solve challenges, and collaborate with peers. Think of these activities as mini-projects.

Expect at least one classwork-type assignment to be graded each week: Either a “note check” to confirm you are caught up on new material, or a completion grade for a coding activity. It should be easy to get 100% in this category if you are engaged during class!

‼️ If you are ABSENT, you are expected to take initiative to catch up on any missed classwork! Everything we cover in class is on the course website. Refer to the Blackbaud classwork assignment each week to see which 📓 note sections were covered or which 🎯 activities need to be completed.


Expectations & Policies

AI Usage Policies

  • Generative Artificial Intelligence (GenAI) tools like ChatGPT are a significant technological advancement that has the potential to support your learning, especially in Computer Science. But with any new technology, there are significant limitations and risks associated with its use, misuse, and overuse. Source
  • To support appropriate use of GenAI tools in your learning, these three steps should always be taken when determining if and when to use GenAI tools:
    1. Check with your teacher if the task or assignment can be completed with the support of a GenAI tool.
    2. If the tool is allowed, track your conversation with the tool by screenshotting or copy-pasting the interaction in a document that you can share with your teacher.
    3. Cite the use of the tool when submitting your work. Here is an example with APA style formatting: OpenAI. (2023). ChatGPT (Mar 14 version) [Large language model]. https://chat.openai.com/chat

If these steps are not followed, your use of GenAI will be considered an academic integrity violation.

EXAMPLES OF AI USE

These examples are specific to my Computer Science classes and are subject to change as we explore appropriate AI usage throughout the year. Rule of thumb: Always check with your teacher before using GenAI tools!!!

Appropriate Use Inappropriate Use
  • Help brainstorm creative ideas
  • Explain concepts in a different way
  • Critique and provide feedback on code
  • Teach how to add a new, specific feature to an already working program
  • Completing any written assignments, like homework discussions
  • Asking GenAI to write a significant portion of code for a program
  • Copying any amount of code without understanding how it works
  • Not asking for permission to use GenAI tools, not checking for inaccuracies, and not citing work with GenAI

Community Values

  • As a member of our class, it is important to be mindful of these 3 key values: be PREPARED, ENGAGED, and RESPECTFUL.
    • Being prepared for class means you have your laptop ready (unless otherwise instructed) within the first 5 minutes of class. It also means you arrive with a positive attitude and are ready to learn!
    • Show you are engaged by volunteering answers/comments, staying on task, and completing classwork as directed. You are expected to take your own notes while new material is being introduced, to contribute during group activities, and be open to collaborating with all classmates.
    • Being respectful of your community means being mindful of and kind toward your environment, and the people within – this includes arriving on-time to commitments.

⏰ If you are over 5 minutes late, you must first get a LATE PASS from the Upper School Office and then enter the classroom QUIETLY as to not disrupt the class.

Other Classroom Policies

  • 🗓️ Office Hours / Extra Help is held in Room #71 during TBD .
    • Drop-ins are welcome, meaning there is no need to let me know in advance if you want to stop by during those periods.

You may email me to schedule an appointment at a different time, ONLY IF you have other classes during my scheduled office hours. Include a list of your free periods in your email!

  • 📝 You can leave a sticky note on my desk for anything you want me to remember to do.
    • Ex: “Please re-grade my Unit 1 Project”
  • 🖊️ Student supplies (pens, pencils, sticky notes, etc.) will always be available to borrow, located up front by the whiteboard.
    • No need to ask, but please return pens/pencils after class!
  • 🤞 SILENTLY SIGNAL that you need to leave for the bathroom or water by holding up crossed fingers.
    • Just make sure I acknowledge you are leaving the room first!
  • 📱 NO-PHONE ZONE! → as per the new BWL Upper School policy, phones must be locked up downstairs while you are in the building.
    • If you are caught with a cell phone in class, it will be confiscated immediately and you will be sent to the Upper School office.
  • 🖥️ Using your personal LAPTOP is a privilege.
    • If you are caught using your laptop for things like iMessage, Discord, Snapchat, etc., you will be required to use the DESKTOP COMPUTERS in the classroom for a period of time.
  • 😊 Common courtesy stuff:
    • Student actions that interfere with teaching or learning in the classroom will NOT be tolerated. Please do not spend your class time on distracting apps, having side conversations, or doing work for other classes.
    • Respect others’ property. Avoid touching or writing on anything that does not belong to you (including tables, books, teacher’s belongings, walls, etc.)
    • Please pick up after yourself, don’t leave trash 🗑️ behind, and don’t expect that other people (like your teacher) will clean up your messes.

🧠 Finally, some mindset tips: I strongly encourage you all to be proactive about your learning, embrace creativity, take responsibility for your work, and never be afraid to ask for help!!! There are no bad questions, and chances are if you are wondering about it, someone else in the class is too. If you feel most comfortable waiting until after class, that is okay, but do keep communication open between us.