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
Instructors
- 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
Grading
- 7% Quizzes
- 14% Weekly app assignments
- 45% (3 x 15%) In-class app development exams
- 34% Semester-long app project
Day, Time and Room
- Thursday, 4:00-7:00 pm @ 315-HBS1 and @ TEAMS
Requirements
- Mac OS - 12.5.1 and higher
- XCode - 13.4.1 and higher
Class Resources
Project
- 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
Week 1 - 08/25
-
Course Introduction, Intro to Swift, Playgrounds
- Swift Basics
- Swift Playground
- Swift Online REPL
- Swift 5 Video Tutorials (Watch videos 1-9, 13, and 16-17)
Week 2 - 09/01
-
XCode, UIKit (text fields, buttons, labels), UIAlertController
Week 3 - 09/08
-
Protocol & Delegation, View Controllers, Segue, Navigation Controllers
Week 4 - 09/15
-
Tab bar controller, UIStackView, and Auto Layout
- Auto Layout, UIStackView, UITabBarController
- Stack View Tutorial, Auto Layout Tutorial, Tab Bar Controller Tutorial
- Bonus Material
Week 5 - 09/22
- In-Class App Development Exam 1
Week 6 - 09/29
- App Specification
Week 7 - 10/06
-
Interacting with web services, UITableView, UserDefaults
Week 8 - 10/13
-
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
Week 9 - 10/20
- In-Class App Development Exam 2
Week 10 - 10/27
- Beta App
Week 11 - 11/03
-
Imagepicker, Camera, CoreImage, Filters , Apple Watch
Week 13 - 11/17
- In-Class App Development Exam 3
Week 14 - 12/01
- Production App
WEEKLY GRADES AND STUDENT COMMENTS
Week 14 - December 1, 2022
Week 13 - November 17, 2022
Week 12 - November 10, 2022
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. |
Week 11 - November 03, 2022
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. |
Week 10 - October 10, 2022
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). |
Week 9 - October 27, 2022
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. |
Week 8 - October 13, 2022
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. |
Week 7 - October 06, 2022
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 |
Week 6 - September 29, 2022
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. |
Week 5 - September 22, 2022
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!! |
Week 4 - September 15, 2022
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 |
Week 3 - September 8, 2022
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. |
Week 2 - September 1, 2022
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. |
Week 1 - August 25, 2022
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. |
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!