Apple puts free Swift curriculum on iBooks, plans courses at US schools

Posted:
in iPod + iTunes + AppleTV edited December 2019
Apple on Wednesday released "App Development with Swift," a free course available through the iBooks Store, which will also be coming to a handful of U.S. schools at the beginning of the fall semester.




The iBooks course is a full-year endeavor geared towards helping people "design fully functional apps, gaining critical job skills in software development and information technology," according to Apple. Swift is Apple's open-source programming language that works across iOS, macOS, watchOS, and tvOS.

In the fall, six colleges will begin teaching the iBooks material: the Alabama Community College System, Columbus State Community College, Harrisburg Area Community College, Houston Community College, Mesa Community College and the San Mateo Community College District. HCC is in fact opening an iOS Coding and Design School, Apple noted.

"Select" high schools will simultaneously add it to their curricula, but Apple has yet to identify them by name.

App Development with Swift is a part of Apple's broader Everyone Can Code program, which the company noted will see materials used in over 1,000 U.S. schools this fall.

Encouraging Swift development likely has multiple benefits for Apple. In general it should foster the creation of more apps for its platforms, but in the long run it may also build up a potential workforce and further cement Swift and Apple platforms as a standard.
«1

Comments

  • Reply 1 of 33
    smaffeismaffei Posts: 237member
    A cheaper workforce is more like it. 

    But, it won't work. Learning a language is a far stretch from writing software and the employing core principles of Computer Science. I saw the same thing growing up in the 80s with Logo and BASIC. They were supposed to be the "everyman" languages. People still couldn't learn those and did just what they needed to pass the course.

    And, frankly, do you want your apps written / debugged by a real software engineer or someone who learned via seminars and online courses?
    GeorgeBMac
  • Reply 2 of 33
    emig647emig647 Posts: 2,455member
    @smaffei ;

    The race to the bottom of cheap apps has proven to me people want cheap software, not professional software in a lot of cases. I can see games and "play apps" being written by those who are not properly trained and are SO warriors. 

    I think this is good for everyone though. The more exposure that Swift gets, the more implanted future it will have. Not just in the iOS and Mac world, but the open source linux world as well. I'm quite excited to see it take off in the server side and machine learning world. 

    I think offering these classes as tech electives is great! There are too many colleges that think that C++ is still a dominating factor. I have seen some that still teach Pascal! Hopefully this helps start moving the bar for more modern languages and frameworks.
  • Reply 3 of 33
    bobcat62bobcat62 Posts: 28member
    Free course materials...  To make it easier for you to proudly train your "Fresher" H1-B replacement.
  • Reply 4 of 33
    SpamSandwichSpamSandwich Posts: 33,407member
    smaffei said:
    A cheaper workforce is more like it. 

    But, it won't work. Learning a language is a far stretch from writing software and the employing core principles of Computer Science. I saw the same thing growing up in the 80s with Logo and BASIC. They were supposed to be the "everyman" languages. People still couldn't learn those and did just what they needed to pass the course.

    And, frankly, do you want your apps written / debugged by a real software engineer or someone who learned via seminars and online courses?
    Not everyone is capable of becoming a full-time programmer, but if this makes the resources for those who do want to pursue that path easier to study and program, that's a good thing.
    iqatedoSolidysamoria
  • Reply 5 of 33
    GeorgeBMacGeorgeBMac Posts: 11,421member
    smaffei said:
    A cheaper workforce is more like it. 

    But, it won't work. Learning a language is a far stretch from writing software and the employing core principles of Computer Science. I saw the same thing growing up in the 80s with Logo and BASIC. They were supposed to be the "everyman" languages. People still couldn't learn those and did just what they needed to pass the course.

    And, frankly, do you want your apps written / debugged by a real software engineer or someone who learned via seminars and online courses?
    That is so very true...
    That is the very split that developed between the mainframe COBOL/FORTRAN coders and the PC guys working with the variety of languages.

    A big part of that was that the PC was pointed at individual users rather than critical corporate infrastructure.  So it required that the development had to be maintainable and upgradeable.   That requirement meant that:
    - It had to work -- ALWAYS and with consistent reliability and accuracy!
    - People other than the original coder had to be able to pick it up and either fix it or upgrade it.
    - There had to be a wide enough knowledge base of the language that the code was not reliant on a hand full of specialists...

    But importantly, even though all that is true, there still remains a huge demand for simple, one-off, single user, non-critical applications that make people's lives better...  That is the point where Jobs and Woz started at -- and it still exists today...
    dysamoria
  • Reply 6 of 33
    dick applebaumdick applebaum Posts: 12,527member

    I don't believe that everyone can code or that everyone should code...

    But, I do believe that everyone should be exposed to coding as part of the education process -- the 3Rs becomes  the 3Rs + S [coding in Swift].

    They should get a basic knowledge of: what code can do;  what is involved in the process;  and the meticulous effort required.

    If for for no other reason than self protection -- in a world of hackers and even legitimate companies trying to meddle in one's private business...

    ...Yes, to realize to realize their exposure when they agree to those Terms Of Use requirements.


    This is a good first step!  But, to make the program a success, I believe Apple will need to offer something more than providing free curriculum -- for example:
    1. grants for hardware, software and training
    2. establish an infrastructure within Apple with 24/7 resources accessible to the participants in the program

    A good second step would be a free iCloud account to each participant (students and teachers, alike).  A section within iCloud where participants can see what others are doing, exchange ideas, share code, etc... get a little competition going.

    edited May 2017 Solidysamoria
  • Reply 7 of 33
    ahindsahinds Posts: 1unconfirmed, member
    The comments I have read thus far appear to be coming from the programming elitists that have run (or should I say "ruined") computer software creation for the last half-century). Only during the age of HyperCard were there ordinary people even attempting any programming. And it was during that age that programming did undergo a kind of renaissance of sorts, with people from a wide variety of disciplines creating usable software. I, for one, welcome the ideas of people from other disciplines. Software programs have been limited by the people creating them. I want to see software from artists, writers, manufacturers, tinkers, soldiers, sailors -- not just people who call themselves "computer scientists."
    edited May 2017 mjtomlinSolidysamoria
  • Reply 8 of 33
    SoliSoli Posts: 10,035member
    smaffei said:
    A cheaper workforce is more like it. 

    But, it won't work. Learning a language is a far stretch from writing software and the employing core principles of Computer Science. I saw the same thing growing up in the 80s with Logo and BASIC. They were supposed to be the "everyman" languages. People still couldn't learn those and did just what they needed to pass the course.

    And, frankly, do you want your apps written / debugged by a real software engineer or someone who learned via seminars and online courses?
    It sounds like you're against programming being taught in schools. If not in schools, then where should it be taught? At home? In Nepal on a mountain top village?
    dysamoria
  • Reply 9 of 33
    rogifan_newrogifan_new Posts: 4,297member
    OK Apple so when does Xcode come to iPad Pro?
  • Reply 10 of 33
    SoliSoli Posts: 10,035member
    OK Apple so when does Xcode come to iPad Pro?
    I'm not sure how the Mac version of Xcode could ever come to iOS. Even on a 13" MBP where you have a mouse point that can click fine elements separated by only a few pixels it's very cramped. I was forever sliding sidebars in and out. I can't imagine that with my fingers or being forced to use an Apple Pencil to peck around the screen, which means there's no slide or drag or drop without some other button to depress to make iOS know that your Pencil action will be to slide a sidebar into or out of view.
    dysamoria
  • Reply 11 of 33
    dick applebaumdick applebaum Posts: 12,527member
    Soli said:
    OK Apple so when does Xcode come to iPad Pro?
    I'm not sure how the Mac version of Xcode could ever come to iOS. Even on a 13" MBP where you have a mouse point that can click fine elements separated by only a few pixels it's very cramped. I was forever sliding sidebars in and out. I can't imagine that with my fingers or being forced to use an Apple Pencil to peck around the screen, which means there's no slide or drag or drop without some other button to depress to make iOS know that your Pencil action will be to slide a sidebar into or out of view.
    The required UI would involve:
    1. displaying a cursor on the screen
    2. an external kb
    3. a trackpad or mouse
    4. Access to the file system
    IMO, these are doable!

    SpamSandwichGeorgeBMac
  • Reply 12 of 33
    SoliSoli Posts: 10,035member
    Soli said:
    OK Apple so when does Xcode come to iPad Pro?
    I'm not sure how the Mac version of Xcode could ever come to iOS. Even on a 13" MBP where you have a mouse point that can click fine elements separated by only a few pixels it's very cramped. I was forever sliding sidebars in and out. I can't imagine that with my fingers or being forced to use an Apple Pencil to peck around the screen, which means there's no slide or drag or drop without some other button to depress to make iOS know that your Pencil action will be to slide a sidebar into or out of view.
    The required UI would involve:
    1. displaying a cursor on the screen
    2. an external kb
    3. a trackpad or mouse
    4. Access to the file system
    IMO, these are doable!

    Doable? Sure. Reasonable for a device running iOS? No. If you want all this then get a Mac.
    dysamoria
  • Reply 13 of 33
    SpamSandwichSpamSandwich Posts: 33,407member
    Soli said:
    OK Apple so when does Xcode come to iPad Pro?
    I'm not sure how the Mac version of Xcode could ever come to iOS. Even on a 13" MBP where you have a mouse point that can click fine elements separated by only a few pixels it's very cramped. I was forever sliding sidebars in and out. I can't imagine that with my fingers or being forced to use an Apple Pencil to peck around the screen, which means there's no slide or drag or drop without some other button to depress to make iOS know that your Pencil action will be to slide a sidebar into or out of view.
    The required UI would involve:
    1. displaying a cursor on the screen
    2. an external kb
    3. a trackpad or mouse
    4. Access to the file system
    IMO, these are doable!

    I think there will continue to be a degree of OS convergence for Apple and they'll hopefully avoid the mess that Windows has become.
    dysamoria
  • Reply 14 of 33
    SoliSoli Posts: 10,035member
    Soli said:
    OK Apple so when does Xcode come to iPad Pro?
    I'm not sure how the Mac version of Xcode could ever come to iOS. Even on a 13" MBP where you have a mouse point that can click fine elements separated by only a few pixels it's very cramped. I was forever sliding sidebars in and out. I can't imagine that with my fingers or being forced to use an Apple Pencil to peck around the screen, which means there's no slide or drag or drop without some other button to depress to make iOS know that your Pencil action will be to slide a sidebar into or out of view.
    The required UI would involve:
    1. displaying a cursor on the screen
    2. an external kb
    3. a trackpad or mouse
    4. Access to the file system
    IMO, these are doable!

    I think there will continue to be a degree of OS convergence for Apple and they'll hopefully avoid the mess that Windows has become.
    Apple has been very clear that they are not converging their OS X-based OSes. Frankly, it's a ridiculous notion to believe that macOS, iOS, tvOS, watchOS, and their new touchbarOS will all be the same the same download package.
    edited May 2017 dysamoria
  • Reply 15 of 33
    dysamoriadysamoria Posts: 3,430member
    Do these courses start at step one or rely on existing programming experience? It's been decades since I seriously explored programming. I didn't enjoy it in the least, but I sometimes get curious again when modern languages are promoted... I never want to deal with pointers, for example. Some stuff should be handled automatically by the language and compiler.
  • Reply 16 of 33
    thewbthewb Posts: 79member
    smaffei said:
    And, frankly, do you want your apps written / debugged by a real software engineer or someone who learned via seminars and online courses?
    An online course in Swift programming is not a dead end that dooms the student to never become a "real software engineer". Instead it is the sort of thing that can inspire a student to continue in that direction. And that doesn't necessarily mean getting a degree in computer science or whatever else it is that you think is required to learn the right skills. Some of the people who shaped the computer industry into its current form did not learn how to do what they did from a formal education. The two Steves. Bill Gates. Mark Zuckerberg. All of them were college dropouts.
    GeorgeBMacSpamSandwichchia
  • Reply 17 of 33
    MarvinMarvin Posts: 15,322moderator
    Soli said:
    OK Apple so when does Xcode come to iPad Pro?
    I'm not sure how the Mac version of Xcode could ever come to iOS. Even on a 13" MBP where you have a mouse point that can click fine elements separated by only a few pixels it's very cramped. I was forever sliding sidebars in and out. I can't imagine that with my fingers or being forced to use an Apple Pencil to peck around the screen, which means there's no slide or drag or drop without some other button to depress to make iOS know that your Pencil action will be to slide a sidebar into or out of view.
    The required UI would involve:
    1. displaying a cursor on the screen
    2. an external kb
    3. a trackpad or mouse
    4. Access to the file system
    IMO, these are doable!
    I think they could do with having more of a UI that uses modular blocks instead of text. Some game engines have this like Unreal where it's called Blueprints, which is visual scripting, shown around 10 minutes into the following video:



    That would work better for a touch UI. You'd have a predefined set of nodes with attributes and they can be open source as well as modifiable. To start a program, you just add an object node. There would be layout objects for the UI and data objects including database objects. The object nodes would have function nodes added to them and those would have action/data nodes that had things like loops, variables, mathematical functions, sorting code, animation curves etc. The nesting would define the scope. If an object wanted to address a variable inside the scope of another, a user could just select it and the software would work out how to get that information. At any time, the user could expand the node into text to see what it is doing and modify it at the code level.

    This setup has the advantage of promoting code reuse/modularity and optimal code vs monolithic functions/classes. The open source nature of the blocks would have people trying to make them run as fast as possible. It also helps avoid typos because you aren't typing most of the code. It makes profiling a bit easier too because running the program can highlight in red which nodes took the longest to execute and those can be fixed. It makes it faster to do prototyping because companies can build app templates and just replicate that for new ones.

    File resources can be accessed in an interface like in iMovie with Images, Audio, Movies, Documents tabs and you just drop them into the nodes, which saves having to hard-code filesystem paths. If you wanted to play an audio track, you don't have to read up on how to use a sound manager API, you just drop an audio node in place and pick the sound then attach an action to play it at a given point in the execution and it can handle the playback without stalling the program execution.

    This would be language-independent software development. Visual scripting can abstract different languages and the exact same high-level structures can be mapped between Swift, Java, C#, C++ etc without manually changing any code. With a certain node structure, it would be possible to convert old programs that were typed into nodes. For complex software, the number of nodes could get unwieldy but nodes can contain multiple lines of code and it would be nested inside multiple objects/classes e.g 20 objects on screen, open one object to get 20 actions, open one action to see 20 data nodes and you work on one at a time. This can handle the equivalent of tens of thousand of lines of code concisely enough for a small screen.

    Rich feature nodes allows very complex tasks to be done quickly like cloud syncing and 2D/3D object handling. Instead of thinking about manually using nested arrays, dictionaries and lists and constructing special data classes for cloud syncing, the data nodes can have cloud-sync features built-in and it would aggregate the data into key/value stores as needed, only syncing what changed.
    Solikevin kee
  • Reply 18 of 33
    SoliSoli Posts: 10,035member
    Marvin said:
    Soli said:
    OK Apple so when does Xcode come to iPad Pro?
    I'm not sure how the Mac version of Xcode could ever come to iOS. Even on a 13" MBP where you have a mouse point that can click fine elements separated by only a few pixels it's very cramped. I was forever sliding sidebars in and out. I can't imagine that with my fingers or being forced to use an Apple Pencil to peck around the screen, which means there's no slide or drag or drop without some other button to depress to make iOS know that your Pencil action will be to slide a sidebar into or out of view.
    The required UI would involve:
    1. displaying a cursor on the screen
    2. an external kb
    3. a trackpad or mouse
    4. Access to the file system
    IMO, these are doable!
    I think they could do with having more of a UI that uses modular blocks instead of text. Some game engines have this like Unreal where it's called Blueprints, which is visual scripting, shown around 10 minutes into the following video:

    [video]

    […]
    Even with the Blueprints option in play this is still not feasible for a device where the primary I/O is your finger on a touchscreen. Are you saying you can switch to only Blueprints as your primary UI without all the other clutter that requires a a finer point on a touch element, as well various L/R or Alt/Option buttons with the mouse pointer to make selections for easy coding?


    2) Am I wrong in thinking that Apple already has something similar with Storyboards in Xcode?

    edited May 2017
  • Reply 19 of 33
    SoliSoli Posts: 10,035member
    Soli said:
    OK Apple so when does Xcode come to iPad Pro?
    I'm not sure how the Mac version of Xcode could ever come to iOS. Even on a 13" MBP where you have a mouse point that can click fine elements separated by only a few pixels it's very cramped. I was forever sliding sidebars in and out. I can't imagine that with my fingers or being forced to use an Apple Pencil to peck around the screen, which means there's no slide or drag or drop without some other button to depress to make iOS know that your Pencil action will be to slide a sidebar into or out of view.
    The required UI would involve:
    1. displaying a cursor on the screen
    2. an external kb
    3. a trackpad or mouse
    4. Access to the file system
    IMO, these are doable!

    I don't get this incessant need for "access to the file system." Why is that necessary? I have dozens folders synced to iCloud. Many of them are Apple's own apps, and within them are files, but also folders that I've created that contain other files for that app. I also have created my own folder at the root of my iClouds folder that contains other folders and files for 3rd-party apps and no specific apps at all. 

    Of course, all those sync with iCloud, which is a handy feature, but it doesn't have to sync with iCloud. If Apple does offer some sort of Xcode option for iOS-based devices, why can't they just have a similar repository for these development files without Apple specifically creating an iOS app called Finder or one called Terminal so I can bypass a reasonable storage selection, look my how Music is stored in the file system, manually edit PLISTs for Library/Preferences and other such things?

    What good reason is there to open this up to over a billion iDevice users. Personally, I think how Apple stores photos and music/movies/TV shows in Photos and iTunes, respectively, is the right way to go. Hell, I want Apple to obfuscate this even more in the future so that macOS is even more user friendly, not less.
  • Reply 20 of 33
    GeorgeBMacGeorgeBMac Posts: 11,421member
    Soli said:
    smaffei said:
    A cheaper workforce is more like it. 

    But, it won't work. Learning a language is a far stretch from writing software and the employing core principles of Computer Science. I saw the same thing growing up in the 80s with Logo and BASIC. They were supposed to be the "everyman" languages. People still couldn't learn those and did just what they needed to pass the course.

    And, frankly, do you want your apps written / debugged by a real software engineer or someone who learned via seminars and online courses?
    It sounds like you're against programming being taught in schools. If not in schools, then where should it be taught? At home? In Nepal on a mountain top village?
    Your objection is quite logical -- but incorrect.   In real life my experience has shown that the best coders got some basics in computer school -- but they learned the "Core Principles of Computer Science" on the job and largely through self teaching.   The school professors just don't understand those core principles enough to teach how to develop a strong, functional computer based system that can be relied upon.
Sign In or Register to comment.