We may earn an affiliate commission when you visit our partners.
Course image
Parham Aarabi

Introduction to Swift Programming is the first course in a four part specialization series that will provide you with the tools and skills necessary to develop an iOS App from scratch. By the end of this first course you will be able to demonstrate intermediate application of programming in Swift, the powerful new programming language for iOS. Guided by best practices you will become proficient with syntax, object oriented principles, memory management, functional concepts and more in programming with Swift.

Read more

Introduction to Swift Programming is the first course in a four part specialization series that will provide you with the tools and skills necessary to develop an iOS App from scratch. By the end of this first course you will be able to demonstrate intermediate application of programming in Swift, the powerful new programming language for iOS. Guided by best practices you will become proficient with syntax, object oriented principles, memory management, functional concepts and more in programming with Swift.

This course is unique in its dedication to teaching Swift programming. With new features and capabilities you will be at the forefront of writing iOS apps.

Currently this course is taught using Swift 2. The team is aware of the release of Swift 3 and will be making edits to the course in time. Please be aware that at this time the instruction is entirely with Swift 2.

Please note that to take part in this course (and the full specialization) it is required to have a Mac computer and, though not required, ideally an iPhone, iPod, or an iPad. NOTE: This course has been designed and tested (and content delivered) on a Mac. While we are aware of hacks and workarounds for running Mac in a virtual machine on windows we do not recommended a PC.

We hope you have fun on this new adventure.

Enroll now

What's inside

Syllabus

Introductions and Getting Started
Meet the teaching staff, get oriented to the platform, set up your work environment and get ready to program! We wish to remind you from the start that to take part in this course (and the full specialization) it is required to have Mac computer and, though not required, ideally an iPhone, iPod, or an iPad. This course has been designed and tested (and content delivered) on a Mac. While we are aware of hacks and workarounds for running OSX in a virtual machine on Windows, we do not recommended a PC. To find out of this specialization is for you, download the SHIFT Photo Editing app at http://beautifulapps.mobi and try it out. If you take this specialization, then you will learn to create an app similar to SHIFT.
Read more
Swift Basics
In this module we will introduce the basic concepts of Swift. To begin you will learn variable declaration, different types, and program control mechanisms. Here we start to build the foundation of iOS app development with Swift. We hope you enjoy the journey.
Advanced Swift
This unit continues with further exploration of swift programming. Building on our current skill set we will work with Classes, Structs, Enums, Protocols, and object-oriented principles.
Image Processing In Swift
In this module we will wrap up with lessons targeting advanced examples in Swift. We’ll look at a detailed example of an image filter which will allow us to manipulate pixels and create filter effects (such as change contrast).
Final Peer Assignment
You did it! You've come to the end of this first course. We sum up with a capstone peer assessment assignment where you will create your own filter and demonstrate what you've learned over these weeks. Please read the instructions carefully, and have fun!
OPTIONAL - Swift vs Objective C
OPTIONAL - In this module we compare some of the differences between Swift and Objective C programming languages. Join us as we migrate those of you familiar with Objective C to the world of Swift. Hopefully you find programming in Swift fast, easy and interactive.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Explores Swift 2, and while Swift 3 has been released, it will update to reflect that change
Requires a Mac computer, preferably supported by an iPhone, iPod, or iPad
Teaches syntax, object oriented principles, memory management, functional concepts, and more in programming with Swift
Develops proficiency with Swift 2 to build an app from scratch
The first course in a four part specialization
Introduces basic concepts, types, and program control mechanisms

Save this course

Save Introduction To Swift Programming to your list so you can find it easily later:
Save

Reviews summary

Course not recommended

According to students, this course needs significant improvement and should be avoided for complete beginners as the transitions from basic to complex subjects are too difficult. This introductory course is a waste of money and provides inadequate and unclear content. Students are told to do excessive outside reading and the quizzes assume knowledge that has not been taught. Additionally, the instructors are absent and have terrible ratings for not responding to students. Based on reviews, students advise that you take the Stanford iOS course on iTunes U instead.
Course not suitable for beginners and assumes prior knowledge.
"Definitely not for complete beginners."
"A lot of concepts are skipped and the instructors assume that we know them."
"Significant outside reading is expected / required."
Confusing material taught at too fast of a pace.
"Very superficial."
"The transition from basic to complex subject is very abrupt."
"Descriptions are not clear."
Instructors are absent and provide no support.
"Professors AWOL."
"No support."
"My free courses were all better run."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Introduction To Swift Programming with these activities:
Review iOS App Development Concepts
Brush up on iOS app development fundamentals to enhance your understanding of Swift.
Browse courses on iOS App Development
Show steps
  • Read Apple's iOS developer documentation.
  • Review topics like app architecture, UI principles, and user experience.
  • Explore sample apps or online resources for iOS development.
Review Object-Oriented Programming (OOP)
Refresh your OOP knowledge to build a stronger foundation for Swift programming.
Show steps
  • Read articles or books on OOP principles.
  • Review OOP concepts like classes, objects, and inheritance.
  • Practice implementing OOP in a language like Java or C++.
Swift Code Snippets
Create a collection of reusable Swift code snippets to enhance your development process.
Browse courses on code snippets
Show steps
  • Identify common coding tasks.
  • Write and test Swift code snippets for those tasks.
  • Save and organize the snippets for future use.
Three other activities
Expand to see all activities and additional details
Show all six activities
Swift Coding Challenges
Practice coding in Swift to reinforce concepts and speed up development time.
Browse courses on Swift Programming
Show steps
  • Use an online coding challenge platform.
  • Attempt daily or weekly coding challenges.
  • Solve problems of varying difficulty levels.
Study Group for Swift Projects
Collaborate with peers to work on Swift projects and learn from each other.
Show steps
  • Form a study group with other Swift learners.
  • Choose a Swift project to work on together.
  • Meet regularly to discuss the project, share ideas, and debug code.
Attend Swift Meetups or Conferences
Connect with other Swift developers to share knowledge and learn from their experiences.
Show steps
  • Find local Swift meetups or conferences.
  • Attend the events and participate in discussions.
  • Network with other attendees and make connections.

Career center

Learners who complete Introduction To Swift Programming will develop knowledge and skills that may be useful to these careers:
iOS Developer
iOS Developers are responsible for developing software for Apple's iOS operating system. They work with designers and product managers to create apps that are both functional and visually appealing. This course provides a strong foundation in Swift, the programming language used to develop iOS apps. The course also covers topics such as object-oriented programming, memory management, and functional concepts, which are all essential for developing iOS apps.
Mobile Application Developer
Mobile Application Developers are responsible for the design and development of mobile apps. They work with product managers to determine the requirements of an app, and then design and code the app to meet those requirements. This course provides a strong foundation in Swift, the programming language used to develop iOS apps. The course also covers topics such as object-oriented programming, memory management, and functional concepts, which are all essential for developing mobile apps.
Software Developer
Software Developers are responsible for the design, development, and maintenance of software systems. They work with users and stakeholders to determine the requirements of a system, and then design and code the system to meet those requirements. This course provides a strong foundation in Swift, a modern and powerful programming language. The course also covers topics such as object-oriented programming, memory management, and functional concepts, which are all essential for developing software systems.
Web Developer
Web Developers are responsible for the design and development of websites and web applications. They work with designers and product managers to create websites that are both functional and visually appealing. This course provides a strong foundation in Swift, a modern and powerful programming language. The course also covers topics such as object-oriented programming, memory management, and functional concepts, which are all essential for developing web applications.
Data Scientist
Data Scientists are responsible for the collection, analysis, and interpretation of data. They work with data to identify trends and patterns, and then use this information to make predictions and recommendations. This course provides a strong foundation in Swift, a modern and powerful programming language. The course also covers topics such as object-oriented programming, memory management, and functional concepts, which are all essential for developing data science applications.
Machine Learning Engineer
Machine Learning Engineers are responsible for the development and maintenance of machine learning models. They work with data scientists to identify the data that is needed to train a model, and then develop and train the model. This course provides a strong foundation in Swift, a modern and powerful programming language. The course also covers topics such as object-oriented programming, memory management, and functional concepts, which are all essential for developing machine learning models.
Computer Programmer
Computer Programmers are responsible for the design, development, and maintenance of computer programs. They work with users and stakeholders to determine the requirements of a program, and then design and code the program to meet those requirements. This course provides a strong foundation in Swift, a modern and powerful programming language. The course also covers topics such as object-oriented programming, memory management, and functional concepts, which are all essential for developing computer programs.
Systems Analyst
Systems Analysts are responsible for the analysis, design, and implementation of computer systems. They work with users and stakeholders to determine the requirements of a system, and then design and implement the system to meet those requirements. This course provides a strong foundation in Swift, a modern and powerful programming language. The course also covers topics such as object-oriented programming, memory management, and functional concepts, which are all essential for developing computer systems.
Database Administrator
Database Administrators are responsible for the management and maintenance of databases. They work with users and stakeholders to determine the requirements of a database, and then design and implement the database to meet those requirements. This course provides a strong foundation in Swift, a modern and powerful programming language. The course also covers topics such as object-oriented programming, memory management, and functional concepts, which are all essential for developing database systems.
Network Administrator
Network Administrators are responsible for the management and maintenance of computer networks. They work with users and stakeholders to determine the requirements of a network, and then design and implement the network to meet those requirements. This course provides a strong foundation in Swift, a modern and powerful programming language. The course also covers topics such as object-oriented programming, memory management, and functional concepts, which are all essential for developing network systems.
Information Security Analyst
Information Security Analysts are responsible for the protection of computer systems and networks from unauthorized access, use, disclosure, disruption, modification, or destruction. They work with users and stakeholders to determine the security requirements of a system, and then design and implement security measures to meet those requirements. This course provides a strong foundation in Swift, a modern and powerful programming language. The course also covers topics such as object-oriented programming, memory management, and functional concepts, which are all essential for developing secure systems.
Quality Assurance Analyst
Quality Assurance Analysts are responsible for the testing and evaluation of software systems. They work with developers and testers to ensure that software systems meet the requirements of users and stakeholders. This course provides a strong foundation in Swift, a modern and powerful programming language. The course also covers topics such as object-oriented programming, memory management, and functional concepts, which are all essential for developing software systems.
Technical Writer
Technical Writers are responsible for the creation and maintenance of technical documentation. They work with engineers, developers, and other technical professionals to create documentation that is clear, concise, and accurate. This course provides a strong foundation in Swift, a modern and powerful programming language. The course also covers topics such as object-oriented programming, memory management, and functional concepts, which are all essential for understanding and documenting software systems.
Project Manager
Project Managers are responsible for the planning, execution, and control of projects. They work with stakeholders to define the scope of a project, and then develop and execute a plan to deliver the project on time, within budget, and to the required quality. This course provides a strong foundation in Swift, a modern and powerful programming language. The course also covers topics such as object-oriented programming, memory management, and functional concepts, which are all essential for developing software systems.
Business Analyst
Business Analysts are responsible for the analysis and design of business processes. They work with stakeholders to identify the needs of a business, and then develop and implement solutions to meet those needs. This course provides a strong foundation in Swift, a modern and powerful programming language. The course also covers topics such as object-oriented programming, memory management, and functional concepts, which are all essential for developing business systems.

Reading list

We've selected eight books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Introduction To Swift Programming.
Provides a comprehensive overview of Swift programming, covering everything from basic syntax to advanced topics such as concurrency and memory management. It valuable resource for both beginners and experienced programmers alike.
Provides a comprehensive guide to Swift programming. It covers everything from basic syntax to advanced topics such as concurrency and memory management. It valuable resource for both beginners and experienced Swift programmers alike.
Great introduction to Swift programming for beginners. It uses a fun and engaging approach to teach the basics of Swift, and it's full of helpful examples and exercises.
Provides a comprehensive guide to iOS development using Swift 5. It covers everything from basic app development to advanced topics such as Core Data and ARKit. It valuable resource for both beginners and experienced iOS developers alike.
Teaches students how to utilize design patterns in Swift. It provides a detailed explanation of popular design patterns such as the Singleton Pattern and Factory Pattern. Each design pattern is taught in a logical, step-by-step manner using Swift examples.
Provides a comprehensive guide to Core Data, the object-oriented database framework for iOS. It covers everything from basic data modeling to advanced topics such as concurrency and migrations. It valuable resource for both beginners and experienced iOS developers alike.
Provides a comprehensive introduction to machine learning and its applications in iOS development. It covers everything from basic concepts to advanced topics such as neural networks and deep learning. It valuable resource for both beginners and experienced iOS developers alike.
Provides a comprehensive guide to the Rust programming language. It's a great resource for learning about the basics of Rust and is also a valuable reference for experienced programmers.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Introduction To Swift Programming.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser