P-PAF |
A CSD course at BITS Pilani (Spring, 2020)

Programming:
Python And Functional



Course Description

Functional programming (FP) is a way of thinking about software construction that emphasizes functional purity and immutability. Demand for FP is steadily increasing. According to Stack Overflow's survey, a lot of highest paying programming languages emphasize the functional approach. The course covers the fundamental concepts of FP and teaches programming in Python and Haskell. Haskell is a high-level, purely functional programming language with a strong static type system and elegant mathematical underpinnings. It is being used in industry by organizations such as Facebook, AT&T, and NASA, along with several financial firms. Python, while being one of the most popular programming languages of the 21st century, incorporates many functional concepts, most of them inspired from Haskell. In the first half of the course, we will cover Python and Haskell Syntax and the basics of FP, while in the latter half, we will work through assignments and understand various FP concepts like higher-order functions, monads, etc, and build a game playing AI bot, both in Python and Haskell as a final term project.

Update July 16: A big thanks to all who joined, especially to those who stuck till the very end! Feel free to come back here, you'll find everything on the Resources tab.




Instructors


  • Instructor Ishan Bhanuka

    f2016075@pilani.bits-pilani.ac.in

    Consultation Hours: Fri 6.30-7.30pm, SDET Lab







  • Instructor Satvik Golechha

    f20170117@pilani.bits-pilani.ac.in

    Consultation Hours: Fri 6.30-7.30pm, SDET Lab

















FAQs


  • So.. you're teaching Functional Programming with Python, right?
  • - Wrong. We're teaching Python, FP with Haskell, and the functional aspects of Python.

  • Wait.. what's Haskell? Is it a programming language?
  • - Yes, a purely functional one.

  • So is it possible to get a job in Functional Programming?
  • - Don't believe us, google that yourself.

  • I did. It says there are high-paying jobs, and that FP is beautiful, but still the number of jobs is less.
  • - Yes, that's true and it's changing fast.

  • Are there any prerequisites for the course?
  • - None.

  • Do I get graduation credits from this course?
  • - No, this course is not considered for graduation requirements.

  • What softwares will I have to install?
  • - All software required for the course will be shared in the first lecture.

  • Will the lectures be recorded or streamed? I'm lazy.
  • - The latter half of this course has been recorded. Let us know if you missed any of the lectures in the first half.

  • Where can I know more about the course?
  • - You should check the Resources and Structure sections, and the Course Handout.

  • I wanna know even more.
  • - You gotta meet the instructors.

  • How do I meet the instructors?
  • - You can mail us or meet us during consultation hours. For online discussions we will be using a Slack workspace.


Made with by Atharva Chandak