Jason’s Major/Education Reflection

To expand on what I wrote in my Job Ads post, I feel that the CST curriculum could use improvements to better prepare students for the real world.  Courses could be made more practical with the addition of more hands-on activity.  There isn’t a single course that teaches people how to build, disassemble, and physically work with computer systems.  This should be added to the CST 1100 course (Introduction to Computer Systems).  As it stands, CST 1100 is almost entirely historical.

Other courses I’ve taken, like Operating Systems Fundamentals and Networking Fundamentals, are a bit too theoretical in my opinion.  Both of these are almost entirely theoretical and has very little practicality or usefulness.  Database Programming is another one: it is at least somewhat practical, but has little in the way of projects to make it a very useful course.

Java and Web Programming courses are involving and have lots of hands-on work.  Students will write various kinds of programs in Java courses, and they’ll make simple websites in Web Programming I and II.  My only complaint regarding Java courses is that they’re usually too slow paced.  From my experience, if a few students are lagging severely behind the rest of the class, but they ask questions during class, the professor will slow the entire class down and not allow other students to keep moving forward.  I realize that these few students need the help, but they should really visit the professor during office hours, and at the very least everyone else should be able to move forward.  Perhaps all assignments should be listed on the syllabus, for those of us who prefer to work at our own pace.

The Web Programming courses actually address that concern, letting us know the assignments beforehand.  However, these courses are just a bit too basic.  The web design techniques shown in class are very amateur and wouldn’t cut it in the real world.  There’s nothing these courses teach me that I can’t learn on my own at places like w3schools.com.

A major complaint I have about the CST curriculum is the rather small selection of programming languages available.  We have Java, XML, SQL, and the Web Programming courses which teach HTML, JavaScript, and PHP.  Looking back at the job ads I looked at, many of them demanded experience in C++, Ruby, Python, and/or some others.  Although NYCCT offers two C++ courses, these aren’t part of the CST program for some odd reason.  CST needs C++ more than any other department, so why are they no longer in the CST department?  Oddly enough, C++ was part of the CST department as elective courses back in 2010 or so.

This brings us to another suggestion: more uniform course catalogs.  The curriculum has changed dramatically since I entered the school in Fall 2011, and not necessarily better.  Some classes have outright disappeared, like Introduction to Systems Analysis and Design.  So if I am to follow the curriculum from when I entered the college, I can’t, since some classes are gone.  Others have been renamed, like SPE 1330 (Speech/Public Speaking) which is now COM 1330.  This is a minor change, but it leads to errors on the Cuny Degree Audit, which takes time to sort out.  All of this leads to confusion and forced meetings with advisers, and I don’t even have an adviser listed on Cuny/Cunyfirst.

I think that colleges should focus on preparing people for jobs, but general, adaptable knowledge is also a good thing.  There are some courses that just seem completely unnecessary, however.  CST majors have to take two cumulative science courses for some reason.  I understand taking an introductory course, but the second one will go into details that we’ll never draw on.  It’s just a waste of time and money.  The same applies to calculus/precalculus, there’s no real reason for us to take it, aside from the fact that it’s required.

At the end of the day, I feel that if I relied only on my college experience, I wouldn’t be adequately prepared for jobs in these fields.  I learned relatively little programming in City Tech, most of my knowledge in this subject is self-obtained from working on my own projects.  The same goes for IT support jobs; City Tech really doesn’t prepare you for it at all due to the lack of hands-on experience offered, and because they don’t teach students how to troubleshoot properly.  These are skills I learned on my own or from others, outside of school.

The most useful experience you’ll get during your school years will probably be internship experience.  Thankfully, an internship course is required for both associate and bachelor degree in CST.  City Tech will help you make a proper resume, and they’ll send out your resume to various companies.  This is how I got my internship at Borough Hall.  It was a good experience, despite the fact that I had to pay for the internship course despite working for no salary.

My suggestion to those getting ready to enter the job market is to take multiple internships in your field.  The experience is vital for several reasons: it will make you more prepared for jobs, since schooling alone is not adequate preparation.  You also need this on your resume.  In addition, you actually can learn things from the internet.  This is how I gained much of my hardware knowledge; by following and becoming a part of tech websites and communities.  This is how I learned most of my HTML/JavaScript/PHP knowledge.  If you have a problem that you’re struggling to solve, chances are you can find the solution by googling it.

I have a friend who transferred from NYCCT (CST department) to Queens College.  His major in Queens College is Computer Science, which seems to be a mix between our CST department and our Computer Science department.  I don’t like the idea of mixing the two, but it does have many interesting courses that aren’t offered here, such as multiple algorithmic problem solving courses (NYCCT has an introductory one for EMT majors, not CST), a course about Compilers, an Artificial Intelligence course with languages not offered at NYCCT, Cryptography, more in-depth networking classes, among others.  This friend of mine told me that the courses offered at Queens College tend to be more applied/practical.

Brooklyn College also has more algorithmic courses, AI courses, and more hardware focus.  They call the department “Computer and Information Science”.  City College seems to have less programming focus, and more generic requirements like Calculus III.  When branching out more and looking at places like M.I.T., things become much different.  MIT has an “EECS” department, short for “Electrical Engineering and Computer Science” department.  They teach a much wider variety of topics and seem to have much more hands on experience.  Someone who gets a degree in EECS would be a very well rounded, knowledgeable individual.

My main suggestions to City Tech and their CST department are: more hands-on activity, stronger focus on practical/applied courses, less focus on unneeded courses like a second science course and Calculus, and a wider variety of courses like C++ (simply integrate it into CST department), Ruby, Python, Artificial Intelligence, etc.  Take inspiration from other colleges.

http://www.citytech.cuny.edu/academics/catalog_listing.shtml – NYCCT Catalog Listing

http://www.cs.qc.cuny.edu/index-3.html – Queens College Course Listing

http://www.brooklyn.cuny.edu/web/academics/schools/naturalsciences/graduate/computers/courses_g.php?sch=n&div=G&disc=CISC.&department=22&dept_id=109 – Brooklyn College Course Listening

http://www.ccny.cuny.edu/compsci/upload/Requirements-for-B-S-Computer-Science-Spring-2012.pdf – City College Course Catalog

http://www.eecs.mit.edu/academics-admissions/undergraduate-programs/curriculum – M.I.T. Curriculum

http://catalog.hunter.cuny.edu/preview_program.php?catoid=16&poid=2196&returnto=1728 – Hunter College Course Catalog

http://www.rit.edu/programs/computing-security-0 – Rochester Institute of Technology Course Listing

https://www.baruch.cuny.edu/confluence/display/undergraduatebulletinspring14/Department+of+Statistics+and+Computer+Information+Systems – Baruch College Course Listing

http://bulletins.psu.edu/undergrad/campuses/details/29/IST – Penn State IST Requirements

http://www.american.edu/provost/registrar/pdf/upload/2013-14-AU-Catalog-FINAL-7-26-2013.pdf – American University Course Catalog