As a computer engineer major, I do not know much about the UH ICS program but here are some of my suggestions on how it could be improved:
The ICS program particularly the Computer Security track could be improved in a few ways:
1.) The required classes that must be taken to unlock the upper division security courses offer little in terms of valuable skills that are needed for a job in the field. The classes should be more focused on real world skills and less about theory.
2.)The first class ICS 222 is almost entirely review. It covers mathematical induction (ICS 141), Moore and Mealy machines (ISC 241), and Turing machines (ICS 241). With the course being structured in this way it gives little time for other topics to be covered. The course should be looked at in aggregate with the other required courses that a student is required to take.
1. I feel there could be more of a focus on applicable skills. For example I am in the Cyber Security track and I have yet to learn how to use any practical programs or skills. All I have been learning is concepts
2. The ICS space is too small for the amount of people that want to study. Although ICS assignments are something that can be completed online with others, it would be far more effective to have a place where more people could gather to collaborate.
3. It would be great if the ICS courses fulfilled more requirements. Requirements like WI are hard to get in ICS because not many ICS classes come with a WI requirement. This just means that a lot of people take many random classes to fulfill requirements that could be a lot easier to get. A good example of a class that works well with our requirements in 390 which fulfill ETH, WI, and OC.
1. There are classes the end quite late, which is kinda inconvenient for students riding the bus home. Maybe having an online class for that course would give less burden to those students.
2. In upper level courses, there are classes that are only available on the spring or fall semester, so you will need to wait a semester to take the class. The worst case scenario will be if you fail the class you will need to wait a bit to retake the class again. Bringing in more professors could reduce that problem and students will have more options for their selected courses.
3. The introduction to ics is not really beginner friendly, I would say at least a small amount of experience or research before attempting the class would be required to be able to understand the work. Maybe a basic program as a first assignment first would help and gradually increase the difficulty.
Three bad things about being an ICS student.
1. Class Time is not friendly for students that do no drive, For example, ICS 212 which is in the evening.
2. Lack of Space. Because of the lack of sections and space in the ICS program, most classes are full fast. Which lead to waiting for a whole semester before taking the class.
3. Stressful. Homework can be very stressful sometimes and time-consuming.
The requirements for the major have gone through some changes and can be a little prohibitive at times. I decided on majoring in ICS a year in to my university career and have had to do some backtracking to take classes required for upper division ICS classes. While this is completely reasonable, as the classes required are especially important for ICS courses, it can make things a little annoying for students who are still undecided and exploring different things when they first start college.
More class availability. This is a kind of unavoidable, as it is highly dependent on the availability of professors, but more classes and options to choose from is always nice as a student
Some way to incorporate more "real world" experience. I do not really feel like I have had any experience with what it is like actually working in the ICS field so far. Internships do this, but it would be nice if there were opportunities in the program itself.
1. The topics can be very challenging. In order to succeed in courses, students must be passionate about the subject area and be motivated to work hard to grasp new concepts. Courses can be fast-paced and filled with a plethora of important information.
2. The course load can be heavy. Although learning new programming languages and skills are enjoyable, it can also be extremely time consuming.
3. Some courses are offered only in one semester (either Fall or Spring) and not both semesters. Having class availability that is always guaranteed would be an improvement.
1) One bad about being an ICS student in which the UH ICS program can improve is providing more ICS courses. Majority of specific ICS courses are either rarely provided or don't have enough space for others to enroll in. Students end up having to wait for another semester to take classes they really are interested in or are required to take.
2) The exams and lack of projects! I personally feel that most of the ICS courses provide a lot of theory and exams (with the exception of ICS 314) and lack having actually projected that students can put on their professional portfolio. When you think about it, it would be better to have professors have big projects rather than a final exam, since not only are they putting the skills to work on a real-life but it can be something they can show to future employers. Being book smart is one thing, but being able to apply the skills you learned in the real world is another more important thing!
3) Compared to the Mainland, the UH ICS program isn't considered competitive. I want the UH ICS program to be more prestigious something that tech employers can be impressed with when they see the University of Hawaii at Manoa on a resume.
1. Amount of work. The amount of work that starts to pile up when you are deep in a packed semester can be a lot in ICS. It is easy to get to a point where you are bouncing around between multiple different subjects trying to stay afloat.
2. Better course descriptions and availability. It is sometimes hard to understand what is covered in some of the classes due to a lack of information or change in the way the class is done. Sometimes the only way is to find someone that just recently took the class. I understand why but also when you get to the point of having to balance fall or spring only offered courses it can become a real headache.
3. More help and access to tools. The study rooms labs are lacking both knowledgeable mentors and tools that could push students farther.
1. Languages become defunct or outdated quickly.
2. Our major doesn't provide as much opportunity for becoming more proficient in writing or communicating with others as majors in the humanities do. Both of these things are important in a professional environment.
3. Getting internships is highly competitive and it's common for many people your age/year to have more experience than you if they were introduced to CS much earlier.
1) While this is not true for most of the ICS professors, it is clear that some of the professors in the department do care as much about their students as they do their research.
2) We don't do enough application-specific learning, outside of coding everything I have learned is theoretical. While I don't doubt this will be useful, it would be good to learn things I can actually apply today.
3) Many of the professors in the ICS department have implemented a flipped classroom, and while for some classes this works really well, often the time in class I feel is not utilized well as a result.
1. I personally don't think the lower-level ICS class prepared me for the higher-level courses.
2. I think the ICS department should "keep their finger on the pulse" for their classes, for example, java is not available for businesses, production, and commercial without them needing to paying for it, as a result, they are starting to transition out of java. Some of the ICS classes are learning java and I think it would be a better use of time if we could learn other programming languages.
3. Personally I don't like the "flipped classroom" types of classes I wish I could be taught things in ICS rather than self-studying.