Course Syllabus

mediaBanner.jpg

Course Syllabus

Course Specific Information

Please read the course syllabus at the bottom of this page.

A primer for any functional pseudocode used in this class is available for reading and viewing at Pseudocode Primer.

Program Message

This course is based on the underlying principle that you are a dedicated disciple of Jesus Christ, and therefore, you would never lie or make deceptive claims regarding your understanding of the course material; nor would you lie or deceive regarding the completion of the tasks you will be assigned. Other principles include the following:

  • Lifting others in the class
  • Using your agency
  • Showing empathy and love
  • Being humble enough to ask for help from your teacher and others in the class

All tasks assigned to you in this course are to be completed in teams. Your instructor will inform you regarding team creation. It is also true that you will never be given a team grade. Each of us here on earth work together to aid each other in achieving salvation and exaltation, yet we are individually responsible for our own salvation and exaltation. Nobody makes it to the Celestial Kingdom because they belonged to a group of good people. Neither should you expect to get an A just because you are part of a group of hardworking students that come to understand the topics of this course and are able to apply them.

Therefore, when you are helping someone you should never give them a code or math solution. Neither should you expect to be given such a solution when you ask for help. Instead, help those who will come to you by talking over how they are thinking about and approaching the problem, showing them how to search for and find an answer, and be loving and supportive. In other words, teach them just like you would teach someone the Gospel of Jesus Christ. Love them, help them find their own answer, and lead them to the scriptures.

University Policies

Students with Disabilities

Brigham Young University-Idaho is committed to providing a working and learning atmosphere that accommodates qualified persons with disabilities. If you have a disability and require accommodations, please contact the Disability Services Office at (208) 496-9210 or visit their website and follow the Steps for Receiving Accommodations. Reasonable academic accommodations are reviewed for all students who have qualified documented disabilities. Services are coordinated with students and instructors by the Disability Services Office.

This course may require synchronous meetings. If you are currently registered with the Disability Services Office and need an interpreter or transcriber for these meetings, please contact the deaf and hard of hearing coordinator at (208) 496-9219.

Other University Policies

Student Honor and Other Policies

Please read through the document called University Policies. It gives important information about the following topics:

  • Student Honor
    • Academic Honesty
    • Student Conduct
      • Sexual Harassment
  • Student with Disabilities
  • Complaints and Grievances
  • Copyright Notice

Go to the Student Resources module to review further resources and information.

 

Syllabus

This course is an introduction to the Swift programming language. Swift is created and maintained by Apple, Inc. It is the primary programming language for creating software for Apple platforms, including iOS and macOS.

Prerequisites

You must have successfully completed CSE 212.

Platforms, Requirements, and Resources

You will need a computer running macOS, Windows 10 or 11, or Linux. Your computer must have sufficient hard drive space for the installation of the Swift IDE and toolchain, as well as an internet connection to download the required software.

There is no textbook for this course. All readings can be found in iLearn.

Course Outcomes

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

  1. translate simple, well defined, discipline specific algorithms to Swift
  2. create functions in Swift from well-defined descriptions
  3. use closures with existing functions (map, filter, reduce, etc.) and write functions that use closures
  4. use Swift tuples, structs, classes, instances, dictionaries, arrays, sets, optionals, protocols and enums including enums with associated values (don't worry if you do not recognize some of these now, you will learn about them in the course)
  5. use guard statements and the basic do-catch-throw model to validate input data and deal with errors and exceptional data
  6. setup and be familiar with the development environment for Swift so you can write code to solve problems as part of courses in your discipline
  7. write code using Swift specific syntax and style
  8. find help for how to use Swift syntax, language constructs and built-in functionality

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 set up 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. If you have difficulty or need assistance with any assignment, first review the reading for that week and previous weeks. Then you can post your question to the shared Teams General Channel. Please ask the instructor for assistance if other approaches do not meet the need.

In weeks 2-5 the assignment will include downloading two files: WeekXTests.swift and WeekXTasks.swift where X is the week number. You will never edit WeekXTests.swift. The WeekXTasks.swift file contains instructions for a series of coding tasks that you will complete. As you complete each task, automated testing code in WeekXTests.swift 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. If any of the tasks do not pass when the assignment is due do not submit the assignment and do not take the quiz. Instead, contact the instructor to ask for extra time. Assignments that are not complete will not be graded. Marking the completion quiz "Yes" if you have not completed all tasks would not be honest. There are 9-10 tasks in weeks 2-4 and four 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 Swift. 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 Swift 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 you will state as true or false the validity of the statement, "I have completed the tasks for this week, successfully compiled the code file provided and have a strong understanding of how to create and compile Swift projects as we learned about this week."
  3. For weeks 2-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 Swift syntax and style we learned about this week."
  4. 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 Swift syntax and style."
  5. 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 Swift 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:

  • Complete the week 1 assignment
  • Complete the week 6 project
  • Complete 4 other weekly assignments

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.

Course Summary:

Course Summary
Date Details Due