This is my first ICS class, due to the engineering department not having an equivalent EE version of Software Engineering. What I would like to see, from a computer engineering student perspective, more ICS classes that Computer Engineers can branch out to. Most of the ICS classes offered are often already covered by EE equivalent courses, or require several ICS prerequisites, which computer engineers do not have. Yes, some classes can be entered with an override, but the other main difference between the ICS track and Engineering track is that we use different languages, Java vs C/C++. Concepts are indeed the same, but engineers would need to catch up/ learn java, on their own before being able to take the higher level ICS courses not offered within engineering like AI Programming.
My main issue is I don't want to have "duplicate courses" and would rather have more variety. I do understand that the computer engineering degree offered by UH is still relatively new, but towards the future, maybe more classes can be offered in replace of the duplicates. Example is Discrete Mathematics. ICS department offers two courses, ICS 141 and ICS 241. Engineers cover all of that in only one course, EE 362.
1) I have no clue what I want to do and it is hard to decide what I want to focus on in the ICS program.
2) Everything is self-taught, and resources are recycled/reused from other campuses and professors.
3) I feel like programming is a language in itself and there is no other language like it. So I don't understand why we're forced to take second language requirement when we are learning multiple programming languages as well as writing pages on pages of code. I found programming to be a language of computers, where we write/read instructions (programs) that need proper syntax and requirements for the computer complete the given task.
1. Some of the lower division classes have large lectures. This can make it hard to get help from the professor, which is important when first learning to program.
2. There is limited class availability. I've noticed a lot of the classes only have a couple of sections a semester, and those sections fill up quickly making it hard to get the required classes.
3. There is a large work load. It can be frustrating, and time consuming to code and debug large projects for class. However, I do understand that this is a difficult field, and this is preparing us for a professional environment.
Being a computer engineering student I have had a slightly different experience but I'm sure we share many of the same thoughts.
1)The cost of textbooks in a technical field such as this has been a problem for myself and many others. However, free and open source resources are becoming more and more available allowing students to go elsewhere for information. It will be interesting to see if classes and curriculum may adjust to have less need for a "textbook" in the future.
2)There aren't many courses in the engineering department tailored to the computer engineers. It would be helpful to have more classes available within the college itself, but there are opportunities outside the college such as here in the ICS department.
3)A reason we may not have many computer engineering courses might be that we don't have enough people to teach the courses. It seems like there are only two professors for the computer engineering classes, so if we would be able to increase that amount we would be able to support a wider variety of classes.
1. There aren't enough professors to teach all the students. Often, classes are filled and graduation is delayed.
2. CS textbooks are very expensive. A semester's worth can cost $500-$1000 alone. More online materials might reduce the printing costs, and may make learning more affordable.
3. Large workload compared to some other majors. It's not really something the UH ICS program could improve, since computer science is a difficult field.
I'm going to edit this question just a bit since I'm not actually a part of the UH ICS program...
What are three ways that the UH Computer Engineering program could improve?
1) More integration with the ICS program: I know that these are two separate majors that learn different things, but I think, from my own personal experience, that CE majors should take more ICS classes to broaden and deepen their understanding of other "higher level" languages (since we are only really required to learn C and C++).
2) More hardware experience: This is more of a CE thing, but there is not much in the way of computer hardware in the program. Because we deal with both hardware and software, I think that more effort should be put into understanding what makes optimal hardware and the physics of it. Right now the highest level hardware class available is at a 300 level, and I think it might be beneficial to have a 400 level one, and one way to do that might be to have...
3) More CE centered design projects: Maybe there are some that I am unaware of, but it seems like there are more projects available to all the other engineering majors readily available (the only ones I can think of is an Android development project and micro mouse). Since most engineering students have to complete 3 years of x96 projects, it would be nice to have some that specifically dealt with CE (I had to settle with an EE project for two semesters).
I am not an ICS student but I do agree that the department should offer more resources for students. For example, hosting the classes in classrooms with computer access. I understand it is just more practical for students to have their own laptops but money is an issue for most students. This is my first ICS class and I had to get a new laptop because the one I was using was not up to specifications. In the engineering department, having a laptop is not a requirement even for computer engineering students.
I also agree that there should be more courses offered, in different concentrations. There should be more courses for computer engineering students, since the EE department doesn't offer all of them.
I'm not sure if ICS courses have lab times, but if not, they should. The programming courses I've taken in the EE department had labs and I feel the scheduled 3 hour time slot is a great way of giving the students time to collaborate and work on projects face-to-face.
1) It can be stressful. You must be willing to spend a lot of time on problems, homework, and projects.
2) Class Availability and prerequisites. You need to really plan out what classes you need to take for the semester.
3) Depending on the class and who is teaching it, you may have to learn the material on your own.
1) Specifically at UH Manoa, the program is not ABET accredited so that may hurt us when trying to find a job later
2) Classes are generally pretty hard so it is hard to maintain a good GPA, even Gerald told me so when I switched to computer science
3) There is no real way to obtain the oral communications/ethics requirements in the ICS field alone. The only one available is ICS 390, which is the TA class which requires an instructor's approval, which also doesn't count as an ICS class in the STAR degree requirement to graduate.
1) Registration is fairly difficult due to the shortage of sections for some classes.
2) The learning curve to programming can be steep and daunting and getting personalized time can be challenging in classes with a fairly large amount of students.
3) The ethics and oral credits needed for the major are hard to get due to the very limited number of courses that offer these credits.
1. There's a lot of work, it's hard to gauge how long a project will take, and code doesn't necessarily get better when you put more time into it.
2. The schedule and workload is isolating, both from non-tech people who don't understand what we do, and other techs who are differently specialized.
3. Many of us are irritating and pretentious, as well as sexist. There are stereotypes to cut through at every turn both from outside and inside the field.