We finished up Unit 1 yesterday. It was a lot of fun getting into Xcode and doing "stuff". Again, I brought up one of the learners to drive on the overhead. This gave me the freedom to move around the room and help people out.
The last lesson, Lesson 8 went over the basics of Xcode. We had fun with it. We explored the Xcode IDE more and put in a button. They were having a lot of fun with adjusting colors. Several questions came up organically. Things like the "!" at the end of the @IBOutlet line, lining up objects on the storyboard, why it crashed when they deleted and reentered an outlet or action, and why the button didn't line up correctly in the simulator. It was great. Everyone had a really good time getting into Xcode and seeing an app come alive. They are all starting to get the hang of Swift and the syntax. They are loving autocomplete and the Interface Builder features were a hit. Last year, they had to create, configure, and arrange any buttons or objects all in code. Now, they can focus more on logic and making better applications. Monday, we do the Light project.
0 Comments
We moved quickly today. In class today, we covered Lessons 1.5, 1.6, and 1.7. It wasn't by design. The lesson just went that way. I started in on Lesson 1.5. This was the first time we were doing a lot on Xcode and Playgrounds so I started in with letting the learners drive. Up to now, I was only showing quick snippets straight out of the iBook. It was all in a playground and very simple. These were demos and gave us the ability to compare Swift to Processing (which they learned last year). Today, we got to go deeper and start exploring. I brought up a student and had them plug their MacBook into the projector. The reasoning is that I know the material better than they do at this point. I will just naturally go faster than them. This isn't fair to learners just getting started. by brining up a student to drive, the pace is naturally slowed down to the pace of the class. I can't go faster. I'm not driving. Lesson 1.5 gives an overview of Xcode. The class was a bit overwhelmed at first. There is a lot going on. I explained some of the important things and showed them the things they needed now, like how to open and close panes. I also introduces them to some of the file types they will deal with. All to just give them some bearings to the environment. All of it is in lesson 5. I even had them change to presentation mode so can get more comfortable with controlling their environment. After a little explaining on what they were looking at in the ViewController.swift file, we played with the array error example from Lesson 5. About halfway through, I wanted them to see it in a playground. I messed up and just had them open a new playground file from the drop-down menu. (I'll explain how I messed up later). We did the example where the array constant is built with 2 elements. Then the .removeFirst() method is called on it 3 times. In the middle, we also printed to the console. I wanted them to understand what was really going on in each line. It seemed to work. The concept of the array and calling the method seemed to work. We closed the file and went back to Xcode. We put the same array exercise in and looked at how the errors worked in full Xcode. It crashed like it should have. I used this moment to show them how the debugging tools are just like LabVIEW. They were happy to use learning that they had gained in prior years. We put in a breakpoint and stepped through the code to the error so they could at least see that support is there. I'm quite sure they will all forget about it tomorrow. But, hey, they are teenagers. That's why we have lessons that build and spiral. When we deleted the code and tried to run the simulator again, it still crashed. Turns out that the code we put in the playground ended up finding it's way into the AppDelegate.swift file. That's my mess up I mentioned earlier. I tried several times to recreate it at home, but could not. Never mind the fact that it happened two classes in a row today. In this, we did some looking at the debugging window and the clues it gives us on errors. This doesn't come till Lesson 6, but we were on a roll. We did some more digging around what was being given in the basic template. We ran the simulator and talked about the million dollar flashlight app from the first iPhone. Then we talked a little about the two functions that showed up. I jumped to lesson 7 this time without a pause. We started looking at the documentation a little. We made comparisons to LabVIEW this time. They liked having the help right there at there at their fingertips. When I went back to the iBook, I realized that we had jumped right through lessons 5, 6 and 7. So I just went for it. I brought up a new student to drive and we did the Lesson 6 Lab together. It gave us great discussions on the errors, memory management, and how Xcode is set up. We finished up a few details from Lesson 7. I turned them loose on completing the Lessons 1-5 assignments that we didn't do together. Thursday, we move into Lesson 8. We should be doing the Light project on Monday. Today we moved to 1.4 and dealing with control flow. Talking about IF-ELSE statements. They liked that it was so much simpler and more expressive than other languages. We also delved into switch-cases. My java programmers were noting how they didn't have to "break out" of the case when it ran. Swift is so nice.
I have also been hammering on some who are behind. Today, we started something new - Mandatory Tutoring. Those behind will have to come in twice a week before school to work until they are caught up and no longer behind. I don't want them to hope they catch up and never get there. By putting in specific days and times that they have to be in, along with a plan and order for materials, we will get there together. After this announcement, I got a lot of late work in. Yay! Tuesday we do our first app in Lesson 1.5 We did Lesson 1.3 today. I was planning on moving to 1.4 today as well. Unfortunately, many of the students were not making use of their time and had gotten behind. I've been notifying their parents on it. I give students four days to make up late work with no penalty. I want them to learn the material more than I am concerned with grades. To that end, I decided to let them use the last half of class today to get caught up. Most of them made good use of the time. Many have moved ahead to lesson 1.4 on their own. Yay.
Day two and Lesson 1.2 is today. Over the weekend, everyone made videos over some of the vocabulary words. I've uploaded some of them to my Vimeo channel. I am considering doing videos like this for students to make tutorials and such instead of me. We got rolling pretty well today. They seemed to take to the Keynote slide deck well. I did the slide deck first with my 5/6 block. in 7/8, I am going to reverse the lab and slide deck to see how effective it is. Tomorrow, I am meeting with a group of students to develop an "Honors" program. We will use that to let learners advance to more difficult work and more exciting projects. It will also make use of more of the extension activities. Later... I started by doing the lab first. In less than 10 minutes, I didn't like it at all. I immediately went back to the slide deck. Things went much better. Talking with the students, they seemed to really like things like auto-complete. The "Fix-its" were a show stopper. A couple of people clapped. The 2nd day went well. Video explaining console: Taylor's Video Video on the Results Sidebar: Nick's Video 2nd Video on the Results Sidebar: Sare's Video Video on Open Source: Karthi's Video 2nd Open Source Video: MacKenzie's Video See the video's below
The big day is finally here. We have started into App Dev with Swift today. It took a while, but it will all be worth it. After IT got us our MacBook Airs this week, we started getting them set up. So you know, we are on a block schedule. I only see them every other day This week, we met on Tuesday and Thursday. My capstone class is the course we are doing App Dev in. One period is for the Design Project, and the other is for App Dev. We needed all of it this week.
After getting the computers in Tuesday morning, we got started. Everyone got their MacBook and put a label on it with their name so they always get the same one. They all logged in and started loading the necessary items. We went to the iBook store and got the App Dev with Swift iBook. On page 5 is the download link for Xcode. We started downloading that and then worked on other project while we waited. I have 35 students in one class and 20 in the other. The smaller is shown below. 35 people downloading Xcode puts a HUGE strain on the WiFi. (oops). After 3 hours, only about half had it downloaded and installed. The smaller class got about 75 percent done. Several stayed after school and more came in on Wednesday to finish installing. We spent the rest of the first class period today getting the last few installed. Then we ran into another issue. IT had not set up developer rights yet. I put in a ticket and sent a couple of emails. They are awesome. During lunch, they got it all fixed. We were able to do Lesson 1.1 after that. It was great. I have everything set up with this lesson to just make sure everyone is up and running. I also want them to get used to our Schoology course set up for this. It went great. I can't wait for Monday. |
About this blog pageThis is my blog covering the activities and results from my work teaching App Dev with Swift. Archives
February 2021
Categories |