Introduction to Programming and App Development
4.0 (4 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
18 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Introduction to Programming and App Development to your Wishlist.

Add to Wishlist

Introduction to Programming and App Development

for Android and iOS
4.0 (4 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
18 students enrolled
Created by Hesam Samimi
Last updated 6/2017
Curiosity Sale
Current price: $10 Original price: $100 Discount: 90% off
30-Day Money-Back Guarantee
  • 16.5 hours on-demand video
  • 22 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Start designing and making your own apps
  • Work as a freelance developer or apply for app or software development positions
  • Solid understanding of fundamental concepts in programming languages
  • Specific knowledge related to designing and developing mobile apps
  • Familiarity with Android and iOS app development
  • Adequate familiarity and knowledge to be able to take off on your own, and use the web to find code snippets that suite your on-demand needs
  • Approach programming from a place of high awareness and joyful presence using short centering meditation practice
View Curriculum


  • Intro to Programming and App Design and Development Series
  • Covers Android / Java and iOS / Swift
  • Partly Based on an Upper-division Undergraduate Course at UCLA
  • 13-Week Course (60 Lectures)
  • 16+ Hours of Video Instruction
  • 400+ Pages of Lectures Slides, Notes, Source Code
  • 4 Additional Weeks of Student Project: Online Q/A Support during "Build Your Own App" Project
  • Get Started Making Your Own Apps for Fun, as a Freelancer, or to Become a Professional Software Developer
  • No Prior Knowledge or Experience Necessary


This is an introduction to programming and app development class series, partly based on an upper-division undergraduate introductory programming languages course from the Computer Science department at UCLA.

Whether you're interested to learn making apps for fun, would like to start app development as a side-job, or even want to pick up software development as a career, this course will give you the background and practice you need to get started and take off on your own.

This is a 17-week course. We will spend 8 weeks on principles of computer programming. Next we'll learn things specific to designing and developing mobile apps, for both iOS and Android, and we'll finish the course by developing a sample app together in both these platforms. After the completion of the course, I'll ask you to design and develop an app of your own choice. We'll make this course interactive. For 17 weeks since the start of your course, I'll be available online to answer your questions and provide you feedback, especially during the time you will be making your own app (last 4 weeks).

The course covers concepts from Functional languages, Imperative languages, and Object-Oriented languages, in the context of the following languages: Java for Android, Swift for iOS.


  • No prior knowledge or experience in programming is necessary and all ages are welcome
  • To be able to learn and practice programming languages concepts, you only need a computer with internet connection
  • To be able to practice making apps on your own, you will need a computer with Xcode (for iOS) or Android Studio (for Android) installed


  • Intro: Introduction to this series
  • Week 1: Orientation, Swift Primer, Functional Languages, Functions, Types, Type Inference, Type Checkers
  • Week 2: Control, Imperative Languages
  • Week 3: Recursion, Data Structures
  • Week 4: Data Structures, Optional Types
  • Week 5: Scoping, Closures, Interpreted and Compiled Languages, Static and Dynamic Typing
  • Week 6: Object Oriented Languages, Interfaces, Inheritance, Polymorphism
  • Week 7: Object Oriented Programming Topics
  • Week 8: Generics, Concurrency, Asynchronous Computation, Exceptions
  • Week 9Java Primer
  • Week 10App Programming Primer: Layout, Layout in iOS
  • Week 11App Programming Primer: Coding in iOS
  • Week 12App Programming Primer: Layout in Android
  • Week 13App Programming Primer: Coding in Android
  • Outro: Final Lecture, Instructions to build your own app
  • Weeks 14-17Build Your Own App Student Project, Online Support
Who is the target audience?
  • Anyone interested in developing mobile apps, for fun or as a freelancer
  • Or someone who wants to gain the background to become a professional software developer
Students Who Viewed This Course Also Viewed
Curriculum For This Course
60 Lectures
Introduction to the Series
1 Lecture 04:43
  • Course Overview
  • Background about Your Instructor
  • Course Method, Format, Syllabus
Preview 04:43
Week One: Orientation, Overview, Organization, Basic Concepts
5 Lectures 01:27:21
  • Centering Meditation
  • Orientation
  • Course Overview and Organization
  • About Your Instructor
  • How This Course Differs from Most
Preview 17:30

  • More on Types
  • Type Checking
  • Type Inference
  • Homework
  • Conclusion
Preview 14:02
Week Two: Control, Imperative Language Constructs
4 Lectures 01:05:33
  • More on Functions
Week Two - Day 1: More on Functions

  • Week One Homework Recap
  • Googling for Answers
  • Control Structures
Week Two - Day 2: Googling for Answers, Control Structures

  • Control Structures
  • Comments
Week Two - Day 3: More Control Structures, Comments

  • Conditional Expressions
  • Statements and Expressions
Week Two - Day 4: Conditional Expressions, Statements, Expressions
Week Three: Recursion, Data Structures
5 Lectures 01:15:35
  • Centering Meditation
  • Week Two Recap
  • Sequential Programming
  • Recursive Functions
Week Three - Day 1: Sequential Programming, Recursive Functions

  • Recursive Functions
  • Primitive Types
Week Three - Day 2: Recursive Functions, Primitive Types

  • Lists
  • For-Loop
Week Three - Day 3: Lists, For-Loop

  • Properties / Members
Week Three - Day 4: Properties / Members

  • Homework
Week Three - Day 5: Homework
Week Four: Data Structures, Optional Types
4 Lectures 01:04:05
  • Centering Meditation
  • Homework Recap
  • Properties / Members
Week Four - Day 1: More on Properties / Members

  • Properties / Members
  • Lists
Week Four - Day 2: Properties / Members, Lists

  • Lists
  • Optional Types
  • Dictionaries
Week Four - Day 3: Lists, Optional Types, Dictionaries

  • Dictionaries
Week Four - Day 4: Dictionaries
Week Five: Scoping, Closures, Language Types
5 Lectures 01:24:08
  • Centering Meditation
  • Scoping
Week Five - Day 1: Scoping

  • Scoping 
  • First Class Functions / Closures
Week Five - Day 2: Scoping, First Class Functions / Closures

  • Higher Order Functions
Week Five - Day 3: Higher Order Functions

  • Higher Order Functions
  • Compiled vs. Interpreted Languages
  • Static vs. Dynamic Typing
Week Five - Day 4: Higher Order Functions, More on Language Types

  • Interface vs. Implementation
  • Preview: Object-Oriented Programming
  • Homework
Week Five - Day 5: Preview of Object-Oriented Programming, Homework
Week Six: Object Orientation, Interfaces, Inheritance, Dynamic Dispatch
5 Lectures 01:27:14
  • Centering Meditation
  • Homework Recap
  • Object Oriented Programming
  • Interfaces (Protocols)
  • Classes
Week Six - Day 1: Object Oriented Programming, Interfaces (Protocols), Classes

  • Properties (Instance Variables, Members)
  • Constructors
  • Classes
  • Objects
Week Six - Day 2: Properties, Constructors, Classes, Objects

  • Type Polymorphism
  • Universal Type
  • Inheritance
Week Six - Day 3: Type Polymorphism, Universal Type, Inheritance

  • Other Benefits of Object Oriented Programming (OOP)
Week Six - Day 4: Benefits of Object Oriented Programming

  • Overriding
  • Dynamic Dispatch
Week Six - Day 5: Overriding, Dynamic Dispatch
Week Seven: More Object Oriented Programming Topics
4 Lectures 01:10:18
  • Centering Meditation
  • Homework Recap
  • Object Oriented Programming
Week Seven - Day 1: More on Object Oriented Programming

  • Object Oriented Programming
  • Classes
  • Constructors
Week Seven - Day 2: Object Oriented Programming, Classes, Constructors

  • Modules
  • Access Levels
Week Seven - Day 3: Modules, Access Levels

  • Static Fields
  • Equality vs. Pointer Equality
  • Call by Value vs. Call by Reference
Week Seven - Day 4: More Object Oriented Topics
Week Eight: Generics, Concurrency, Asynchronous Computation, Exceptions
4 Lectures 59:16
  • Centering Meditation
  • Garbage Collection
  • Generics
  • Stacks
Week Eight - Day 1: Garbage Collection, Generics, Stacks

  • Generics
  • Stacks
  • Concurrency
  • Asynchronous Calls 
Week Eight - Day 2: Generics, Stacks, Asynchronous Calls

  • Concurrent Programming 
  • Asynchronous Calls
Week Eight - Day 3: More on Asynchronous Calls

  • Exceptions
  • Error Handling
  • Conclusion
Week Eight - Day 4: Exceptions, Error Handling
Week Nine: Java Primer
6 Lectures 01:56:46
  • Centering Meditation
  • Java Primer
  • Java-Swift in Parallel
Week Nine - Day 1: Java Primer, Java-Swift in Parallel

  • Java Primer Continued
Week Nine - Day 2: Java Primer Continued

  • Java Primer Continued
Week Nine - Day 3: Java Primer Continued

  • Java Primer Continued
Week Nine - Day 4: Java Primer Continued

  • Java Primer Continued
Week Nine - Day 5: Java Primer Continued

  • Java Primer Continued
Week Nine - Day 6: Java Primer Continued
5 More Sections
About the Instructor
Hesam Samimi
4.0 Average rating
4 Reviews
18 Students
1 Course
Language Designer Software/App Developer Meditation Teacher

Hesam Samimi finished his Ph.D. studies at UCLA in Computer Science with a focus on Programming Languages and thereafter continued his research work in this field. He has experience in teaching and supervising academic research in Computer Science at UCLA, as well as in the academic research world.

He is also a Meditation and Yoga teacher, and practices and teaches how to bring about mind-body-spirit balance and awareness at home and at work.

He finds teaching an inspiration and thrives in sharing programming and meditation to students.

More recently Hesam has been developing Android and iOS apps that help uplift consciousness. He is developing an institute to teach app design and programming and bringing awareness to the practice.