Robert Reid'inKavranma adlı tablosu (1896). Thomas Jefferson Binası, Washington, D.C.
Kavrama (idrak diye de bilinir), bir kişi, durum veya haber gibi soyut veya somut bir nesneyle ilgili olan ve kişinin üzerinde düşünüp kavramlarla yeterince ilgilenebildiği psikolojik bir süreçtir. Kavrama, bilenle anlaşılan nesne arasında bir bağıntıdır. Bilinen nesneyle ilgili zekice davranışa imkân veren yetenek ve eğilimlerin olmasını gerektirir.[1]
Kavrama,kavramsallaştırmanın bir sınırıdır. Bir şeyi kavramak, onu bir ölçüde kavramsallaştırmak demektir.
Kişi, havanın nasıl olacağını onun bazı özelliklerini v.b.yıaçıklayabildiği ve yakın geleceği tahmin edebildiğinde anlamış olur.
Birpsikiyatrist, bir kişininkaygılarını onun kaygılarını ve sebeplerini bilip onlarla nasıl baş edeceğine dâir faydalı tavsiyelerde bulunabilirse anlamıştır.
Birkişi bir komutu onu vereni, niçin verdiğini, verenin beklentisini ve komutun yerinde olup olmadığını anladığı ve komutu bildireni anladığında kavrar (4'e bakınız).
Bir konudakiakıl yürütmeyi, mantıksal tartışmayı veyadili kavramak için haberin içerdiği içeriği bilinçli olarak türetebilmek gerekir.
Matematiksel bir kavramı anlamış olmak, bununla daha önce benzerini görmediği problemleri çözebildiğinde kendini belli eder.
Kavramayıtanımlamak zordur. Yukarıda kullandığımız şekildekavram terimiyle tanımlarsak bahsedilen bu kavramın ne olduğu sorusuyla karşılaşırız: bu kavram acabasoyut bir şey mi, yoksabeynin yapısından kaynaklanan bir şey mi ya da birçıkarım mıdır? Hangi tanım kullanılırsa kullanılsın, tanımlarla karakterize edilmiş bu şeyi nasıl anladığımızı hâlâ sorgulayabilir, bu tanımla kavramayı açıklamak şöyle dursun tam tatmin edici şekildekavramı tanımlayamayız bile.
Bart Du Bois[2] bir programcının yeni bir kod parçası veya sistemle nasıl çalışabileceğini kavramak için önce beş soyutlama düzeyinin anlaşılması gerektiğini açıklar:
Durum – Bir veri nesnesinin içeriği belli bir anda nedir? (Örnek:x label'ine erişildiğinde is reachedy değişkeninin bilinez belli bir değeri olacak mı?)
İşlemler – Belli bir kod satırı ne hesaplar? (Örnek:x değişkeni sıfırlandı mı?)
İşlev – Tüm işlevselliği nedir? (Örnek: Ortalama hesaplanacak mı?)
Kontrol akışı – Çalışma sırasının tanımı. (Örnek:x dosyasındaki son kayıty değişkeninde sayıldı mı?)
Veri akışı – Veri nesnesi nerede güncelleştirilir? (Örnek:x değişkeninin değeriy değişkenini etkileyecek mi?)
Bu noktalar, bir kodu kavramayı bu beş soyutlamayı anlamak olarak tanımlar.[3]