COURSES
KEY INFORMATION
- Prof. Ioannis Pavlidis (ipavlidis[@]uh.edu) Office Hours: Thu 3-4 pm @ TEAMS
- Mert Saritac (mesaritac[@]uh.edu) Office Hours: Wed 12-01 pm @ TEAMS
- Hanife Sen (hsen[@]cougarnet.uh.edu) Office Hours: Mon 11-12 pm @ TEAMS
- 21% (7 x 3%) Weekly app assignments
- 45% (3 x 15%) In-class app development exams
- 34% Semester-long app project
Grade-Thresholds: A >= 93, A- >= 90, B+ >= 85, B >= 80, B- >= 75, C+ >= 70, C >= 65, F < 65
- App Specification: 20% of the total project grade
- 10% description, 30% user flow, 20% wireframes, 20% mockups, 20% prototype
- Beta App: 30% of the total project grade
- 50% robust functionality, 30% user interface, 20% coding excellence
- Production App: 50% of the total project grade
- 50% robust functionality, 30% user interface, 20% coding excellence
The project can be done in pairs. Pairs
need to be
declared by the end of the second week of classes.
- Thursday, 4:00-7:00 pm @ 315-Health and Biomedical Sciences Building 1 and @ TEAMS
- Mac OS - 15.6 and higher
- XCode - 16.4 and higher
COURSE OUTLINE
Week 1 - 08/28
- ● Introduction to Xcode, iOS, and SwiftUI
****Materials for the Week****
- ⇒ Overview of iOS
- ⇒ Overview of Xcode
- ⇒ Hello SwiftUI
- ⇒ Introduction to iOS App Development with SwiftUI
- ⇒ Swift Playgrounds
- ⇒ https://swiftfiddle.com
Week 2 - 09/04
- ● Views, Structures, and Properties/Layout and Style
****Materials for the Week****
Week 3 - 09/11
- ● Buttons and State/Lists and Text Fields
****Materials for the Week****
Week 4 - 09/18
- ● Navigating Apps/Presenting Content
****Materials for the Week****
Week 5 - 09/25
- ● In-Class App Development Exam 1
Week 6 - 10/02
- ● App Specification (Submit Spec by 10/01)
Week 7 - 10/09
- ● Retrieving Content from a Server/Responding to User Input
****Materials for the Week****
Week 8 - 10/16
- ● Capturing and Displaying Photos
****Materials for the Week****
Week 9 - 10/23
- ● In-Class App Development Exam 2
Week 10 - 10/30
- ● Beta App (Submit Beta App by 10/29)
Week 11 - 11/06
- ● WatchOS
****Materials for the Week****
Week 12 - 11/13
- ● Machine Learning
****Materials for the Week****
Week 13 - 11/20
- ● In-Class App Development Exam 3
Week 14 - 11/27
- ● Thanksgiving Week! 🦃
Week 15 - 12/05
- ● Production App Presentation (Submit Production App by 12/02)
KEY INFORMATION
- 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
- Fettah Kiran (fkiran[@]uh.edu) Office Hours: Mon 12-01 pm @ TEAMS
- Mert Saritac (mesaritac[@]uh.edu) Office Hours: Wed 12-01 pm @ TEAMS
- 7% Quizzes
- 14% Weekly app assignments
- 45% (3 x 15%) In-class app development exams
- 34% Semester-long app project
Grade-Thresholds: A >= 93, A- >= 90, B+ >= 85, B >= 80, B- >= 75, C+ >= 70, C >= 65, F < 65
- App Specification: 20% of the total project grade
- 10% description, 30% user flow, 20% wireframes, 20% mockups, 20% prototype
- Beta App: 30% of the total project grade
- 50% robust functionality, 30% user interface, 20% coding excellence
- Production App: 50% of the total project grade
- 50% robust functionality, 30% user interface, 20% 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.
- Thursday, 4:00-7:00 pm @ 315-HBS1 and @ TEAMS
- Mac OS - 14.6.1 and higher
- XCode - 15.4.0 and higher
COURSE OUTLINE
Week 1 - 08/22
- ● Introduction to iOS and Swift
****Reading for the Week****
- ⇒ Overview of iOS
- ⇒ Overview of Xcode
- ⇒ UIKit
- ⇒ SwiftUI
- ⇒ SwiftUI vs. UIKit
- ⇒ A Swift Tour
- ⇒ Swift Playgrounds
- ⇒ https://swiftfiddle.com
Week 2 - 08/29
- ● Xcode, UIKit (text fields, buttons, labels), UIAlertController, SwiftUI
****Reading for the Week****
Week 3 - 09/05
- ● Protocol & Delegation, View Controllers, Segue, Navigation Controllers
****Reading for the Week****
Week 4 - 09/12
- ● Tab Bar Controller, UIStackView, and Auto Layout
****Reading for the Week****
Week 5 - 09/19
- ● In-Class App Development Exam 1
Week 6 - 09/26
- ● App Specification
Week 7 - 10/03
- ● Interacting with Web Services, UITableView, UserDefaults
****Reading for the Week****
Week 8 - 10/10
- ● Location, MapKit, Gesture Recognizer, Local Notifications
****Reading for the Week****
Week 9 - 10/17
- ● In-Class App Development Exam 2
Week 10 - 10/24
- ● Beta App
Week 11 - 10/31
- ● UIImagePicker, Camera, CoreImage - Filters, Apple Watch Programming
****Reading for the Week****
Week 12 - 11/07
- ● ML, Core ML, Models, NLP
****Reading for the Week****
Week 13 - 11/14
- ● In-Class App Development Exam 3
Week 14 - 11/21
- ● Project Presentation and Feedback
Week 15 - 12/05
- ● Production App Submission
WEEKLY GRADES AND STUDENT COMMENTS
![]() |
Comments from students |
TAs are very helpful. |
![]() |
Comments from students |
![]() |
![]() |
Comments from students |
I feel like we get totally different stuff compared to the practice exams and also teaching in mid exam is just crazy. confused |
The extra time on the next morning is greatly appreciated. :) This exam felt a bit more reasonably scoped than the last (and completable were it not for the ML hangup that halted everybody). |
I would suggest for the future assignments and future exams for this class. To have a detailed description about the question, also, the resources required to solve the problem. Because in three hours, you want to focus more on solving the problem rather than thinking of where is the end point for API. Overall, the exam wasn’t that difficult. But it became time consuming and confusing because the question wasn’t vague. |
I think the exam itself and what it covered wasn't insanely difficult especially if you attend class. I think the issues stem from Xcode itself, and how it functions with Swift and SwiftUI. I think there are many unintuitive errors which can cause roadblocks in the process since the exam itself was fine. |
Description could have been better if it said that we need to run the app on our macbook. |
Api and Model prediction part took very long to get data predicted and output on screen as intended. |
![]() |
![]() |
![]() |
![]() |
Comments from students |
![]() |
![]() |
![]() |
![]() |
Comments from students |
![]() |
Comments from students |
It was a good day.
|
good
|
Great project presentations.
|
Received good comments from professor and TA about the Beta app and changes needed for final app.
|
good
|
Comments and suggestions from professor allowed me to understand what should be changed within our App.
|
![]() |
![]() |
Comments from students |
exam was doable in given time.
|
![]() |
![]() |
![]() |
![]() |
Comments from students |
★
★
★
★
★
Not really a comment about the class, rather an inquiry. Would it be possible to get more than 7 points back for fixing the design of our project app? Perhaps 50% if the proper changes are made? |
![]() |
![]() |
![]() |
Comments from students |
★
★
★
★
★
Hi, I think it would have been nice if we were able to do presentations for our app specification / mockup / prototype before it was due so that we can receive feedback and improve upon it before then. It would also be cool if we have the opportunity to revise and resubmit our app specification based on the given feedback to ensure we are on the right track. Thanks. |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
END OF SEMESTER COMMENTS
★
★
★
★
★
I enjoyed this semester very much. This was my last class ever at university as I am a graduating senior, and I am very satisfied to know that I learned a lot in this class. I hope to pass, so I can graduate this month, All the TAs were very helpful, I only struggled with the very first exam of the semester because of timing otherwise I am happy with the work load and environment of this class. Thank you for hopefully being my last class at UH it was a great experience to finish my last 4 years. |
★
★
★
★
★
One of the best CS classes at UH! |
★
★
★
★
★
Very interesting class ever. TA’s are really knowledgable and very helpful in clarifying doubts.Thank you for your patience |
★
★
★
★
★
This was a challenging but rewarding course. The professor and the TAs were a great pleasure to work with. Perhaps I'm just bad at googling, but I never found the class website (or much info on the class in general) during my research on this class during registration. I think it would be beneficial for future students if it were easier to find the website. |
★
★
★
★
★
The class was a little weird on teaching UIKit vs SwiftUI. I think in the future you could add more resources for each since sometimes a in class exercise was only done on SwiftUI and other times it was only done on UIKit |
★
★
★
★
★
This class is one of the most enjoyable courses I have taken in Computer Science. For an introductory class, I learned a lot about app development and I feel pretty confident in my skills to develop an app all on my own now. |
★
★
★
★
★
Great thought put into the assignments. Glad to see common patterns shown and hands on development during the lesson. |
★
★
★
★
★
I have had the privilege of being a part of both your "Statistical Methods in Research" course and the "Ubiquitous Computing" course this semester. I wanted to take a moment to express my sincere gratitude for the immense knowledge and insights I gained from these classes. Your teaching method is not only engaging but also deeply informative, and it has significantly enhanced my understanding of these complex subjects. I would also like to extend my thanks to Vitali and Fettah. Their dedication during TA hours, coupled with their thorough and insightful feedback on our coursework, has been incredibly helpful. Their support played a crucial role in my learning experience. Thank you once again for your invaluable instruction and for fostering such a stimulating and supportive learning environment. Your courses have been a highlight of my academic journey, and the lessons learned will undoubtedly aid me in my future endeavors. |
★
★
★
★
★
Thank you for the quality class Professor and TA's! |
★
★
★
★
★
The class was very straight forward, and all the assignments helped us learn how to develop an app. One of the more heavy hands on programming classes, but very much worth it. |
★
★
★
★
★
Very good course |
★
★
★
★
★
This is the highest quality, most practical, and most comprehensive class I've taken throughout my CS undergrad at UH. The professor and TAs were fantastic, and the coursework was full of practical concepts and interesting assignments. A few suggestions (to bring this amazing course from a 9.5/10 to a 10/10): Use GitHub for assignment submissions - even better if feedback from TAs can be structured as a PR review requesting changes, and partial credit given for fixes - this would be great practice for real-world app development. Cover unit testing - this is the only big topic that the curriculum missed, and would be an essential skill for any aspiring pro iOS developer. Cover/discuss project management and SDLC - in my opinion this (and Unit Testing) is far more relevant for app development than the Figma/Sketch design, user flow diagrams, and wireframing that was emphasized in the class project. UX and design is important and interesting, but I think testing and SDLC should have been prioritized over design, since these are more relevant topics for developers - and the term project would have been a perfect opportunity to incorporate those topics into the curriculum. Even without my suggestions implemented, this has been a FANTASTIC class that I would recommend to anyone, even those not interested in a career in iOS development. This class inspired me (a React web developer) to start applying to iOS jobs, because the class and app development experience was so enjoyable. Thanks to the professor and TAs for making this class such a good experience, I'm going to miss it! |
KEY INFORMATION
- 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
- Vitalii Zhukov (This email address is being protected from spambots. You need JavaScript enabled to view it.) Office Hours: Mon 12-1pm @ TEAMS
- Fettah Kiran (fkiran[@]uh.edu) Office Hours: Fri 11-12pm @ TEAMS
- 7% Quizzes
- 14% Weekly app assignments
- 45% (3 x 15%) In-class app development exams
- 34% Semester-long app project
Grade-Thresholds: A >= 93, A- >= 90, B+ >= 85, B >= 80, B- >= 75, C+ >= 70, C >= 65, F < 65
- App Specification: 20% of the total project grade
- 10% description, 30% user flow, 20% wireframes, 20% mockups, 20% prototype
- Beta App: 30% of the total project grade
- 50% robust functionality, 30% user interface, 20% coding excellence
- Production App: 50% of the total project grade
- 50% robust functionality, 30% user interface, 20% 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.
- Thursday, 4:00-7:00 pm @ 315-HBS1 and @ TEAMS
- Mac OS - 13.3.1 and higher
- XCode - 14.3.1 and higher
COURSE OUTLINE
Week 1 - 08/24
●
Introduction to iOS and
Swift
****Reading for the Week****
⇒ Story Board vs. Swift UI Interface
⇒ Tracking code changes in a source control repository
Week 2 - 08/31
●
XCode,
UIKit (text fields, buttons, labels), UIAlertController, App Design
****Reading for the Week****
⇒ UIKit
Week 3 - 09/07
●
Protocol &
Delegation, View Controllers, Segue, Navigation Controllers
****Reading for the Week****
Week 4 - 09/14
●
Tab Bar Controller, UIStackView, and Auto Layout
****Reading for the Week****
⇒ iPhone screen resolutions and sizes
Week 5 - 09/21
●
In-Class App Development
Exam 1
Week 6 - 09/28
●
Interacting with Web
Services, UITableView, UserDefaults
****Reading for the Week****
Week 7 - 10/05
●
App
Specification
Week 8 - 10/12
●
Location, MapKit, Gesture Recognizer, Local Notifications
****Reading for the Week****
⇒ MapKit
⇒
App Design,
Icon Store,
Unsplash
Week 9 - 10/19
●
In-Class App
Development Exam 2
Week 10 - 10/26
●
imagepicker,
Camera, CoreImage - Filters, Apple Watch Programming
(optional)
****Reading for the Week****
Week 11 - 11/02
●
Beta App
Week 12 - 11/09
●
ML, Core ML, Models,
NLP
****Reading for the Week****
⇒
Core ML
Week 13 - 11/16
●
In-Class App
Development Exam 3
Week 14 - 11/30
●
Production
App
WEEKLY GRADES AND STUDENT COMMENTS
![]() |
![]() |
Comments from students |
★
★
★
★
★
MacinCloud would not allow me to run the simulator. I spent well over thirty minuets trying to get the simulator to run. I am not sure about what was submitted because of this and I know this will effect my grade. The amount of work in preparing for these exams are not shown due to the inconsistent behavior of MacinCloud. I do not believe MacinCloud should be recommended to students for Exams. |
★
★
★
★
★
Great exam, the topic was interesting (NLP, watchOS) and the difficulty was fair, since we were given multiple opportunities to practice on similar assignments (hw8 and last year's exam). In my opinion this was the best exam this semester! |
★
★
★
★
★
I think this was a good exam, but I would think that it might be better if next year you have a homework assignment dealing with applying image filters. |
★
★
★
★
★
The exam is good , cover a lot of useful technicals skill. |
![]() |
![]() |
![]() |
![]() |
Comments from students |
★
★
★
★
★
I appreciate the context Dr. Pavlidis gave on SwiftUI vs UIKit during the lecture. The main homework requirements were straightforward thanks to the similarity of the in-class assignment, but the bonuses were a huge step up in difficulty - there were some fun ideas there, but seemed too demanding to implement during this busy time of the semester. |
★
★
★
★
★
Interesting topics this week |
★
★
★
★
★
I disliked this week's class and in-class exercise. I think we wasted too much time on trivial stuff such as formatting. We should focussed more on syncService rather than keep that as an afterthought. |
![]() |
Comments from students |
Fun class as always, these interactive presentations have been my favorite part of this class so far. Seeing what other students came up with and how their app design progresses is really interesting. It's also a practical opportunity for students to get live questions and critique, similar to what they might get in a pair programming session or QA / code review at an actual job.
|
Good week, and it seems like everyone did a much better job this week on the beta app
|
It was great seeing al the other apps. the class was overall a good presentation day.
|
![]() |
![]() |
![]() |
![]() |
Comments from students |
★
★
★
★
★
Fun topic and assignment, watchOS is pretty cool. |
★
★
★
★
★
I did not like this week's in-class app. I think we should've focused more on the development of the app for the Apple Watch instead of the iPhone app. Regardless, would appreciate if we could use SwiftUI more. |
![]() |
![]() |
Comments from students |
The difficulty level of this exam was good.
|
The sample really helped with the easier parts of this assignment while the filtering part was new but not impossible to tackle. I think it was a perfectly balanced test
|
The exam was fair especially since a review was given. I personally did not do the review and found the exam a little challenging.
|
I think that the exams would benefit from the colors and font sizes and such being all posted on the .pdf. This one was very nice because it had the font sizes posted I might be overestimating the importance of these things, it's possible they don't impact the grades really. But if they do impact the grade, I think it would be nice if the colors and such were provided as RGB or hex codes or whatever on the pdf. Otherwise it was a good exam, I thought it was fun and suited the amount of time we had.
|
Perfect difficulty! Manageable Within the given timeframe. Bonus dragged out the exam to the last second. exam two practice was very helpful and help keep the exam doable
|
It's an interesting exam
|
Much better!
|
Not too hard nor easy. Good
|
Much easier than the last exam.
|
This exam was much more manageable than the previous one. There was a lot of overlap with the homework assignments and the sample exam (thank you for providing this). I have come to dislike working with maps in iOS, since there are so many different ways to implement similar (but not quite the same) functionality (ex. MapPin, MapMarker, MapAnnotation, and MKPointAnnotation). But, maps are still an important concept, and I'm glad they were covered in-class. Overall, good exam and practical topics.
|
This exam was a lot more straightforward compared to the last exam. I would say it's on the easier side but it does test us on all the topics we have covered so far.
|
Not too easy, and not too hard. Bonus was a bit tricky, but that's just because I couldn't find permissions
|
![]() |
![]() |
![]() |
![]() |
Comments from students |
★
★
★
★
★
I think this week's exercise should have been done in SwiftUI. Regardless, the code should be provided in both, SwiftUI and UIKit. Would also appreciate if there could an explanation of the code in the weekly exercises. |
★
★
★
★
★
Considering most of the class uses swiftUI, a mapkit example in swiftUI would be nice. I'm really struggling on the homework because the apple documentation isn't very helpful for mapkit. Macincloud is also not updated to the most recent version of xcode so that is causing issues with the Map() function. Thank you guys! |
★
★
★
★
★
Everything is so far good, been a learning experience, just hope the exam I’ll be able to finish on time. |
★
★
★
★
★
An version of the exercise with swiftui would have been useful |
★
★
★
★
★
Everything was explained pretty well |
★
★
★
★
★
This week's homework was much more diffcult than previous assignments, because MapKit was only covered in UIKit in class. Since most students seem to prefer SwiftUI, I think it would be better to focus on SwiftUI for the in-class programming exercises. Aside from that, lecture and hw were good and topic (MapKit) was practical as usual. |
![]() |
Comments from students |
Useful feedbacks recieved.
|
None
|
useful feedback
|
Thank you for your helpful feedback!
|
Just would like to know what to study for on the exam. So I’m prepared for it. Messaged TAs as well.
|
session was good
|
I was really impressed with a lot of the presentations, I wasn't expecting so many people to be incorporating APIs and databases into their apps, so I hope mine isn't too simple. The professor gave a lot of good feedback about colors, design, and user flow - I wish we had a refresher on these topics closer to the app specification submission, but I'm glad that we have a chance to get some points back by revising our work. Brainstorming with TAs in the Teams chat was fun as well, I always enjoy how interactive this course is. Looking forward to the Beta app presentations!
|
A rubric of qualified app specification expectations would be helpful. I was a bit surprised at all the critiques during class despite not having many guidelines. In addition, a better example of what was wanted would be more helpful, especially the userflow diagram. Overall, I feel like I am going to have to make a lot of changes in my app simply because I was unaware of expectations. It was definitely a fun learning experience to see the presentations.
|
What is expected of the user flow could have been defined more clearly prior to presentations
|
It was great! Got to see a lot of interesting ideas
|
![]() |
![]() |
![]() |
![]() |
Comments from students [show / hide] |
★
★
★
★
★
As the exercises get more complicated, I think it would be good if there were videos of the functions of the apps rather than just still images, as it is not always 100% clear what is desired. |
★
★
★
★
★
I'd appreciate it if Vitalii could go a little slower in the app development part of the class. |
★
★
★
★
★
The lecture and hw were great - super practical and important (fetching data)! The hw was very close to the example Vitalii covered in class, so it was pretty easy to complete. |
★
★
★
★
★
good lecture |
★
★
★
★
★
Everything is good till now |
★
★
★
★
★
I appreciated the review of auto layout. I am still struggling with how to make swift UI look good in landscape mode, that is what takes me the most time. |
![]() |
![]() |
Comments from students [show / hide] |
Tougher then weekly assignments! Seriously?!
|
I thought it was fair. Assignment 4 & 2 pretty much covered everything that was on the exam.
|
In 3 hours i am not able do all the parts
|
The exam was only difficult because of the time it took to finish everything. I unfortunately ran out of time, I got the main points down but I could’ve improved a lot of the functionality and layouts if I had time. Otherwise, it was alright. Thank you as always.
|
It was challenging but fair, the time limit was a bit restrictive though - I didn't have much time/energy to attempt the bonuses even as a more experienced developer, so I think less experienced students would struggle for time. Aside from that it was good :)
|
it was just a lot of features to implement in a short time slot, especially with the lack of experience we have with the language swift, because this is only the first exam.
|
Need more time
|
I was only able to complete about half of the exam due to the time limit. I feel like I have been keeping up with the class content well and I am a fairly fast programmer in general, so it was a bit defeating. Can this exam be curved?
|
The concept regarding the tic-tac-toe triads were hard to implement without having to hard-code the parameters. The UI portion of the exam was pretty do-able. Personally, I was restricted a little because having turned on my camera on the Teams meeting, my MacBook was pretty much frozen for about 15 to 20 minutes.
|
The amount of things to implement seemed daunting. Didnt allow for time to debug any issues which is a typical problem with programing. The time for the exam should start after instructions. This leads to a loss in time on the exam and hinders performance.
|
The amount of time to do most of the requirement is not enough. and logic was fairly difficult for the amount of time we had to implement it.
|
The exam wasn't difficult by itself, but the auto-layout part of the app development takes a lot of time. I'd appreciate if we could have more discussion on auto-layout in the class.
|
A lot more logic than last homeworks and took the most time. The layout of the elements was fine to implement. Really appreciated the font sizes of the buttons and title. Would be better if you gave the color hex codes in the description as well. To be honest, expected something easier than what it was cause we had only 3 hour to do it. Harder than HW for sure which also makes sense since it was an exam - but with only 3 hours to do it makes it even more difficult. Hw definitely helped a lot.
|
I feel like I wasn't tested on the content but how fast I could set up an app. I believe this Exam was harder than any of the homework's we had and we had far less time to do it. There are things I knew how to do but didn't do properly such as passing the data from one view to the other because I felt extremely rushed. I also couldn't figure out why the logic for my Win/Loss boolean wasn't working and spent a good chunk of time on that not realizing that wasting that time was a massive mistake. I'd also like to leave a comment about the homework's, I don't believe that having the homework's assigned on Thursday and due on Tuesday makes much sense. Having only two weekdays to work on them and then turning them in at 4pm on a Tuesday in which we don't even have class to go over them seems counterintuitive. I'd greatly appreciate if the homework's could be from Thursday-Thursday or at the very least due on Tuesday at midnight as I constantly feel stressed from the amount of time I have to work on in consideration with other homework's I need to do over the weekend or simply other plans I have. I wouldn't be shocked if other students feel the same way.
|
I personally need to play around with autolayout more so I don't get caught up in it and waste time.
|
The time is so rush for the exam. If it has more time, it will allow us to make a more complete application.
|
The timing of the test made it difficult, also there was a request to send an alert if the number you inputted had letters but we never learned how to do that so it left me scrambling a bit to find a way to do it. Other than that the test was tough but doable. Although I honestly don't see how someone could have done everything and the bonuses as well unless they're a super genius.
|
hefty but doable
|
I don't know exactly how the example app was designed but having to use a systemImage for the question mark icon made it difficult because the provided images had a border while the systemImage didn't. This meant having to size each one differently instead of just being able to use an image that was designed the same way as the crosses and circles. Also, the provided font size and family for the title didn't seem to match up with the pictures that were provided.
|
The exam was more so tedious then difficult which led to a lot of time being wasted on the smaller things. I think difficulty wise it was slightly too hard. I also with the exam pdf was more descriptive about stuff such as colors and icons used. I REALLY liked the switch to systemImages for some stuff, hope that can be continued. Finally, I just found out through another person in the class that the semester long app specification is due next week on thursday. Was hoping that we could get an extension. A lot of us didn’t even know the due date was coming up. An extension would go a long way here. Thank you!
|
Content was fair and straightforward, auto layout can be a struggle and will eat up your time if you do not move on.
|
My personal experience was that this exam was rather difficult. On top of that, I managed my time poorly and I wasted effort on aspects of the exam that I knew I could not solve. However, that is all due to the effort I have put into this class which admittedly has not been much. I am sure many of my other classmates did pretty well and it is a reflection of their efforts. I can't really say the exam was too difficult or anything along those lines. I imagine in actuality it was just right.
|
I initially expected the exam to be similar in difficulty to our assignments, especially considering the generous three-hour timeframe. However, I found the exam to be quite challenging to complete within this time constraint. I kindly request that you consider adjusting the difficulty level for future exams. Additionally, if possible, it would be greatly appreciated if bonus tasks could be provided to help compensate for the challenging nature of the exam. Thank you for your understanding and consideration.
|
![]() |
![]() |
![]() |
![]() |
Comments from students [show / hide] |
★
★
★
★
★
So far so good. |
★
★
★
★
★
absolutely love this course! It's a true 5-star gem that offers an incredible opportunity to learn and develop essential skills. The coursework is not only informative but also incredibly engaging, with assignments that leave room for your creativity and imagination to flourish. |
★
★
★
★
★
There's a lot of menu hopping in UIKit, which made it difficult to follow along. The material itself seems more tedious than challenging. |
★
★
★
★
★
I wonder if it might be better if the assignments were assigned thursday and then due on thursday. I feel like the work load might be better this way |
★
★
★
★
★
Great lecture and exercise this week! The HW was a little more complicated than previous weeks, but I enjoyed the challenge. The GoT theme was a fun twist! :D |
![]() |
![]() |
![]() |
![]() |
Comments from students [show / hide] |
★
★
★
★
★
Please make the quiz auto submit. Some of us tend to wait until last moment to submit and it results in wasted effort when we couldn't have the mental capacity time the clock. |
★
★
★
★
★
Great lecture/HW overall! The switch from SwiftUI (last week) to UIKit (this week) for Vitalii's walkthrough was a bit jarring, since I had to expand upon my SwiftUI-based HW from last week using concepts I learned in UIKit this week. It wasn't too hard to adapt, but I'd prefer if Vitalii's walkthrough had been in SwiftUI again :) |
★
★
★
★
★
Professor's generous refresher on classes and his conceptual explanation of protocols was a great primer for Vitalii's lecture on view controllers. I do not have prior experience protocols or view controllers, but I was able to follow along with some effort. |
★
★
★
★
★
Everything has been great. |
★
★
★
★
★
Everything was good this week. |
★
★
★
★
★
Everything good so far. |
![]() |
![]() |
![]() |
![]() |
Comments from students [show / hide] |
★
★
★
★
★
The homework is a straightforward continuation of the in-class exercise, the style is effective. But I wish we were given a real UI mockup (Figma, Sketch, etc.) for the homework, rather than screenshots, so we can inspect the font size, color codes, element size, etc. Being given a Figma design file would also be much more reflective of real-world development environments. Aside from that it was good :D |
★
★
★
★
★
Everything's good. |
★
★
★
★
★
Everything is understandable as of right now. |
![]() |
![]() |
Comments from students [show / hide] |
★
★
★
★
★
I am excited for what I will learn this semester. |
★
★
★
★
★
The code snippet was being erased a little too fast while I would still digest its use, other than that, great teaching style.. |
★
★
★
★
★
I enjoy the class |
★
★
★
★
★
Looking forward to it! |
★
★
★
★
★
No additional comments, class was straight forward and easy to follow for the first day. |
★
★
★
★
★
Informational but could have discussed more complex concepts, it was a bit slow. It also would have been nice to send out a notice that we need access to MacOS before the first class so we could have followed along from the start. Thanks! |
★
★
★
★
★
glad to see practical coding in class |
★
★
★
★
★
The class was normal for the first class of the semester |
★
★
★
★
★
I could not make it to class due to medical reasons but noticed there is a recording posted. Thank you. |
★
★
★
★
★
Good lecture |
★
★
★
★
★
Thank you so much for a great help to start with XCode. I have been primarily using VSCode. But thanks for your help, the transition is easier. |
★
★
★
★
★
Excited for what's coming |
★
★
★
★
★
As a beginner and new with mac interface, without having the macbook with me, The class seemed a bit difficult. |
★
★
★
★
★
Everything is good |
END OF SEMESTER COMMENTS
★ ★ ★ ★ ★ One of the best structured programming intensive courses taken at UofH. TA's were easy to reach for questions even outside of class hours and in class programming demos were very useful for homeworks and exams. I do wish that the very first specifications for the project and comments over the beta and alpha would have been clearer and more explicit. They caused some confusion over what exactly was wanted, and if our team did not demo the app for some of the deadlines, there was less descriptive comments and/or points for improvements. |
★ ★ ★ ★ ★ Overall very pleasant experience with the class. I feel as if I have learned many applicable skills to carry forward with me in my studies, as well as my career going forward. I am thankful for the professor's and TAs' assistance and time within the course. |
★ ★ ★ ★ ★ Gained a lot through this course. The professor and TA's are so good and friendly and are available and helpful throughout the semester. Will surely recommend other to take this course. Thank you professor, Vitalii and Fettah for this amazing semester. |
★ ★ ★ ★ ★ I appreciated the hard work of both the professor and the TAs in teaching us valuable and marketable knowledge about app development for Apple devices. |
★ ★ ★ ★ ★ The structure of the class in how material was taught helped me to learn a lot and apply it by myself when creatings apps. Way more classes in computer science should be taught like this |
★ ★ ★ ★ ★ Everyone was very helpful and I learned a lot! |
★ ★ ★ ★ ★ The course experience was really good. There were points where exams deviating slightly from the lectures proved to be more difficulty, which made for a fair challenge. It would help for future classes to ensure more essential features are learned in lectures when the reading material does not cover them in detail. Pretty good class |
★ ★ ★ ★ ★ I really enjoyed the style of this course. It felt like we were learning truly important things, as opposed to random theoretical lnowledge that we will end up forgetting immediately. It felt like the closest thing to actual software development that I've taken thus far, and I hope Professor Pavlidis continues to keep this hands on approach in the future. |
★ ★ ★ ★ ★ Well... that was a lot to be learned in a short period of time, every week except for the exams week I wished the classes never ended, they were entertaining, and challenging, the dynamic used to teach was great, I'm pretty sure 95% of the class knows how to build an app by now, the 5% are the ones that dropped if there were any drops, overall great class. The Professor, Vitalii, and Kiran helped us a lot, and I'm very thankful for them, I liked this class so much that I recommend it to some friends. I just wish we had more time to do the exams that was the only downfall, but overall W Class, W professor, W TAs definitely 100/100. |
★ ★ ★ ★ ★ This was an amazing experience. I thoroughly enjoyed this class. The TAs and the professor work very hard to make this course very interesting. I've learnt a great deal and I'm confident in developing something that I design. This felt like a full fledged software development class using important tools such as git for collaboration. Overall, this was the best course I've taken at UH. Thanks Dr. Pavlidis and team! |
KEY INFORMATION
- 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
- Vitalii Zhukov (This email address is being protected from spambots. You need JavaScript enabled to view it.) Office Hours: Mon 12-1pm @ TEAMS
- Fettah Kiran (fkiran[@]uh.edu) Office Hours: Thu 12-1pm @ TEAMS
- 7% Quizzes
- 14% Weekly app assignments
- 45% (3 x 15%) In-class app development exams
- 34% Semester-long app project
- Thursday, 4:00-7:00 pm @ 315-HBS1 and @ TEAMS
- Mac OS - 12.5.1 and higher
- XCode - 13.4.1 and higher
- Specification: 20%, Due 09/29/2022
- 4% Textual Description, 4% User Flow Diagram, 4% Mockup, 4% Wireframe, 4% Prototype
- Beta: 30%, Due 10/27/2022
- 10% robust functionality, 15% user interface, 5% coding excellence
- Final: 50%, Due 12/01/2022
- 30% robust functionality, 15% user interface, 5% 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.
COURSE OUTLINE
-
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)
-
XCode, UIKit (text fields, buttons, labels), UIAlertController
-
Protocol & Delegation, View Controllers, Segue, Navigation Controllers
-
Tab bar controller, UIStackView, and Auto Layout
- Auto Layout, UIStackView, UITabBarController
- Stack View Tutorial, Auto Layout Tutorial, Tab Bar Controller Tutorial
- Bonus Material
- In-Class App Development Exam 1
- App Specification
-
Interacting with web services, UITableView, UserDefaults
-
Location, MapKit, Gesture Recognizer, Local Notifications (optional)
- MapKit, MKMapView, CoreLocation, CLLocationManager, UIGestureRecognizer, Local Notification
- Using CoreLocation and MapView, Map Annotations, Reverse Geocoding, Gesture Recognizer, Map with gesture recognizers
- Bonus Material
- In-Class App Development Exam 2
- Beta App
-
Imagepicker, Camera, CoreImage, Filters , Apple Watch
- In-Class App Development Exam 3
- Production App
WEEKLY GRADES AND STUDENT COMMENTS
![]() |
Comments from students |
This is such an amazing class. It was so much fun, as well. I learnt a lot from Dr. Pavlidis and team. I could see my design improve after every submission. This was my favourite class this semester. I really hope I could take more of Dr. Pavlidis's classes. Vitalii is very helpful and overall the team is very friendly and accomodating. |
I enjoyed the presentations this week and the ones we had throughout the year! Overall the course was fantastic, I learned so much and felt the professor and TAs presented the course in a clear and concise way. I enjoyed the apps we built from the exams to the homeworks, everything was super fun. I also liked having the freedom of choosing an app idea for the project because it allowed me to do something that I am passionate about. I also really appreciated the feedback and the availability for help that was offered. I'm super glad I took this course, at first I was nervous that I wouldn't succeed but with how great the quality of this course was I shocked myself at how well I did in the end. So, thank you a million times over for this wonderful semester! |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Comments from students |
★
★
★
★
★
I love this class. I'm sad it's coming to an end. I wish Dr. Pavlidis and team took more courses. |
★
★
★
★
★
The landscape requirement required for the beta app was not mentioned in the specifications and we were not aware we were supposed to fix it. Please recomsider it as we lost marks for it. |
★
★
★
★
★
Found this class truely interestung and helpful. \nThankyou for your classes. It would have been even better if the app development exams are bit easy. Hoping it for the last one. |
★
★
★
★
★
In the beta app submission, I felt the requirement of the app working in the landscape mode was a bit too much. I feel beta app needs to show the functional part of the app well while the other elements like landscape, all devices, etc can be taken care of in the final app. |
![]() |
![]() |
![]() |
![]() |
Comments from students [show / hide] |
★
★
★
★
★
I really appreciate very much that the TAs / Vitali pushed for market-relevant skills to be taught this week. I also appreciate him pioneering the data transfer between UIKit and SwiftUI for the week's assignment. Being taught market-relevant skills is extremely critical to the value of the education we recieve at UH, so I thank the team for increasing our value as job-searchers. |
![]() |
Comments from students [show / hide] |
This was such a knowledgeable session. It was great to know good design and app ideas and understand the bar that peers set. |
Appreciated the effort in making the critiques fun. |
A very good session. The feedback received from the faculty and students are very important in improving and enhancing the application. |
Moving forward, we should avoid doing app demos the week after exams. It affects app quality. WIth how tough exam 2 was, we also were hoping if you were open to grade replacements? i.e: we can replace our lowest exam with our highest one. same logic applies to any part of our project (i.e: swapping specification grade with demo, if demo was higher). |
![]() |
![]() |
Comments from students |
The exam got exponentially more difficult as it required to pass data from a view controller to a tab bar controller. Although this method can be done by using "detailed_view_viewControllers!.first", the methods taught in class overrode each other: - the prepare statement does not work as there is no segue between "tab bar" view controllers. - using "viewDidDisappear" makes it so that the back button becomes unusable, as previously mentioned: there is no segue, or specific identifier for the action to do both an "unwind segue" and a regular transition from one tab bar element to another. Covering selectors might have been more resourceful for the class. The theorical difficulty was alright, but these issues made it troublesome to display the data as the screenshots intended. |
Exam contained features that we had never practiced/mentioned during class lectures and weekly app assignments. The weekly apps do tend to be based off of the lectures, so I assumed that the exam would be similar to what we've covered. For instance, we never covered how to add titles to our table view sections, so, during the exam I had to look up how adding titles works, which definitely took a chunk of my time. Also, we never covered different embeded controllers, like a tab bar controller inside a navigation controller. This made it extremely difficult to transfer data between each controllers since we've never had to do this. If it wasn't for the hints that Vitalii provided, this exam would've been impossible to complete in 3 hours. \nIf you all do not want to change the structure for future exams to be similar to the lecture and weekly app assignments, then I'd suggest to provide a review of what would possibly be on the exam. This would help us prepare for things that might show up on the exam that were never covered during class lectures/weekly app assignments. |
It was very tough. It's hard to put together concepts from weeks ago as well. Nevertheless, I really liked the app |
I get that it was meant to be challenging, but it was still pretty difficult. Personally, the most difficult part that I wasn't able to get was applying the background color change to all of the buttons in the ViewController after a user presses one, and having that color change persist when the user is brought away from that page. |
I was used to transferring data one way from one VC to another, but updating the cell after is where I struggled. Definitely tough. Go easy on us with grading! This was hard, haha. |
I'm trully enjoying this class, but the exams are a whole different story, not every mac works great with xcode... but I guess it's useless to even argue because nothing will change, and I don't even see the use for these surveys at this point. |
![]() |
![]() |
![]() |
![]() |
Comments from students [show / hide] |
★
★
★
★
★
Another successful lecture written in the history books. Really enjoyed today's lecture, it was very well-paced, and the content and exercises were really interesting as well. |
★
★
★
★
★
Different kits in homework were not expanded on in class. Code was straightforward but the different kits and the actual workings of swift could have been expanded on more. Right now we're studying concepts on our own and looking at code in class but since concepts are more in depth and we can easily look at the class's github on our own, it could be better to switch it where we look at code on our own time and expand on the concepts more in class. |
![]() |
![]() |
![]() |
![]() |
Comments from students [show / hide] |
★
★
★
★
★
Cool and interesting homework assignment, as usual! |
★
★
★
★
★
Would like if he Vitalii explained more the way swift creates threads and the function for accessing the url and parsing through the json |
![]() |
Comments from students [show / hide] |
I think this was my favorite class so far! It was cool get live peer-reviewed feedback on stuff we actually made. Hands on stuff like this makes me love coding (in the future though, we should set timers or increase # of people per project to 3. So that way we can at least get through half the groups) But thanks. This class is fun, and you are very appreciate. |
![]() |
![]() |
Comments from students [show / hide] |
The exam was not hard at all, but we needed more time, the first 30 minutes were spent explaining how the app works which we appreciated but it would be nice if those 30 minutes were given back by extending the exam till at least 7:30, overall it was a good exam, we just needed more time, maybe 4 hours for that app. |
I thought the exam was a fair assesment of the topics covered so far. One minor concern for virtual test takers, however, is that MS Teams slows down xCode significantly, so a lot of time was lost waiting for the simulator and build related issues. |
Personally, I felt the time was not sufficient for landscpae. |
It was a good exam, I applied a lot of the knowledge I learned in class to do it, but I made the mistake of not uploading my latest version solution. But it was still a good exam. thank you. |
This was an amazing test! I thoroughly enjoyed doing it. It was so much fun. Thanks Vitallii!! |
![]() |
![]() |
![]() |
![]() |
Comments from students [show / hide] |
★
★
★
★
★
Vitalii's lecture wasn't as fast this time. However, sometimes it is extremely difficult to see where the cursor is being pointed at and what is being clicked. Perhaps this has to do with the dark mode appearance in Xcode, or making the cursor larger (or a different color) could help. |
★
★
★
★
★
Great assignment! I'm so excited to get started on it. Makes this class more fun |
★
★
★
★
★
I wish the professor would give more time instead of the due date on Monday since I have a lot of other stuffs to do as well |
![]() |
![]() |
![]() |
![]() |
Comments from students [show / hide] |
★
★
★
★
★
So far everything is going well, I'm really enjoying the class, and no complaint besides the due date time for the assignments, I wish they were at 11:59 Pm, but I'm also okay with 7pm. |
★
★
★
★
★
informative |
★
★
★
★
★
Really clear instructions for the week 3 assignment. Thank you |
★
★
★
★
★
Lecture was very easy to follow and implement for homework exercise. |
★
★
★
★
★
Pros: ALL questions were answered in class, and both profs and TAs were available outside class to answer individual questions. I really appreciate this. It was also cool to see the class troubleshoot the naming issue in class together. Cons: After setting up the view controllers, it felt like Vitalli moved kinda fast with the coding. I wish we slowed down, but thankfully we have the Teams recording. |
![]() |
![]() |
![]() |
![]() |
Comments from students [show / hide] |
★
★
★
★
★
I like the teaching style for explaining how simple IOS UI works. |
★
★
★
★
★
None |
★
★
★
★
★
I just wish you guys specified better what to study for the quiz, I was reading everything I saw in the links on the syllabus, but overall great class this week as well. |
![]() |
![]() |
Comments from students [show / hide] |
★
★
★
★
★
A little bit too fast on the Swift Crash Course. Otherwise, everything else was good. |
★
★
★
★
★
A lot of concepts were covered at once in a single class. Could've been a bit slow. |
★
★
★
★
★
The presentation and pacing were great. Learning a new language is always exciting. The only issue I had was that the code font was small. |
★
★
★
★
★
it was well organized and good. |
★
★
★
★
★
Very useful coding snippets. |
★
★
★
★
★
The class model seems very interesting. The only issues would be that it's hard to hear from the corner of the roomand that the slides are very simplified (The slides themselves are good but some of them would be hard to understand for people who never used swift-style code. |
★
★
★
★
★
Although the information may have been too much for someone with relatively little experience with Swift, overall the examples taught in class were a great refresher for what's to come later in the semester. |
★
★
★
★
★
So far I have found the class to be very interesting, and the professor and TAs seem to have a lot of knowledge on the topic, so far I am very satisfied. |
★
★
★
★
★
I liked learning about Swift and iOS dev history, and also getting a realtime demo on xCode I do think the macBook distribution couldve been handled better. We got macbooks in hand way too late. With 20 students in class, shouldve had macbooks available to follow along with BEFORE the demo started. |
★
★
★
★
★
I like that the course has a demo part of coding and I hope to keep it going. In addition to this, I would also like the professor to continue to record lectures. |
★
★
★
★
★
maybe slow down a bit |
★
★
★
★
★
Presentation could have been more dynamic and lively and some of the things when making the application could have been smoother since there was times when we were just waiting around while the professor tried doing things, for example when making the logo. |
It is difficult to understand you sometimes. I also disagree on your opinion as to why we should be locked into apple's bad ecosystem for this class. Android holds 72% of the global market share of mobile OS users, which has been climbing steadily. You can code for android on any OS, easily, but apple locks you into their ecosystem. The macincloud experience was terrible, laggy, and unreliable. I had to buy a mac just for this class. To join the apple ecosystem and download xcode, I had to give them all of my information excluding my SSN. This is an extreme invasion of privacy IMO, just for a class I need to finish this semester if I want to graduate on time. I feel my arm being twisted by UH on this. They should offer one class on android systems and one on ios, but to not teach the development of software on an OS held by 72% of the entire world is crazy to me. You wanted honest feedback, so hopefully you see this as constructive and not just me ranting about my displeasure in the structure of this course. Also the class should be called "Apple App Development" based on what you said we are going to be doing this semester.
The online section wasn't able to actually view the lecture live this past week.
class flowed smoothly and for the online section it was still very understandable
involving the online section to ask questions would be nice.
I wish professor could speak louder so I can listen to him clearly
I am enjoying swift, but groups should at least be a minimum of 3 people.
No comments. Looking forward to learning more about app development in SwiftUI.
I would recommend to take more breaks during class to strengthen our attention spans.
Some of the code files were confusing to access through teams.
As a beginner to Swift, I appreciated how Professor Pavlidis took his time to explain all the components of the demo app during class, regardless of whether the logic was simple or more complex.
It was a wonderful beginning to the class. Much better than expected. I see that the Professor have a genuine care for students and wants us to excel in life. I got to know this when I spoke to him after class where he mentioned that he wants to ensure that we are able to develop a mid level app on our own. It was a wonderful lecture and looking forward to the next one.
N/A