This page provides a set of questions and answers about the ICS core curriculum.
What is the core curriculum?
The core curriculum refers to a set of prerequisites that standarize the experience of ICS students during their first three semesters. It refers to six courses: ICS 111 and 211 (Introduction to Computer Science I and II), ICS 141 and 241 (Discrete Mathematics for Computer Science I and II), ICS 311 (Algorithms), and ICS 314 (Software Engineering I). All of these courses must be taken before any other 300 and 400 level ICS courses can be taken. These courses are taken as a sequence:
Students must take these six courses prior to taking any other ICS 3xx or 4xx course, since ICS 311 and ICS 314. In addition, you must complete all four of the 100 and 200 level core courses before taking the 300-level core courses.
Why did you implement the core curriculum?
The core curriculum leads to the following improvements for students:
- Consistent student background in core courses: Under the core curriculum, all students will reach ICS 311 and 314 with the same preparation, enabling the course to be taught more effectively.
- Better preparation for upper level courses.
- Make friends. The core curriculum means that ICS students will have three semesters where they take the same courses at the same time, improving opportunities to form friendships and learning communities.
- Better preparation for job interviews and/or graduate school. Because we can now build upon and revisit the material from ICS 311 and ICS 314 throughout the remainder of the curriculum, you will have more time to consolidate and improve upon these valuable basic skills.
Someone told me the core curriculum includes a "B or better" for all core courses. Is that true?
No. As of January 15, 2016, the ICS Faculty voted to defer implementation of the “B or better in all core classes” for at least one year in order to more fully study its implications.
The current rule, that a B or better is required in ICS 111, ICS 211, ICS 141, and ICS 241, remains in place.
What will you do to help us get through the core curriculum?
Succeeding in the core curriculum is a shared responsibility of the ICS students and the faculty.
As students, your responsibility is to commit to being successful. That means attending class, seeing the teaching assistants when you feel the need for extra explanation, and putting in the many hours required to master the basics of computer science. We cannot emphasize this last point enough: perhaps the most cited reason for failure in ICS students is “I didn’t have time.”
From long experience, we have learned that it is a rare student who can successfully be full-time in ICS and also have a full-time (or almost full-time) job. Computer science is hard, and it requires an irritating amount of time and concentration to learn! If you have to work more than half time, then you should consider taking a reduced load so you have enough time to succeed in your coursework.
As faculty, we commit to improving the information and educational environments necessary for success by committed students with appropriate aptitude for the material. During just this past year:
- Along with students from ACM Manoa Student Chapter, we designed and implemented the ICSpace, a community lounge which provides a 24×7 space for student meetings and activities. This space is ideal for learning with others: take advantage!
- We developed the Courses.ICS site where you can now access well-organized review materials for the six core courses (and other courses as well).
- We are deploying modern pedagogy (such as the flipped classroom) and custom educational software support (such as the Morea Framework).
In coming years, we hope to provide even more help. For example, we would like to institute peer learning sessions where undergraduates who have already finished the core curriculum can provide study support.
ICS seems so hard! Is the degree even worth it?
As ICS faculty, we obviously think so. Computer science is without a doubt a very marketable degree:
- The UCSD Hot Careers for College Graduates lists “software development” as the Number 1 top career.
- The Bureau of Labor Statistics for Software Developers lists their median pay as $97,000 and that their job growth rate is much higher than average.
- “Computer Science” is reported as the major with the highest starting salary according to an article in Forbes.
There is a lot of competition for the good jobs in computer science. We want you to successfully compete for those jobs, and the core curriculum is one step we are taking to help you get there.