CS 110-1 Computational Thinking I-II

WS > Teaching > CS 110-1

This two-course sequence was developed to be CS students' first introduction to their major. Instead of separate courses to introduce programming, theory, data structures, and algorithms, this course presented them in an integrated manner. The course covered mathematical foundations (binary numbers, logic, and induction), common computational constructs and techniques (binary search, compression, trees and graphs), and their application through programming labs and assignments (parse trees, fractals, RSA, ). Different offerings experimented with a project on Scrabble and later, Logic Dots.

The course also featured self-paced assessment whereby a student could retake an exam any number of times up to a semester afterward.

It was co-developed with my ex-colleague Jibran Rashid and my colleague, Shah Jamal Alam. After its first offering in the university's inaugural semester in Fall 2014 to CS students, the first course in the sequence was included in the University Core to fulfill the Formal Reasoning requirement. Offering the course to non-CS students led to the introduction in some offerings of debates and more creatively-inclined assessments.

Offering the course to non-CS students proved to be a challenge, all the way until its discontinuation in Summer 2017. Guided by the faculty's experiences and student feedback, it was decided in the major curriculum review that the course is not serving the majority of the student body. It was replaced by three separate courses: CS 101 Programming Fundamentals, CS 102 Data Structures and Algorithms, and CS 113 Discrete Mathematics.

CS 110 Computational Thinking I: Fall 2014

LMS (now defunct) | Syllabus | Evaluation | GitHub Classroom

CS 110 Computational Thinking I: Fall 2015

CS 110 Computational Thinking I: Spring 2016

CS 111 Computational Thinking II: Fall 2015

CS 111 Computational Thinking II: Summer 2016

CS 111 Computational Thinking II: Fall 2016

CS student's introduction This is a second-semester course for CS students at Habib University and very quickly got cross-listed with MATH. Like similar courses in most CS programs, this course introduces students to logic, proofs, and other foundational mathematical material like sets, functions, and graphs. The intention is two-fold. One, students are prepared for rigorous logical arguments such as those needed in later courses to prove computability and correctness of algorithms. Two, students become familiar with the mathematical constructs that underlie much of theoretical computer science.

Students attempt and submit assignments in teams. The release and submission of assignments is through \href{GitHub Classroom}(https://classroom.github.com/) and submissions are typeset in LaTeX.

I have been involved in the design and offering of this course since its inception in Spring 2018. (I missed one offering due to my exchange semester at Pitzer College.) It has since been offered every Spring. We follow the textbook by Rosen, previously the 7th and now the 8th edition. Over the offerings, some topics have gone in and out of the syllabus, e.g. cryptography and relations. Some offerings have included a student project.

Spring 2023

LMS | Syllabus | [Evaluation](./evals/Eval - CS 113 - Spring 2023.pdf) | GitHub Classroom

Having recently taught for the first time the follow-on courses [CS 212 Nature of Computation](./cs 212) and CS 412 Nature of Computation which were originally developed and taught by my ex-colleagues Jibran Rashid and Shahid Hussain, I have realized the inadequacies of this course.

Previous offerings spent a lot of class time on definitions, examples, and non-examples. This offering moves those to recitations. Lectures will focus on proofs and argumentation. There will be many short assessments for quick feedback: quizzes, weekly challenge, shorter homework. In-person midterm and final exams are back. The project is back and teams will present selected proofs from Proofs from THE BOOK. Team work is eschewed at least at the start so that students are individually challenged.

Spring 2022

LMS | Syllabus | Evaluation | GitHub Classroom

We returned to campus midway through the semester and held an in-person mid-term exam which we had suspended in the online offerings. The result indicated a severe need of providing rigorous exercise to the students. I held a 10-minute in-class qiuzz at the start of every class in the later half of the semester. I was also supported by a very dedicated team of TAs headed by Khubaib Kasbati who prepared rigorous recitations and engaged closely with the faculty. As some measures were introduced ad-hoc in the later half of the semester, many students were unappreciative but I feel these were required to help the students achieve the learning outcomes.

Spring 2021

LMS | Syllabus | Evaluation | GitHub Classroom

Another mathematician, Rameez Ragheb, was involved. The course was completely remote so exams were out of the question. We introduced a group project in which student teams selected and presented on a project topic. We also replaced in-person quizzes with short, online quizzes which served more as revision tools than assessments. Unlimited attempts were allowed within the allowed duration of about a fortnight.

Spring 2020

LMS (now defunct) | Syllabus | Evaluation: L1 L4 | GitHub Classroom

The list of topics to be covered was curtailed so as to focus on the more important topics instead of hurriedly covering a larger number. I taught two sections along with a full-on mathematician, Carina Dreyer. We also had a very able assistant, Basem Atiq. We were able to make good slides containing many examples and non-examples. We also introduced a weekly recitation session for students to gain hands-on practice.

We had to transition online in the middle of this semester.

Spring 2019

I was not involved due to my exchange semester at Pitzer College.

Spring 2018

LMS (now defunct) | Syllabus | Evaluation | GitHub Classroom

This was the first and most ambitious offering. Many topics were originally included in the syllabus, which turned out to be unrealistic.

Back to teaching