COURSES
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
- Mohammad Imtiaz Nur (This email address is being protected from spambots. You need JavaScript enabled to view it.) Office Hours: Fri 3-5pm @ TEAMS
- 15% Quizzes
- 45% (3 x 15%) In-class programming assignments
- 10% In-class interactive programming exercises
- 30% Course project
Day, Time and Room
Course Project
- Thursday, 4:00-7:00 pm @ 315-HBSC and @ TEAMS
Requirements
- Mac OS - 10.15.6
- XCode - 11.6
- Do not update your mac OS version or XCode version during the semester.
- Otherwise, we might be unable to grade your exercises and assignments.
Class Video Resources
-
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: 50% of the total project grade will be assessed on 10/22/2020. The other 50% will be assessed on 12/03/2020.
- Specification: 20%
- novelty-5%, completeness-10%, elegance-5%
- Software: 80%
- 40% robust functionality, 30% user interface, 10% coding excellence
COURSE OUTLINE
Week 1 - August 27, 2020
- Topics to Cover: 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 - September 03, 2020
- Topics to Cover: XCode, UIKit (text fields, buttons, labels), UIAlertController
- UIKit, UIAlertController
- Hello_world tutorial1, Hello_World _tutorial2, Alert
Week 3 - September 10, 2020
- Topics to Cover: Protocol & Delegation, View Controllers, Segue, Navigation Controllers
- Protocol, View Controllers, View Controller
- Segue Tutorial, Protocol Delegate Tutorial
Week 4 - September 17, 2020
- Topics to Cover: Tab bar controller, UIStackView, and Auto Layout
- Auto Layout, UIStackView, UITabBarController
- Stack View Tutorial, Auto Layout Tutorial, Tab Bar Controller Tutorial
Week 5 - September 24, 2020
- Programming Assignment 1
Week 6 - October 1, 2020
- Project Specification
Week 7 - October 8, 2020
- Topics to Cover: Interacting with web services, UITableView, UserDefaults
- Tutorial links: URLSession Tutorial, JSON Parsing 1, Creating Table View, Work with JSON Objects
- Webservices, UITableView, UserDefaults
Week 8 - October 15, 2020
- Topics to Cover: • Location, MapKit, Gesture Recognizer, Local Notifications (optional)
- MapKit, MKMapView, CoreLocation, CLLocationManager, UIGestureRecognizer, Local Notification
- Tutorials: Using CoreLocation and MapView, Map Annotations, Reverse Geocoding, Gesture Recognizer, Map with gesture recognizers
Week 9 - October 22, 2020
- Programming Assignment 2
Week 10 - October 29, 2020
- Project Demo
Week 11 - November 05, 2020
- Topics to Cover: imagepicker, Camera, CoreImage - Filters (optional)
- UIImagePickerController, CoreImage
- Tutorials: Image Picker, Filters 1, Filters 2, Save Image
Week 13 - November 19, 2020
- Programming Assignment 3
Week 15 - December 03, 2020
- Final Project Presentation and Demo
WEEKLY GRADES AND STUDENT COMMENTS
Week 1 - August 27, 2020
Week 2 - September 03, 2020
Week 3 - September 10, 2020
Week 4 - September 17, 2020
Week 5 - September 24, 2020
Week 6 - October 1, 2020
Week 7 - October 8, 2020
Comments from students |
★
★
★
★
★
I didn't find it very difficult because it was similar to the demo in class. |
★
★
★
★
★
This was a very information-dense demo. And, as a result I was able to complete the exercise to a further extent. And, I really benefited by this. Thanks. |
★
★
★
★
★
Shaila was very good . thank you! |
★
★
★
★
★
The tutorial was helpful as usual. I did not have much trouble following the tutorial this week. I really liked the example provided for the MVC structure by Professor Pavlidis. This will be really helpful for our project. |
★
★
★
★
★
Informative. Thank you !! |
★
★
★
★
★
Your efforts to make sure the class is caught up with the TA during the second half of the lecture is greatly appreciated. |
★
★
★
★
★
I feel like it went a bit faster today, but Shaila was very helpful anyway, so I got back on track. |
★
★
★
★
★
Theory - 5/5, Practice - 2/5 |
★
★
★
★
★
Content was very interesting because we saw how to incorporate the weather API into an application. During the TA demo, the explanation was informative. However, it would be appreciated if the demonstration would be a little slower. While working on a single laptop screen, I have to go to a different window to implement the changes being demonstrated in my work-along XCode project, and by the time I get back to the Teams presentation window, I've missed the next two steps. |
Week 8 - October 15, 2020
Comments from students |
★
★
★
★
★
The lecture today is very straightforward even though there are many other materials that can't be covered during the time frame. |
★
★
★
★
★
Today's class went very well. Your suggestions for the programming assignment next week will definitely be utilized. |
★
★
★
★
★
The quiz come without the lecture note of week 7, That made it hard for us to know where to focus on practicing. Today's class was excellent. |
★
★
★
★
★
The lecture was pretty straightforward so it wasn't too bad. I think during the last half of the class, the demo could be polished a bit because it can sometimes be confusing when the demo has errors. I think explanation on the errors would really be helpful. |
★
★
★
★
★
This week's tutorial had a lot of pieces to it but I thought the tutorial went well. It was easy enough to follow along and code while it was being taught. It also made Exercise 6 easier to complete at the end of class. |
★
★
★
★
★
The class was helpful to implement many properties of the map and JSON. Thanks for that. |
Week 9 - October 22, 2020
Comments from students |
★
★
★
★
★
I got caught up.. autolayout was worth more than I was expecting.. But on the teaching side-top notch. |
★
★
★
★
★
The exam is very straightforward. I couldn't get it completed mostly because of personal reasons (slow loading/building due to overheating plus some minor bugs). |
★
★
★
★
★
The exam was set up really well, if I hadn't made the mistake of declaring lat and long as int, rather than double. I would have had about 45 minutes more to work! |
★
★
★
★
★
Because of some bugs, it was difficult to move next steps. So time was limited considering this. |
★
★
★
★
★
I liked how assignment involved a lot of the topics we had gone over in class, so it was a good practice in that aspect. The biggest struggle was just finishing, or at least attempting to, within the time frame. |
★
★
★
★
★
It wasn't too difficult in terms of what we had to do but the 3 hour time limit was not enough and is what made it difficult. |
★
★
★
★
★
Many features to integrate at once within the time frame, could be accomplished if we had a bit more time. Overall most of the exam content was things we have previously covered, certain features required a more advanced understanding. Would have rate higher in satisfaction if exam completion was more achievable within the deadline. |
★
★
★
★
★
The exam was fair, not too difficult and not too easy, and it could have been a fun experience as it pushed me to think fast and act fast to solve the programming problems. Unfortunately, the timing, especially with the Mac heating and slowing down, at the last hour made the exam a really frustrating experience. Building and running simulation took almost 2 minutes at the last hour on my MacBook air. I hope that next time the problem with the machines slowing down would be considered when deciding the length of the exam. |
★
★
★
★
★
Time was not sufficient for the exam. |
★
★
★
★
★
I feel it was not that tough but it was long. I got an error and because of that I wasn't able to implement all the tasks. |
Week 10 - October 29, 2020
Comments from students |
★
★
★
★
★
The overall way we had to turn in the assignment really gave me a sense of understanding . I mean, it gave a sense of completeness . And then Dr. Pavlidis went further and explained what the app should look like, from a developer stand point. Also that was very important and it helped me understand the process even more. To be honest it exceeded what I would normally expect from a computer science lecture. |
★
★
★
★
★
Thank you professor for the feedback. |
★
★
★
★
★
I really liked that ya'll pointed out things that they could improve on because it helps me know what we also should look out for. |
★
★
★
★
★
The TAs could let everyone who they want to present know upfront so everyone can be ready. |
★
★
★
★
★
The feedback for other groups was a little helpful. My project didn't have a lot of those issues, though. I also felt it was a lot of repetition from the previous feedback. However, it does appear some students needed the feedback again. I hope I can get more personal feedback if the written feedback is unclear. |
Week 11 - November 05, 2020
Comments from students |
★
★
★
★
★
There is no filter named vintage, and I used an arbitrary filter library from the apple developer website. I spent a lot of time on stack overflow, and it seems other students did as well, but we didn't see a specific filter to use for vintage. In future, it would be helpful to know which libraries were to be used for the filters. |
★
★
★
★
★
Now I can make the next Instagram filter app! |
★
★
★
★
★
Every detail was relayed very clearly to me in this one. This lesson, or maybe it was the time to digest this information... I'm not sure; now I understand delegates more clearly. And, it was easier to understand I think because: the moment where Shaila jumped to the definition. For sure, I will definitely tamper with the info.plist and research different libraries.. whilst thinking critically in the future. |
★
★
★
★
★
The assignment was similar to class exercise. |
★
★
★
★
★
Please continue typing the info.plist entries into the chat, sometimes you leave it really fast. |
Week 12 - November 12, 2020
Comments from students |
★
★
★
★
★
This was my first time creating anything that used machine learning! Very interesting. |
★
★
★
★
★
This last lecture is no doubt one of the most interesting lectures besides the professor's feedback sessions. I worked on an NLP project before, and I really enjoyed this quick review. Thank you. |
★
★
★
★
★
Shaila did a great job walking us through the tutorial. It went a bit fast but I was able to keep up since I did not run into many issues. Shaila was good about slowing down if students had questions, though. I truly appreciate the hard work of Professor Pavilidis, Shaila and Mohammad. I know I learned a lot this semester and I am excited to use these new skills to create great iOS apps in the future. Thank you for everything this semester! |
★
★
★
★
★
Uploading the project took more time than others because of its size. Other than this, the topic was explained well in the class. The exercise is fair enough considering the content. Thank you for your effort and contribution! |
Week 13 - November 19, 2020
Comments from students |
★
★
★
★
★
It was just revision of the concepts. |
★
★
★
★
★
Autolayout I wish we went more in depth. |
★
★
★
★
★
I believe this will be my best score. Maybe I am finally getting the hang of it. The assessments are tough and I wish it would focus more on the understanding of the material. If not, I wish the scores were higher allowing for more chances to get a good grade. Either way, I have learned a lot in this class and I am excited to use my new skills in the real world. Thanks for the education! It was very valuable for my future! |
★
★
★
★
★
I don't remember being taught how to communicate data between view controllers, via, tab bar, button press. I spent probably about an hour of the alloted time on this, and could not figure it out. |
Week 15 - December 03, 2020
Comments from students |
★
★
★
★
★
The feedback provided was very useful and helped me learn more about how to improve iOS applications in general. It was a fairly relaxing end to the semester as well. Sometimes the presentations count for a grade and only add to the anxiety. It was nice to present my work without the added pressure while continuing to learn more about iOS app development. |
★
★
★
★
★
It's the last but also one of the great classes to learn from other projects. |
★
★
★
★
★
It was a great feedback session. |
★
★
★
★
★
Fun class today. |
★
★
★
★
★
It was nice to be able to re-present to show the improvement of all apps, and explain anything we might have to so that the app's purpose is clearer |
Enjoyed seeing the varying levels of complexity of apps as well as specific recommendations in design such as using a back and done top ios buttons.
Liked the part where actual projects were given feedback. So we can all learn from the perfections or the mistakes made by other students. It would be nice if the professor can also share a short review of individual student's project through email. So each student can better enhance their own projects.
I was unclear about the scope of our project because I'm afraid that my team is planning something we couldn't finish before the expected time.
We're thinking to change the entire app to a different one because the involvement of the database may slow down our development process.
I thought as this is a software related class we would be required to make the app more efficient but with today's class I understood that I need to make the application through more of a marketing point of view. I will probably have to re-design the app from scratch from the valuable feedback provided.
Very useful.
It was good.
I think every group would benefit from the feedback on their specific project. I know the feedback was meant to be constructive but some students may shy away from the criticism in front of the whole class. Maybe there should also be feedback for every group that is not in front of the class.
I had no information to go off of besides the 6 steps we were given to create an app idea. I do not know what features are required for our app (Database, API, Server interactions) and also do not know how long these things take to implement as we have not gone over them in class. So as Vitalii repeated all class long the requirements for most of our app ideas will take too long to complete within one or two months. I wish to have a more structured rubric of what is required from our apps so that it can suit the requirements while also not being too time consuming to complete. I don't see the point in giving us an assignment to create a full app idea with no guidelines when all we have covered so far is simple, single usage apps.