spring 2025: cs-1102-1

Frequently Asked Questions:
Who is this course designed for?
This course is designed for students who want to gain a solid foundation in computer science. It is a required course for those pursuing the CS major, CS Interdisciplinary major, or CS minor. It is not intended to offer disciplinary breadth, explore applications of computer science techniques, or delve into specialized topics such as Big Data, Machine Learning, AI, Quantum Computing, or Blockchain.
What tools or software will I need?
You will need:
- A computer with internet access,
- A text editor (such as GNU Emacs or Sublime 3), Visual Studio Code, or an integrated development environment (IDE) for writing and running code,
- OCaml and LaTeX interpreters or compilers (you may use Overleaf for LaTeX).
Do I need prior programming experience to take this course?
No.
How can I prepare for this course?
Please complete the first four chapters of An Introduction to Proofs and the Mathematical Vernacular by Martin V. Day. This is a requirement for this course.
What is the Academic Integrity Policy?
Ashoka's Academic Integrity Policy is available at MyAshoka → Information and Documents → Office of Academic Affairs. All violations of Academic Integrity Policy (including but not limited to plagiarism and use of AI) will result in a F grade for the course. Please familiarize yourself with the policies and sanctions.
What is the attendance policy for this course?
Attendance is tracked and every student is expected to attend all classes. While absences are permitted at the your own discretion, please note that there are no makeup classes, exams, or special accommodations for missed sessions, regardless of the reason.
What programming languages will we use?
The course primarily uses OCaml. There will also be opportunities to explore other languages, such as Python, C, Rust, Kotlin, and Prolog.
Why are we using OCaml?
OCaml mixes power and pragmatism. It encourages you to think about problems mathematically, focus on correctness, and write code that is elegant, concise, and robust. These skills translate well into other programming languages and problem-solving scenarios.
What if I struggle with coding or algorithms?
You are expected to take charge of your learning. If you find yourself struggling, you can:
- Take advantage of office hours to get help directly from the instructor or teaching assistants,
- Discussion with your peers and learn from them,
- Refer to the resources and recommended readings for more detailed explanations, and
- Practice to reinforce foundational concepts.
You may bring food and beverages to the class and consume them during the lecture as long as you ensure that you do not disturb your peers or the instructor.
What are the audit requirements for this course?
This course does not have an audit option.
Will the grading be absolute or curved?
The grading policy will be absolute, meaning your grade will be based on your performance against fixed criteria, not compared to other students. This ensures that anyone who demonstrates mastery of the material can achieve the top grades, regardless of how others perform. The cut-offs for each grade will be announced soon.