This course provides a challenging introduction to some of the core theoretical ideas that underlie the computational sciences. Through successful completion of this course, you will:


Course Materials

There is no required textbook for the course. However, there are several recommended books that some students may find helpful:


Communication expectations

All written communication regarding this course will take place via slack. This includes:

Even if you’re not used to slack at first, it’s not too hard to learn. The advantages of having all course communications in one place are compelling. Use slack!


What We’ll Cover

What We Won’t Cover

This course assumes that you have a solid foundation in computational thinking, either through successful completion of CSC110, high school curriculum at at AP or IB level, or dedicated self-study. We also assume that you are familiar with logical reasoning and writing proofs, to the degree that it is covered in courses like MTH153: Discrete Mathematics. Check out the following links to supplemental online courses through LinkedIn Learning if you’d like some additional support, which are available for free to all members of the Smith community:


Class Mechanics

We will discuss concepts using blackboard annotations as well as projected presentations, animations, and videos.

Optional readings will be available and are recommended material before each designated lecture. This will help prepare you for the day’s discussion.

Friday classes will be used to practice the techniques seen during the week by solving exercises and discussing subjects that remain confusing. This will include a weekly Understanding Check – a low-stakes, in-class exercise designed to see how weel we are able to transfer the week’s topic to new (but similar) problems.

Note: class participation is important, as the class will include discussion and debate about many of these topics.


Assignments

There will be 10 8 problem sets assigned during the semester. Problem sets will be due before class on Fridays. These problem sets will often ask you to prove theorems, but it is more important to demonstrate understanding than to employ rigor for rigor’s sake. For example: a brief description of an algorithm including an illustrative diagram is better than complicated spaghetti code. Additionally, a clear explanation of how you tried to solve a problem and were unsuccessful will receive partial credit.

Use the following checklist to guide your answers:

All assignments must be submitted in PDF format, and should be organized and legible (typed is preferable). For convenience, a LaTeX template will be provided for each assignment.


Collaboration and Academic Integrity

Students are strongly encouraged to form study groups and to collaborate on problem sets, though each student will be required to write up and submit their solutions independently. The following information is required for all submitted work:

  1. The names of all collaborating students be listed at the top of the submission. If you worked alone, please state: “I did not collaborate with anyone on this assignment.
  2. A “References” section, with in-line citations to any resources you used. Citations should include page numbers (if a printed resource) or a direct URL (if an online resource). If you did not use any resources in completing the assignment, please state: “I did not utilize any external resources in completing this assignment.

Use of AI Tools with Attribution

In this course, students are permitted to utilize AI-powered tools, provided you do so while adhering to responsible and ethical practices. These tools can provide valuable assistance in enhancing your proof-writing efficiency and proficiency. You are permitted to incorporate AI suggestions into your assignments and projects, as long as proper attribution is given. Generative AI (e.g. ChatGPT or similar) cannot be used for written reflections, understanding checks, or exams in CSC250.

Guidelines for Using AI Tools:

  1. Attribution: We’ll treat AI tools as “collaborators” in this class. Whenever you get help with your assignment, it is crucial to provide clear and transparent attribution. Include a comment or annotation in your code specifying that certain sections were generated with the help of AI.

  2. Originality: While AI can offer valuable insights and suggestions, it is important that the final code reflects your understanding of the material. For this reason, you should avoid copying generated code without understanding what it does; instead, use it as a reference to enhance your own skills.

  3. Learning Opportunity: View AI as a supplementary learning resource. Take the time to assess the suggestions provided by the tool and compare them to your own intuition. This process can contribute to a deeper understanding of the concepts we cover.

  4. Honor Code: Always prioritize academic integrity. Plagiarism, which includes submitting someone else’s work (including AI-generated content) without proper attribution, is a violation of our community’s ethical standards and course policy.

  5. Discussion and Collaboration: While using AI tools, feel free to engage in discussions with peers and instructors about the generated output and how it aligns with course concepts. Collaborative learning and constructive feedback can enrich the educational experience.

  6. Diverse Approaches: Keep in mind that there are generally many “right” ways to solve a programming problem. AI-generated suggestions might present one approach, but exploring alternative solutions on your own or through discussions is highly encouraged.

  7. Human Power: All AI is developed by other humans and trained on data generated by millions of our peers. Generative AI regurgitates and remixes existing information. Do not be fooled into thinking it “knows” more than you.

Remember: the primary goal of this course is to enhance your skills and understanding of the subject matter. Utilizing AI tools with attribution can support this goal, but the responsibility lies with you to ensure that your work reflects your own efforts and comprehension.


Examinations and Projects

There will be two take-home examinations, and one (low-stakes) final project in this course. The project may be conducted independently, or in a small group.


Grading

Component Weight
Homework Assignments 45%
Weekly Understanding Checks 10% (score) + 5% (completion)
Exams 20%
Final project 10%
Engagement and participation 10%
TOTAL 100%

Policy on Late Work

Because we will review assignments together each Friday during class, late homework will not be accepted for credit unless arrangements for an extension are made in advance (though you’re welcome to submit it for qualitative feedback). Not having completed an assignment on time means you won’t be able to participate in Friday’s exercises, and this is where much of the actual learning happens. Submitting what you were able to get done is always better than submitting nothing.

While staying on top of your work in this class is important, we also have the following ``stress release’’ policies in place:

Recovery modes:

That said, sometimes life happens. We will have a few ways of alleviating grade pressure (modified):

  • Your lowest score in HW01-HW08 will be dropped.
  • Your lowest score in the Understanding Checks through Week 11 will be dropped.
  • Your homework score will be a weighted average of your HW self-grading and your UC score (priviliging whichever is higher)
  • You will have the opportunity to revise and resubmit up to 3 assignments (not including HW08).

Accessibility & Accommodations

We aim to make this course accessible to all and welcome feedback about changes we can make to meet that goal. If you encounter barriers to participation in this or any other course, please register with the Disability Services Office to request support and accommodations.


Comfy Class Policy

Everyone is welcome to make themselves comfortable in our classroom and asked to be respectful of one another. When you are communicating, please practice active listening by focusing on understanding what others are expressing rather than thinking of how you will respond. Additionally, keep in mind that our wide array of individual backgrounds shape our unique perspectives, so please respect one another when we have sincere differences of opinion.

You may bring beverages or snacks, but please use closed containers to avoid spills and keep messy foods away from computers. Everyone is free to use concentration accommodations like fidget toys, knitting, doodling, moving around, or sitting on the floor; just be mindful your focus does not disrupt others. Parents and caregivers may bring their babies and children to class whenever necessary. Learners of all stages are invited to join us.


Acknowledgement

Some of the materials used in this course are derived from lectures, notes, or similar courses taught at other institutions. Appropriate references will be included on all such material.