aalok thakkar: introduction to computer science

spring 2025: cs-1102-1

We have teaching assistant (TA) and teaching fellow (TF) positions open for this course. TA applicants can find more details here. TF applicants may email us.

Jan Misset, The original Droste cocoa design. (1904)

Another section (CS-1102-2) of this course will be offered by
Debayan Gupta. Please find more details on AMS.

Logistics:

Credits: 4
Classes: Tuesdays and Fridays, 8:30am to 10:00am
Classsroom: AC-03-LR-003
Teaching Fellows: Adwitee Roy, Aritra Das
Instructor Office Hours: Fridays, 10:00am to noon at AC04-705 or by appointment

Links:

Course Outline and Lectures
Resources and Reading Materials
Discussion Sessions (Coming Soon)
Lab Sessions (Coming Soon)
Frequently Asked Questions
Books and Movies in Context

Course Description: This introductory course provides a foundational understanding of computational thinking as a problem-solving strategy, explores the core principles of computation, and introduces students to various subdisciplines within the field. Students will learn how to approach and solve problems both with and without code, with a strong emphasis on correctness, design, and style. The course is structured around two key computational models: the functional model, which views computation as the evaluation of mathematical functions, and the imperative model, which focuses on sequences of instructions that manipulate program state. By exploring these two perspectives, students will develop a deeper understanding of how different programming paradigms influence problem-solving and algorithm design. The course concludes with a series of lectures that offer disciplinary breadth through topics such as information theory, cryptography, compiler design, databases, numerical algorithms, quantitative modeling, and machine learning. The objectives of this course are to:

  1. Algorithmic Thinking: Develop the ability to analyze and design algorithms as systematic problem-solving approaches, with an emphasis on precision and efficiency.
  2. Program Correctness and Design: Understand the theoretical principles of program correctness, as well as design principles that emphasize clarity, structure, and style in solutions.
  3. Computational Models: Explore computer science and computation through two core paradigms: the functional model (evaluation of mathematical functions) and the imperative model (state manipulation via sequences of instructions).
  4. Practical Coding Skills: Gain hands-on experience coding in OCaml and Python, with opportunities to explore other languages such as C++, Rust, Java, Datalog, and SQL.
  5. Foundational Disciplinary Topics: Acquire an introductory understanding of subfields such as information theory, cryptography, compiler design, databases, numerical algorithms, quantitative modeling, and machine learning.

Prerequisites: The course will require a certain amount of mathematical maturity at least at the level of mathematics at the grade XII level, FC-0306, or MAT-1000.

Grading: A serious student of a subject is not an idle spectator to a variety show but learns best by active involvement. This is particularly true of mathematical subjects. This course is structured to incentivise involvement through the following:

  1. Assignments: The course includes 10 problem sets. These are designed to reinforce lecture material and develop practical skills in applying theoretical concepts. They constitute 50% of the grade.
  2. Examination: Two in-class, closed-book, 1.5 hour examinations carry the remaining 50% of the grade. Students are permitted to bring a single, two-sided "cheat sheet" of their own creation.
  3. Extra-credit assignments: Extra-credit assignments are included to make this course fun and customized to student needs. They include a meme contest, expository or argumentative writing, poetry competition, puzzle weekend, hackathon, leetcode Saturdays, and web development. They carry 10% of the grade.

Policies: From Ashoka's Academic Integrity Policy (MyAshoka → Information and Documents → Office of Academic Affairs): plagiarism—which is a matter of producing academic work that borrows, without acknowledging, from another person's work—is a serious academic offense. All violations of Academic Integrity Policy (including but not limited to plagiarism) will be reported to the Academic Integrity Committee. Please familiarize yourself with the policies and sanctions.

Attendance: A minimum attendance of 85% is mandatory, allowing a maximum of 3 unexcused absences. Any additional absences will result in penalties.

Submissions: Assignments are due on Mondays by 9 AM, as outlined in the calendar. A late submission will incur a 15% penalty per day for the first two days. Submissions delayed beyond two days will receive a zero.

Support: Students are encouraged to reach out to University offices such as the Office of Learning Support, Ashoka Center for Well-Being, and Center for Writing and Communication for additional support.

Calendar:

Sunday Monday Tuesday Wednesday Thursday Friday Saturday
Jan 19 Jan 20 Jan 21
Lecture 1
Office Hours
Jan 22 Jan 23
Jan 24
Lecture 2
Jan 25
Jan 26
Jan 27
Jan 28
Lecture 3
Assignment 1
Office Hours
Jan 29
Jan 30
Jan 31
Lecture 4
Feb 1
Feb 2
Feb 3
Assignment 1 Due
Feb 4
Lecture 5
Assignment 2
Office Hours
Feb 5
Feb 6
Feb 7
Lecture 6
Feb 8
Feb 9
Feb 10
Assignment 2 Due
Feb 11
Lecture 7
Assignment 3
Office Hours
Feb 12
Feb 13
Feb 14
Lecture 8
Feb 15
Feb 16
Feb 17
Assignment 3 Due
Feb 18
Lecture 9
Assignment 4
Office Hours
Feb 19
Feb 20
Feb 21
Lecture 10
Feb 22
Feb 23
Feb 24
Assignment 4 Due
Feb 25
Lecture 11
Assignment 5
Office Hours
Feb 26
Feb 27
Feb 28
Lecture 12
Mar 1
Mar 2
Mar 3
Assignment 5 Due
Mar 4
Lecture 13
Office Hours
Mar 5
Mar 6
Mid-term Exam
Mar 7
Lecture 14
Mar 8
Mar 9
Mar 10
Mar 11
Mar 12
Mar 13
Mar 14
Mar 15
Mar 16
Mar 17
Mar 18
Lecture 15
Assignment 6
Office Hours
Mar 19
Mar 20
Mar 21
Lecture 16
Mar 22
Mar 23
Mar 24
Assignment 6 Due
Mar 25
Lecture 17
Assignment 7
Office Hours
Mar 26
Mar 27
Mar 28
Lecture 18
Mar 29
Meme Contest
Mar 30
Mar 31
Assignment 7 Due
Apr 1
Lecture 19
Assignment 8
Office Hours
Apr 2
Apr 3
Apr 4
Lecture 20
Apr 5
Puzzle Weekend
Apr 6
Puzzle Weekend
Apr 7
Assignment 8 Due
Apr 8
Lecture 21
Assignment 9
Office Hours
Apr 9
Apr 10
Apr 11
Lecture 22
Apr 12
Hackathon
Apr 13
Apr 14
Assignment 9 Due
Apr 15
Lecture 23
Assignment 10
Office Hours
Apr 16
Apr 17
Apr 18
No make-up lecture scheduled.
Apr 19
Apr 20
Apr 21
Assignment 10 Due
Apr 22
Lecture 24
Office Hours
Apr 23
Apr 24
Apr 25
Lecture 25
Apr 26
Apr 27
Apr 28
Apr 29
Apr 30

Reading Week
May 1
May 2
May 3
May 4
May 5
May 6
May 7

Exam Week
May 8
May 9
May 10
Due date may be extended by one day.
Lecture may be repeated upon request.