I've officially been an ICS major for only a few months, but I've been taking classes from the department for the last three years. In this time, I've come to the conclusion that these three bad things about being an ICS student at UH Manoa:
1) Practically all of the classes the department offers are held in the mid- to late-afternoon. This is very much a personal issue, but as someone who is naturally a morning person, I'm mentally exhausted from my other classes and work by the time I get to my first ICS class of the day. Although I appreciate the fact that the scheduling means fewer time conflicts with other departments' courses, it's tough on me to be in school from 9:00am-6:00pm multiple days a week. Also, by having most classes in the afternoon, there are often conflicts between ICS courses that I want to enroll in.
2) As others have mentioned, the textbooks tend to be pricey and ill-used for the cost we spend. I'm more than willing to spending $100 on a textbook that I am going to use consistently and covers most of the material throughout a semester, but teachers will often tell a class that a book is required and then barely reference it in the course. If the department and/or teachers are going to state that a textbook is required, I feel that it should be necessary for the course and not an afterthought.
3) As others have also mentioned, it would be nice if the department found more ways in integrate the focus requirements into the courses. I took ICS 390, which gives an E, O, and WI, but it is definitely not a class that is common for ICS majors to take; in fact, ICS majors in the class are a definite minority. I have taken other ICS courses that should have had at least a WI focus designation, if not also an O, and labeling them as such would have had two positive results. First, students would be more prepared for the course requirements when registering for the course. Second, the majority of classes with focus designations are upper-divisional, which means that students using non-major courses to meet focus requirements may need to take prerequisite courses before being able to work on the actual focus requirement.
1. Have more professors with focus designations
2. More practical courses that don't focus a lot of on theory (e.g. web programming)
3. Having more specific courses rather than getting a taste of every aspect of ICS
1. The course selection, especially at the grad level, can be sparse for some semesters. Maybe this is more of a preference issue, as I find that some semesters have several classes I'm really interested in while in others there aren't any. This is especially frustrating when some courses are only offered once every 2 years, meaning that you have to take it one semester or risk not being able to take it at all.
2. Going through the course catalog, there are classes that haven't been offered in years. For example, I have never seen a computer graphics course here at either the undergrad or the graduate level (although 483 was offered one semester and later cancelled). I'm not asking that the department update their course offerings (though if the class hasn't been offered in a while, I think it's safe to remove), but I do wish that some of these classes were available.
3. The ACM department has a computer game production class. I've heard from a instructor there that they have artists, but there aren't enough programmers. I'm fairly sure there are students who are interested in game design (which is sometimes offered as a 491). Perhaps some agreement can be made between the two departments so that this ACM class satisfies ICS graduation requirements and that the class is cross-listed in the ICS department.
I thought the exact same things as Kimberly. Though I won't quote her since her post was very long and thorough.
1. While I'm not a morning person so I don't mind late classes, the thing that does bother me is there that fact that since most classes mostly in the afternoon, sometimes it creates so much schedule conflict with another ICS course. When you have multiple course that are prerequisites for higher course, most of the time you want to finish all of them as soon as possible. But I've more than once had to pick and choose a 300 level course over another both being required, but both being scheduled at the exact same time. This is frustrating when you are trying to graduate in four years.
2. I've had a few classes with Kim now, and I agree with her on the fact that a lot of the books we buy in the course are only used a reference material. When you see a $100+ text book that says required, you feel like your going to be reading through it a lot and can take a lot from it, but many times the professors would not even reference the text book, and you could easily find related material with a quick google search or using things like the Java API. It has become so bad that in many classes I've resorted to waiting until there is something actually assigned from the book such as homework or reading, that I would buy it. Doing this I have easily gone through classes without even looking at the book, and have been able to save hundreds. Not to say there aren't courses that heavily use the text and they are well worth it, just the fact that there is a lack of these courses.
3. For the WI,E, and O. The Ethics and Oral portion are actually very easy to get. There are always one or two classes that give them, and there are various easy courses not ICS related to get the one requirement out of the way. The thing that is the problem is the five required WI. There is very much so a lack of WI courses in this department. So far there have been two many three of them, none of them which is actually required for the major. After walking into a class with no WI designation and having to write a few technical reports, you'll have wish there was a fair warning or at least a WI as a reward for it.
1. There should only have one course platform at least for the ICS department or many that could relate to each other. Currently, there's discourse, Laulima, or Google (for Adv SE course). It's very confusion, hassle, and waste of time as a student try to go to different platform for each course. If we can consolidate those systems, it would be easier (and through time) as student will get use to the system not struggling through the sign up process or see how thing work.
2. Class that tend to focus on discussion or using a personal laptop work should be organized around the big table like POST 302 instead of normal classroom. Laptop possibly drop when moving around while it stay on the the small chair-desk.
3. Specifically for graduate course, class should only meet once a week. As some of us also got a job while in school, it will save us time to commute and spend more on doing research work.
1. The elective courses for the bachelor program are too broad. It would be better if we could focus more on the topics that interest us the most.
2. Like David said, some classes are only offered once a year. I have to wait until the following semester just to take one electives I need to graduate.
3. Internship opportunities to help us be gain a lot of hands-on experience and networking experiences.
1. I wish there were more selection of 400 level classes to choose from. I understand that we are currently undergoing a budget crisis, but cutting back on classes in my opinion is not the right stragety here.
2. I would like to see more classes that involve group projects. After taking all of the introductory and 300 level classes, almost none of them made us work in groups. I feel that group work should be encouraged more.
3. More hardware classes would certainly be nice. I know this isn't EE or EC, but a little more hardware knowledge definitely wouldn't hurt.
1. More collaborative programming groups outside of class
When I was an undergraduate in Iowa there used to be several student run groups/clubs on campus where students interested in programming got together to make fun projects. I was involved in a video game programming club that used to work on a different project each year. I tried to join the ICS club in my first semester here but we ended up not doing much at all.
2. Restructuring the ICS 141 class format to engage students with relevant material
I've enjoyed being a TA for ICS 141 and ICS 241 for the past four semesters but I feel that the class should be restructured to engage student interest. I've talked with several students who felt that this class was boring and irrelevant to computer science. The class is designed to teach discrete math almost exclusively from a mathematical standpoint without tying the subject matter to relevant fields in computer science. For example we learn about propositions such as AND, OR in section 1.1 but barely glance over how those logical operations tie in to bit operations in C. We talk about functions and recursion in chapter 3 but don't mention functional programming languages, why recursion is relevant to programming or even why students should learn this material if they want to become better computer scientists. I would like the class to be taught with more real world applications rather than keeping everything theoretical.
3. An ICS collaborative programming environment/help station
I would like the ICS department to have an area for students to work on collaborative projects. I believe students learn more by helping each other program just like the format of the software engineering class. It would be nice to have an environment where students could get help from others who are also working in that area. There could even be a "expert" programmer on duty in the help station.
While no education system is perfect and I do have concerns with some education standards in general, thre things that I find to be bad about ICS student status would be:
1. The lack of variety in the upper level course selection. I do like that there is a variety but with each semester I find myself locked into a set of classes based heavily on what will fit where and not what seems interesting to take. I would like to see more selection, including some based on web design/languages and/or possibly graphic design as a way to bridge the gap between code and result.
2. Class scheduling sometimes feels widely sparatic, in the past I've had 2 ICS classes in a day, one earlier in the morning and later in the afternoon, while there could or could not be classes inbetween that, it can sometimes be odd to plan a schedule to fit into and work with the "ICS sandwich"
3. The lack of WI focus is of concern to me as well especially seeing how much writing some classes do require. I can imagine based on the comparison of WI classes and non WI classes that it can lead to some big project issues when writing piles up in a writing intensive course and find yourself spending more time writing for a non writing intensive course's reports. And writing intensive classes can be so hard to find to fit in an ICS schedule.
1. Course selection could use some major improvement. Offering courses only once a year or not at all because we lack the professors to teach it, that's pretty bad.
2. Course options could also use some improvement. Maybe add more 400 level classes with different focus.
3. We have many knowledgeable professors in this field but it's sometimes hard to grasp that knowledge due to their teaching methods.
1. Carpal tunnel syndrome.
2. Just like everyone else, I would like to see more ICS courses so that students are able to pick courses based on the field they want to specialize in.
3. I would also like to see the department get their own dedicated computer lab for students.
1. Internship/Coop type program required sort of like the TIM major that way we can have some real-world work experience earlier before graduation.
2. Offering a course every other Spring or so will cost us some time and money but I understand the shortage of staff and budget.
3. Better teaching standard of material content because I feel a lot of student do not want to major in Computer Science because they probably have no knowledge of programming at all.