Beginning Scala Programming
    A Thorough Video Introduction to the Scala Programming Language.
    
    
        
            - Introduction
 
            
                - What Is Scala? 00:00:56
 
                - What Are The Positives Of Scala? 00:01:10
 
                - What Are The Negatives Of Scala? 00:02:40
 
                - About The Author 00:00:49
 
                - How To Access Your Working Files 00:01:15
 
            
            - Setup
 
            
                - Downloading Scala 00:03:39
 
                - Installing Scala - Windows 00:05:26
 
                - Installing Scala - Mac 00:03:56
 
                - Installing Scala - Linux 00:04:32
 
                - Creating A Script In Scala 00:04:58
                    
                        

 
                - Creating An Application In Scala 00:06:42
 
            
            - Scala Basics
 
            
                val
 And var
 00:04:01 
                - Lazy 
val
 00:04:13 
                - Bending Variables And Values To Your Will 00:04:17
 
                byte
, short
, int
, long
, float
,
                    boolean
, and double
 00:07:38 
                if
, else if
, else
 00:04:06 
                while
, do while
 00:05:18 
                - For Loops 00:08:26
 
                - Strings 00:01:46
 
                - Smart Strings 00:07:19
                    
                    

 
                - String Formatting 00:12:12
 
                - String Interpolation 00:09:19
 
            
            - Scala Methods
 
            
                - Basic Methods 00:07:44
 
                Any
, AnyVal
, AnyRef
 00:08:48 
                - Different Return Types 00:02:29
 
                - Unit And Unit Conventions 00:10:45
 
                - Recursion 00:05:20
 
                - Tail Optimized Recursion 00:06:52
 
                - Methods In Methods 00:02:09
 
                - Bending Method Names To Your Will 00:04:44
 
                - Operator Overloading 00:05:14
 
                - Method Overloading 00:04:42
 
                - Named And Default Arguments 00:06:01
 
                AsInstanceOf
 And IsInstanceOf
 00:07:28 
                - Parameterized Types On Methods 00:10:45
 
            
            - Scala Classes
 
            
                -  Classes 00:10:01 
 
                -  Java Getters And Java Setters 00:05:02 
 
                -  Constructors 00:08:53 
 
                -  Constructor Named And Default Arguments 00:03:09 
 
                -  Methods In Classes 00:09:52 
 
                -  Preconditions, Exceptions, And Exception Handling 00:10:42 
 
                -  Subclassing 00:09:53 
 
                -  Overriding Methods 00:09:18 
 
                -  
equals
, hashCode
, toString
 
                    00:12:24  
                -  Case Classes 00:08:22 
 
                -  Abstract Classes 00:05:15 
 
                -  Parameterized Types On Classes 00:08:29 
 
                -  Parameterized Methods In Classes 00:06:43 
 
            
            - Scala Object
 
            
                -  Singleton Objects 00:11:20 
 
                -  Companion Objects 00:12:48 
 
            
            - Magical Methods
 
            
                -  The Magic Apply Method 00:05:51 
 
                -  Infix Operators 00:05:09 
 
                -  Right-Associative Colons 00:04:07 
 
            
            - Scala Option
 
            
                -  Scala Option - Part 1 00:07:21 
 
                -  Scala Option - Part 2 00:05:53 
 
            
            - Scala Tuples
 
            
                - Scala Tuples - Part 1 00:03:53
 
                - Scala Tuples - Part 2 00:02:58
 
            
            - Higher Order Functions
 
            
                - Creating A Function - Part 1 00:03:45
 
                - Creating A Function - Part 2 00:04:59
 
                - Creating A Function - Part 3 00:02:50
 
                - Is It A Method Or Is It A Function?  00:03:43
 
                - Converting A Method To A Function - Part 1 00:06:13
 
                - Converting A Method To A Function - Part 2 00:04:13
 
                - Closures 00:04:03
 
                - Functions With Functions 00:05:51
 
                - Currying 00:03:34
 
                - Curried Method Parameters 00:04:36
 
                - By-Name Parameters - Part 1 00:06:12
 
                - By-Name Parameters - Part 2 00:02:58
 
            
            - Collection Basics
 
            
                - The Importance Of A Language With A Clean API 00:02:57
 
                - Lists 00:09:11
 
                - Sets 00:08:41
 
                - Maps And Symbols 00:10:05
 
                - Arrays And Repeated Parameters 00:06:28
 
                - Ranges 00:05:39
 
            
            - Collections With Functions
 
            
                - map 00:12:30
 
                filter
, filterNot
, and exists
 00:06:40 
                forEach
 00:03:45 
                flatMap
 00:15:13 
                - For Comprehensions 00:14:28
 
                fold
 and reduce
 00:07:00 
                zip
 00:02:31 
                - Finding Your Method In The API 00:06:35
 
                - Solving Functionally With Scala 00:05:41
 
            
            - Conclusion
 
            - Wrap Up 00:00:31