1. The time that classes are able to be taken. For ICS 311, as an example, they only have classes available in the evening, which can be tough for students who have it difficult in terms of transportation. Though this semester could be one exception due to COVID, it may be difficult for students in the upcoming years.
2. The pace of some ICS courses. While it is true that we have to set time outside of class to work on that course, it doesn't take into account other courses the students may be taking. Not everyone is able to keep up with the course material and would otherwise fall behind, forcing the student to re-take the course should they fail. Some faster paced courses could be split into two classes/semesters for those who need it.
3. Advising on courses. I remember going to my mandatory advising in the first year, but I was not told of all I needed to take in order to graduate. While it is true that star shows you the recommended courses to take per semester, it does not fully tell you all the credits you need in order to graduate. Personally, I do check up on everything and make sure I'm doing what I need to do in order to graduate, but improving advising for those who don't would be extremely helpful so they don't add an extra year or more to their expected graduation date.
1) Experiencing impostor syndrome can reflect how we feel about ourselves.
2) There are not enough prerequisite ICS courses seats that are available.
3) Encountering bugs can be time consuming and frustrating.
1) Computer Science, as many have mentioned requires a lot of different skills which aren't needed for different specializations, such as having to take calculus II, and other numerous core requirements on top of a very broad spectrum of computer science classes. For example, as someone who wants to develop video games there are a lot of difficult classes which won't help later in my career.
2) Related to the previous answer, computer science has one of if not the highest dropout rate of any major; which with the need for more computer scientists, it doesn't make sense that more hasn't been done to help this.
3) Many ICS students are shy and uninvolved with the administration side of the university, which means that there isn't much of a voice for ICS students. If I remember correctly it was hard for clubs, including ACM I believe, to get new members last semester, or to even choose presidents for some clubs as the seniors graduated.
1. A more focused area for the ICS program, the current area is pretty limited in space.
2. more courses that explores the wide field of computer sciences
3. more speakers from the tech fields
1. I think there should be more opportunities for ICS students to talk to other ICS students - undergraduates and graduates
2. Java is the language used in most of the courses. We have a few other such as C and C++, but I think that using a wider variety of languages will bring students to a higher level technically.
3. I wish there were more courses that could meet other requirements such as WI, OC, and ETH.
1) If there were individual paths for CS instead of everything combined into a general subject, with a few classes for a specialization, students could gut out all the excess learning they would never use. It would lead to more in depth knowledge on narrower areas and better internship experience because the overall skill level will be higher.
2) Classes are too fragmented. To get a degree you have to go through XXA,XXB...XXZ classes, but every single class teaches different languages as a foundation. Additionally, the classes don't simulate a real environment until the upper classes. You generally know what classes teach but they fail to convey the importance of the topic because of the classes being so unimpactful.
3) Lack of clear class path. A student might want to change his schedule within the bounds of the degree class requirements, but what they learn is based on their own opinion. Certain classes might help more with specialization, but not knowing the paths gives students classes useless to their actual profession. I suggest refining career paths a bit more.
1. So far the 100 and 200 level courses have felt too easy
2. Being required by some teachers to show up to lab
3. Little to no teaching on the process of programming (ex:how to go logically break down problems and then create pseudocode then turn into code, debugging )
1. Programming can take up a lot of time so you have to manage your time really well.
2. Not a lot of time slots available for classes.
3. Materials needed can be expensive.
1. I think that in many (but not necessarily all) of the "flipped classroom" formats, it can be difficult to learn because it is hard to ask questions when they arise.
2. I am not entirely sure how I would change it myself, but sometimes I feel as if the progression of courses could be improved in the computer science degree path. I have found that some of what I have learned in my more recent classes would have been fundamentally helpful in the more introductory courses.
3. I think consistency could also be improved upon in the UH ICS program. For example, I feel like the software that we are required to acquire could be kept more consistent across courses. I understand that there would be exceptions though for specific electives.
I am a Computer Engineer, and here is 1 bad thing about being in the department:
1. CENG is limited with a small amount of technical electives.
1. Learning and getting help with ICS related problems can be overwhelming when first learning, so forcing students to work in groups early on and helping them gain other peers they feel comfortable talking to.
2. Offer more classes at a lower level so students can explore the different areas of ICS early on and pinpoint what they want to work with.
3. Flipped classrooms can be hard to grasp new concepts since it's not very common with lower level classes. So maybe create an easier transition or create different ways to effectively teach the basics of coding through online methods.