Functional Programming with Java and Scala
Prerequisite: RSEG 102: Software Development in Java, or RSEG 105 Expert Software Development in Java, or at least one year of professional Java programming.
This course provides hands-on experience with functional programming—a style of programming that has seen increasing popularity due to its ability to work with complex concepts through highly adaptable models. Functional programming supports higher-level abstractions, customizable data structures, as well as concurrency and parallelism inherent in cloud computing and big data analytics. Students will use functional extensions of Java and a popular functional programming language Scala to apply functional programming approach to a variety of design, modeling and implementation challenges.
After taking this course, the student will be able to:
• Apply functional programming principles to design and modeling of complex programming solutions
• Apply functional programming extensions in Java to create customizable data structures and higher-level abstractions in Java programs.
• Combine functional programming with object oriented programming
• Create Scala programs that apply functional programming approach to data processing and complex modeling challenges