KEY INFORMATION
Instructors
Grading
- Prof. Ioannis Pavlidis (This email address is being protected from spambots. You need JavaScript enabled to view it.) Office Hours: Thu 3-4 pm @ TEAMS
- Shaila Zaman (This email address is being protected from spambots. You need JavaScript enabled to view it.) Office Hours: Mon 3-5pm @ TEAMS
- Vitalii Zhukov (This email address is being protected from spambots. You need JavaScript enabled to view it.) Office Hours: Tue 3-5pm @ TEAMS
- 7% Quizzes
- 14% Weekly app assignments
- 45% (3 x 15%) In-class app development exams
- 34% Semester-long app project
Day, Time and Room
Semester-Long App Project
- Thursday, 4:00-7:00 pm @ 315-HBS1 and @ TEAMS
Requirements
- Mac OS - 11.5.2
- XCode - 12.5.1
Class Video Resources
- , Github
- Specification: 20%
- novelty-5%, completeness-10%, elegance-5%
- Software: 80%
- 40% robust functionality, 30% user interface, 10% coding excellence
-
The project can be done either individually or in pairs. Pairs need to be declared by the end of the second week of classes.
-
NOTE: 20% of the total project grade will be assessed on 09/30/2021, 30% on 10/28/2021, and 50% on 12/02/2021.
COURSE OUTLINE
Week 1 - 08/26
-
Course Introduction, Intro to Swift, Playgrounds
- Swift Basics
- Swift Playground
- Swift Online REPL
- Swift 5 Video Tutorials (Watch videos 1-9, 13, and 16-17)
Week 2 - 09/02
-
XCode, UIKit (text fields, buttons, labels), UIAlertController
Week 3 - 09/09
-
Protocol & Delegation, View Controllers, Segue, Navigation Controllers
Week 4 - 09/16
-
Tab bar controller, UIStackView, and Auto Layout
Week 5 - 09/23
- In-Class App Development Exam 1
Week 6 - 09/30
- App Specification
Week 7 - 10/07
-
Interacting with web services, UITableView, UserDefaults
Week 8 - 10/14
-
Location, MapKit, Gesture Recognizer, Local Notifications (optional)
Week 9 - 10/21
- In-Class App Development Exam 2
Week 10 - 10/28
- Beta App
Week 11 - 11/04
-
Imagepicker, Camera, CoreImage - Filters (optional)
Week 13 - 11/18
- In-Class App Development Exam 3
Week 14 - 12/02
- Production App
WEEKLY GRADES AND STUDENT COMMENTS
Week 12 - November 18, 2021
Week 11 - November 11, 2021
Week 10 - November 04, 2021
Comments from students |
★
★
★
★
★
good |
★
★
★
★
&e8e2e2;
Everything is consistence. |
★
★
★
★
★
I learned something |
★
★
★
★
★
Today's class is alright. I learned how to make an app about photos. However, for the quiz, there's the last question said the valid sources of image data for Core Images. I got that question wrong. I wonder if the valid sources are IOSurface, Matrix2D, CIImages, etc. |
Week 9 - October 27, 2021
Week 8 - October 20, 2021
Comments from students |
★
★
★
★
★
:( :( :( Please be lenient :( :( :( I just wanna finish my degree |
★
★
★
★
★
speechless |
★
★
★
★
★
Everything is consistent. |
★
★
★
★
★
The introduction of performing segueways with tab bars and having to validate json data made the exam very difficult. Due to the problems and bugs these caused it was easy to become stuck in the exam with no room to progress until it was fixed. |
★
★
★
★
★
The 3 hours was enough time for me to complete the exam. I did not feel rushed throughout the exam. It was appropriately difficult, as someone who did the exercises but did not heavily prepare. |
★
★
★
★
★
the only way to finish this completely is not running into any issues. if you run into any issues and have to troubleshoot something like you would in a job enviornment you dont finish. we either need more time or less work... |
★
★
★
★
★
We face many technical issues in between. Time is always a factor that blocks, So require one more extra hour for exams |
★
★
★
★
★
Please provide much time |
★
★
★
★
★
Only giving 3 hours to complete adds a lot of pressure which causes you to forget things you otherwise would be able to do easily. I spent most of my time having to re-look up how to do basic things because of this. I think having a larger window, like 12 hours, would make these exams feel much smoother and less stressful. Also I had an issue with my tab bar icons not showing up in the simulator which was driving me crazy and I wasn't able to fix it. |
★
★
★
★
★
The in-class programming assignment is alright. It's like exercises 3-5. However, the hard part of the programming assignment is the part where the code checks if the images and prep times exist. |
Week 7 - October 13, 2021
Comments from students |
★
★
★
★
★
I learned a lot in this lecture. I can utilize what I learned from Exercise 5 to do Exercise 6 although I need to implement the Map View. I hope the exam next week won't be hard |
★
★
★
★
★
Interesting class |
★
★
★
★
★
implementing maps is very useful. Worthwhile course. |
★
★
★
★
★
Very useful topic. I like that we started the in-class demo early and had time to work on it with the leftover time. |
★
★
★
★
★
There could have been more thorough explanations about what is being used and why it was being used. I understand that certain methods, functions, or attributes are used because they work for the particular demo, but it would be nice to know like, "hey, you would use this [other method] if you wanted to do [insert alternative goal]. But because we only want to [insert demo goal], we are using this method." |
★
★
★
★
★
none that I can tell |
★
★
★
★
★
Good exercise explanation! Appreciated the pointing out of where to find function data in the documentation. |
Week 6 - October 6, 2021
Comments from students |
★
★
★
★
★
all good this week |
★
★
★
★
★
The class in interesting and consistent. |
★
★
★
★
★
Well paced lecture that allowed for demo to be finished before the class ended which made room for further questions or assistance. |
★
★
★
★
★
Today's class is alright. However, the pdf could have a note that says that the project should be in made in XCode 12.5+ or 13+ since XCode received an update 2 weeks ago. Also, we could have seen examples of the UI on iPhone SE, iPhone 11, and iPhone 12 so that we can know how to make proper UI on them besides iPhone 8. |
★
★
★
★
★
The Class is so intresting |
★
★
★
★
★
Can you add some comments to list out the steps while doing the demo app so we can review the code easier and also benefit those who couldn't make it to class? Thank you so much |
★
★
★
★
★
Thank you so much for class today |
Week 5 - September 30, 2021
Week 4 - September 23, 2021
Comments from students |
★
★
★
★
★
Please try to increase the time for the test. Time is not sufficient to finish the exam in the prescribed time. Even though all the topics in the test are doable, it requires 2 more hours ie., total 5 five hours for the perfect completion of tasks mentioned in the test. Requesting you to decrease the percentage of inclass test and increase the weightage of weekly exercises and quizzes. |
★
★
★
★
★
There wasn't enough time to complete the assignment... I was in a huge rush so the quality of my code suffered as a result... |
★
★
★
★
★
I spent most of the time for UI and therefore didn't had enough time for completing all the requirements. The assignment has covered all the topics from our classes. |
★
★
★
★
★
The time is not at all sufficient and it was like if we does a single wrong the whole thing gets collapsed.Please try to keep a new assessment by considering the last one as practice assessment.It will help us all to give our best. Thank you |
★
★
★
★
★
Although all the requirements can be met and doable, I feel that the time is not at all sufficient for the questions. Some logics have to be implemented by own and takes time to think. Other features which are already shown requires multiple attempts in adjusting constraints. Overall, I think either the time should have been extended or the difficulty should have been trimmed down. |
★
★
★
★
★
The in-class programming assignment is okay except I find it difficult to finish it in 3 hours given that there are some errors and mistakes to fix that I end up having to fix. I also forget to set the view controllers as well until I found out how to do so. If possible, please give us enough time to work on the future in-class programming assignments so that we have enough time to fix some errors if possible. |
★
★
★
★
★
Everything is consisten. The lecture is enjoyable. |
★
★
★
★
★
I did not like the format of the Examination. Compared to how the class structure is with assignments, the exam is out of place. Giving us 3 hours to take the exam sounds good on paper (for most classes). But not for programming. In the real world, quality programming takes a lot of time. People are given weeks or even months. Although not applicable for exams, atleast give us 24 hours like all the given assignments. Proposal: Give exams 24 hours to finish. Many other COSC classes that give out programming exams made it so students were given 24 hours to do. It just makes sense for this class since the assignments were administered the same way. Also you do not have to sit there staring at us for 3 hours (waste of time). Even after the 3 hour exam, I doubt that TAs started to grade them right away (and would start grading them over the weekend). Based on that, it would make no difference transitioning from a 3 hour marathon to a 24 hour deadline. Please consider that many students did not have enough time to finish the exam - again the assignments gave us 24 hours to finish compared to 3 hours - unrealistic expectations. Thanks |
★
★
★
★
★
I just wish I could have more time to finish it. It would be great if the next in-class programming assignment can be given a day to finish b/c I felt that I could have finished it with extra time. It's hard b/c one mistake could take me 5-10 mins to debug and the time causes me to be overwhelmed and can't process what I need to do in a timely manner. It rushed me and therefore make me make dumb mistakes. So please take into consideration adding more time for us to program. Thanks! |
★
★
★
★
★
I wish I had more time. If you check my submission, I may need about 30 more mins to finish it. Many people have jobs before class like I do, and how are they supposed to finish a tense assignment in a very limited amount of time? Can we somehow increase the time? Thank you so much TA's and professor. |
★
★
★
★
★
I'm using macincloud, which is a little slow and hard to control, so I consider myself somewhat handicapped during a timed project. Besides that, I wasn't expecting to have to come up with a matching algorithm for a class about iOS app development. I lost about 30 minutes trying to figure out the logic for that. I think I would have been able to complete everything including the extra credit if it weren't for those two things. |
★
★
★
★
★
I feel as if the exam difficulty was appropriate and the time alloted was sufficient to complete the exam. I didn't do as much practice/reviewing as a I should have, but doing the exercises each week still gave me the skill/review material to complete the exam. |
★
★
★
★
★
The constraints were the hardest to do; everything else was straightforward. |
★
★
★
★
★
I feel the time provided is not sufficient to make a fully realized and working app such as the previous assignments. I do not believe our capability to create an app in 3 hours is a proper test of what we've learned. |
★
★
★
★
★
The difficulty was comparable to the homework's, but the time limit was not. I feel like some extra time might make it better for a lot of students. For me, an extra hour would've been the perfect amount of time. |
★
★
★
★
★
The assignment itself wasn't hard, but the time to code an app didn't make much sense. I think 3 hours timeframe was for those people with proficient knowledge of Swift as well as Xcode plus an "error-free" environment. It was irritating seeing errors pop up here and there which I had to stop to get errors fixed in order to continue. For the next exam, could you please make it longer? |
★
★
★
★
★
The main reason this exam was difficult was due to the time constraint. It would be better to have an exam which last 24hours since that is closer to real world application. As someone who has interned for a financial services company, no one is ever asked to create a functioning app in just 3 hours. Making next exam last 24 hours would represent a more accurate practical experience that could be applied in the workforce. |
Week 3 - September 16, 2021
Comments from students |
★
★
★
★
★
It is hard to follow along with the TA as she goes through the demo pretty fast. |
★
★
★
★
★
Awesome class! |
★
★
★
★
★
Everything was good |
★
★
★
★
★
Appreciated the lesson. Love the examples and justifications behind the color language. As for the exercise. Good pace for the most part, appreciate going over particular explanations of functions and whatnot. However, please slow down. Mostly consistent, but for instance... almost no one had the assets folder open. No one knew what you did to fix the right stack top constraint. You clicked around, fixed it, didn't say a single word, and just moved on. Please. Keeping up is enough of a chore |
★
★
★
★
★
Very interesting subject and useful classes by professor and the TAs. Please give the exam easy. |
★
★
★
★
★
The information was useful but a bit confusing to understand during the Demo. Seemed to be rushed during the end due to time. |
★
★
★
★
★
Please slightly slow down during TA explanation, mainly during the explanation when inputting text in boxes as it can be hard to follow. |
★
★
★
★
★
I like the consistent of the lessons. The class' pace is good. |
★
★
★
★
★
Please Increase the Homework Duration |
★
★
★
★
★
The lecture and exercise are good and useful. But, the hard part of the exercise is optimizing layout. |
★
★
★
★
★
the assignment was pretty confusing. The demo the TA did didn't work with other iphone versions. |
Week 2 - September 9, 2021
Comments from students |
★
★
★
★
★
The in class lecture and demos are very helpful to completing the exercises and learning how to use xcode. A lot of what we have to do would be confusing without them. |
★
★
★
★
★
Thanks for giving much hands-on experience But please provide much time for assignments atleast 2 days so that we can work on that |
★
★
★
★
★
I could see the screen much better this time around and it was easier to follow. However, I still got lost somewhere because of the speed the TA was going. Unfortunately, slowing down the lab example even more would just cause the class to go over the alloted class time. I was able to catch up using the recording. The exercise wasn't difficult but still time-consuming if I have to rewatch the lecture. This is unrelated to the lesson but it would be really helpful if the deadline is extended to 9 pm the following day instead of 7pm. After class, I get home around 8:30 and have to prepare and sleep early for work the next day. I don't get out of work until 5 pm and taking into account travel time around 6pm. In cases like week3 exercise where the lab example lasted the entire class time, we didn't have in-class time to work on the exercise, the window to complete the exercise was tight. Having the due time be at 8 or 9pm would help. 1 or 2 extra hours doesn't sound too outrageous. |
★
★
★
★
★
Everything is consistent. |
★
★
★
★
★
Slow down just a tad with the exercise, please. Read the room - multiple people frustrated, unable to follow at speed, several giving up. Happening to have a previous exercise project open and "just copy"ing the code over is unlikely as well. 100% energy devoted to barely keeping pace, 0% to actually digesting the information. However, quite well structured! Covered everything needed quite well, once I looked over it more slowly. Thanks! |
★
★
★
★
★
I thought week 3 was much better. The tutorials and demo were much easier to follow |
★
★
★
★
★
The speed of this class much better and easier to follow! |
★
★
★
★
★
The weekly exercises are helpful to understand the topics. Wish I had some more time to submit the last exercise. It was not difficult but more time taking to complete. |
★
★
★
★
★
For Shaila's demo, please do a recap of all the previous steps after every 10 min of instructions so that we can follow Shaila and not get left behind if we have an issue or bug. Also try to leave all the questions at the end of the demo, or answer them quickly instead of helping 1 student debug while the rest of the class waits. Frequently pausing during the demo should give us enough time to figure out our bugs ourselves as to minimize program bugs or issues. This will in turn reduce the number of times Shaila has to pause to help out one student. I am in this class' Discord and this is what I think should happen taken from personal experience and live discussions with other students during previous class sessions. |
★
★
★
★
★
I chose not to attend the TA's example and simply completed the assignment afterwards while following the recording. This is a much more effective way for me to learn since I can fastforward the video to get through it faster and rewind whenever I miss something. |
★
★
★
★
★
need more complexity in the building app section |
★
★
★
★
★
It is easy to lose my place or fall behind during the lecture. This does not help the fact that we only have 24 hours to complete the assignment. At the moment it is manageable but it could become very stressful with harder lectures. |
★
★
★
★
★
Class went smoothly. I still had trouble following along during lecture. But thanks to the lecture recording I was still successfully able to learn the material. |
★
★
★
★
★
I feel like the professors pace was much easier to follow this time. However the TAs pace seemed much faster and I had a harder time following her.. |
★
★
★
★
★
The class is helpful, but it admittedly took much longer than necessary to demonstrate and explain to us the demo and its code. So much so that we did not have any time to actually begin the excercise that we had been given during the third hour of class as we normally should have. It would be preferable for things to be accelerated such that we can have at least half an hour at the end of class to work on the assignment. |
★
★
★
★
★
Based on the difficulty of the weekly exercises, it would be great to have more time to finish them. At least until 11:59pm on Friday or better if it's due on Sunday at 11:59pm |
★
★
★
★
★
The class and exercise are alright and interesting. Also, the tutorial is lengthy but helpful. But, we could have some time after the tutorial to work on the exercises. |
Week 1 - September 2, 2021
Comments from students |
★
★
★
★
★
Great class! |
★
★
★
★
★
Professor was moving too fast to follow. Shaila went at a good pace (a little slow due to technical issues) and helped explained what many of the xcode buttons did. I felt a lot more confident after following along with Shaila. |
★
★
★
★
★
The class was very interesting however it was easy to fall behind or lose my place in what was being discussed |
★
★
★
★
★
I will suggest going slower in the demos and explaining the processes of the code and what the code does. |
★
★
★
★
★
Struggle to follow with Professor during coding examples. |
★
★
★
★
★
It is very hard to follow a live tutorial. I think it would be better if the tutorial/examples were pre recorded and the excersizes were posted at the beginning of class. That way once students watch the initial live lecture, we can move on to the tutorial and exercise while being able to ask questions in class if we need to. |
★
★
★
★
★
The lesson was easy to follow and the walk through was helpful for the follow-up assignment. |
★
★
★
★
★
I have to work at my internship on Fridays. So I think that I will find it be difficult to turn in the exercises the next day. I hope the future exersises will not be hard. If not, I would like to move the turn in day to be Saturday. |
★
★
★
★
★
It was real informative, I was a little confused after reading the material but the ta's presentation helped me out a lot! |
★
★
★
★
★
for questions 3, there where multiple answers since the exercise used Sets and printing out Sets results in randomly indexed arrays. so running the program more than once outputs an array that is ordered randomly. please consider marking this correct. |
★
★
★
★
★
Pacing is inconsistent. During lecture too much time is spent on easier steps while more difficult to follow parts of the exercise are sped through making it difficult to follow at times. |
★
★
★
★
★
TA example goes a bit too fast and it's hard to follow at times. Also, the font is very small on her editor. Hard to see on the projector in F2F class. |
★
★
★
★
★
The class was good but should have detailly explained all the functions. |
★
★
★
★
★
The first quiz is fair and alright but question 3 seems to have more than one correct answer or there seems to be a randomized correct answer. Please make the future quizzes have questions with no randomized correct answers. |
★
★
★
★
★
It's really hard to read code from the screen. If there are ways we could turn monitors in the lab, that would be great. appreciate all the hard works TA's doing |
★
★
★
★
★
The TAs segment is just fine. THe professor's segment was too fast. Will have to look back at the lecture to figure out everything at my own pace. I also noticed you guys did not go over constraints and alignment which are very important parts of storyboard |
★
★
★
★
★
It would be better if we could follow the instructions on our own and create the exercise by reading the directions. Once we have a finished app or project then we should watch the guided project to remove any confusion or bugs. |
★
★
★
★
★
can the professor slow down during his lecture, i can't follow him while trying it myself. |
★
★
★
★
★
It was fun. Since the mouse pointer is really small, it would be helpful if you could say where you're hovering your mouse before clicking. |
★
★
★
★
★
Quiz there was an error on Question 3. |
★
★
★
★
★
Class is Intresting |
★
★
★
★
★
It's hard to follow along in class with how quick the demos are built. Many of us got lost and were unable to keep up. |
★
★
★
★
★
great lecture and class. Thank you TA and professor |
★
★
★
★
★
IOS app development is exciting and learning the app developemnt for first time which is very useful. Thank you for the very good support to the professor and the TAs. |
★
★
★
★
★
Overall it was good, though it did feel pretty fast at times. On a side note, something I forgot to ask in class: I'm still not exactly sure why [1,2,9] was an incorrect answer for question 3 on this first quiz? |
★
★
★
★
★
nothing to complain so far |
★
★
★
★
★
so good so far |
★
★
★
★
★
I lost interest and focus when the TA started. The issue is that it seemed like (especially for the first 45min) everything the TA said and was doing was a repeat of what the professor had just done. Also, the quiz asked a question about outlet/action and then it was covered in class AFTER we were quizzed on it. I would imagine that a topic should be taught to students before it shows up on a quiz. |
★
★
★
★
★
Professor reviews material quite fast while TA is pretty slow. |
Informative class but not enough tool for me to build very fancy application
The class was OK, and I did learn some stuff about IOS
Everything is consistence
It was a very interesting lecture. It was my first time working with anything ML related but it was simple and straightforward.
The exercise wasn't very hard because it was exactly what we went over in class
The class is alright. We get to learn about NaturalLanguage and Core ML Models. On the exercise, I added a part where the input text that is inputted is passed into the text to output and then is either tokenized, lemmatized, or receives an analyzed sentiment score. The hard part of the exercise was the constraints because I had to use them to fit the images on the pdf to the best of my ability.