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 |
★
★
★
★
★
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 |
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.