Kotlin Programming Language

CSE 222b

Syllabus

This course is an introduction to the Kotlin programming language. Kotlin is created and maintained by JetBrains. It is one of the primary programming language used to build Android applications.

Prerequisites

You must have successfully completed CSE 212.

Platforms, Requirements, and Resources

You will need a laptop computer running macOS, Windows or Linux. The laptop must have sufficient hard drive space for the installation of the IntelliJ IDE. Internet connectivity is also required. There is no text, all readings are found in iLearn.

Course Outcomes

To successfully complete this course, you must be able to:

  1. translate simple, well defined, discipline specific algorithms to Kotlin
  2. create functions in Kotlin from well-defined descriptions
  3. use lambda's with existing functions (map, filter, reduce, etc.) and write functions that use lambdas
  4. use Kotlin tuples, structs, classes, instances, dictionaries, arrays, and sets
  5. setup and be familiar with the development environment for Kotlin so you can write code to solve problems as part of courses in your discipline
  6. write code using Kotlin specific syntax and style
  7. find help for how to use Kotlin syntax.

Course Structure

This is a block course. In weeks 1-5 you will have assigned reading and a programming assignment. During week 1 you will setup your development environment. You are also required to join a Microsoft Teams for the course and to post an introduction to a shared channel during the first week. Teams will be the primary way you will communicate with other students and with your instructor.

In weeks 2-5 the assignment will include downloading two files: main.kt and tasks.kt. You will never edit main.kt. The tasks.kt file contains instructions for a series of coding tasks that you will complete. As you complete each task, automated testing code in main.kt will test your solution and confirm which tasks "pass." When all tasks pass, you have completed the assignment for the week. You should not claim to have completed the assignment until all tasks pass. There are 9-10 tasks in weeks 2-4 and 4 tasks in week 5.

Week 6 is dedicated to you completing an appropriately sized project that applies what you have learned about the basic building blocks of Kotlin. You will be required to propose a project by the end of week 5 so that the instructor can provide feedback about the scope and direction of your planned project.

Week 7 is an opportunity to ponder about the different sources of information regarding Kotlin that you used to help you. Use week 7 to create rules for yourself regarding what differentiates a good source from a poor one.

Assessments

  1. For weeks 1-7, you will be given one or more tasks to accomplish.
  2. For weeks 1-5 you will state as true or false the validity of the statement, "I have completed the tasks for this week which all pass the automated tests and have a strong understanding of the Kotlin syntax and style we learned about this week."
  3. For week 6 you will state as true or false the validity of the statement, "I have completed my project and have a strong understanding of all the code I wrote. Also, I wrote the code using Kotlin syntax and style."
  4. For week 7, you will state as true or false the validity of the statement, "I have organized my thoughts and described, in writing, the results of pondering what determines if a Kotlin information source is a quality or poor source."

Grade Calculation

There are two possible grades for this course, A or D. In order to receive an A grade in the course, you must do the following:

Additional

To review University policies regarding disabilities, sexual harassment, etc. or to arrange for a tutor from the Academic Support Center, select 'Modules' in the iLearn course, scroll to the Student Resources module, and select the appropriate link.