Published using Google Docs
Computer Science Department Information Sheet for Students and Counselors
Updated automatically every 5 minutes

Computer Science Department Information Sheet for Students and Counselors

Feel free to reach out or direct students to Jonathan Potter (jpotter@ccsf.edu)!

Welcome! This page has information about two fields covered by the computer science department at CCSF: computer science and data analytics. Use the shortcuts below to jump to the section that most interests you!


Computer Science

Is CS Right for Me?

What Computer Science Is

What Computer Science Is NOT

Where to Start in CS?

Necessary Preparation

Whether to Take or Skip Intro Class

Recent Intro Course Revision

C++ or Java?

Pathways Into the Industry

Associate's Degree

Bachelor's Degree

Important Notes on Transferring Without CS 110A

Master's Degree

Other Pathways

Certificates

Bootcamps

Self-Directed Learning

Job Market Preparation

Portfolio

Interview Prep

Soft Skills and Networking

Career Advising and Job Placement

Data Analytics

What Is the Field of Data Analytics?

Data Analytics vs. Data Science

Where to Start in Data Analytics?

Pathways Into the Industry

Data Analytics

Coursework

Other Preparation

Data Science


Computer Science

Photo by James Harrison on Unsplash

Is CS Right for Me?

Students have wildly different levels of exposure to computer science prior to college. Some have a chance to take AP Computer Science. Others may not know what computer science is.

To help new CCSF students decide if CS might be of interest to them, here is a brief list of what computer science is and what it isn't.

What Computer Science Is

What Computer Science Is NOT

Where to Start in CS?

Necessary Preparation

For every class offered in the CS department, incoming students are assumed to have proficiency in two things:

Students with minimal prior exposure to computing may also want to start with a course on general computer usage, such as MABS 30 (Computer Keyboarding) or MABS 60 (Introduction to Computer Applications for Business).

Whether to Take or Skip Intro Class

Students looking to take their first CS class at CCSF have an important decision to make: do they jump right into our "Programming Fundamentals" courses, or do they start with a gentler introduction to programming?

If a student has absolutely no prior programming experience, we recommend they start with a gentler introduction course. This might be CS 110A (Intro to Programming and Computer Science) or MATH 108 (Foundations of Data Science).

If a student has done some programming before, either in school or outside of school, they may be ready to jump right into one of our "Programming Fundamentals" courses. In particular, when helping students decide, we look to see that they have been exposed to if statements, loops, and functions in some programming language.

A CS faculty member drafted the following self-assessment to help students determine which class is right for them. The rule of thumb is that if a student can program a solution to the question below in any language, they can skip our gentler introduction courses and enroll directly in one of our "Programming Fundamentals" courses. Here is the self-assessment question:

Write a complete function/method that expects a single integer parameter. If the number is positive, print a “Hello world!” message that number of times. Otherwise, print a message such as: “Error: number must be positive!”

Note that this is NOT a prerequisite challenge test, as our gentler introduction courses are not prerequisites for the "Programming Fundamentals" courses. This is only to help students make the appropriate decision for themselves.

For context, our "Programming Fundamentals" courses are:

Here are the "gentler introduction" courses students might take before taking one of the above:

Recent Intro Course Revision

Starting in summer '23, an updated version of our intro course, CS 110A (Intro to Programming and Computer Science), will be offered.

CS 110A's content is similar to what it used to be, but it has less emphasis on programming and more emphasis on:

Students who already took CS 10 (an intro course we briefly offered) in fall '22 or spring '23 should note that the contents of CS 110A are now mostly the same as the contents of CS 10.

C++ or Java?

Prospective CS transfer students have another decision to make when starting out: do they take our C++ sequence (CS 110B + CS 110C) or our Java sequence (CS 111B + CS 111C)?

Many 4-year schools allow students to transfer with experience in either language. However, some require one over the other. As students decide on what schools to apply to, they should be aware of whether any schools of interest have conflicting requirements.

Students cannot freely mix and match between the two sequences. Any student hoping to enroll in CS 110C, for example, needs to have completed CS 110B or have equivalent C++ experience. (The same assertion holds on the Java side.)

Students can take both sequences, although this will almost certainly delay their transfer year.

Beyond transfer requirements, the considerations around this decision are minimal. C++ and Java are two of the most similar languages in the field. Any aspiring programmer will likely learn both at some point.

A quick note on Python: while Python is a popular language, our Python courses are generally not part of transfer pathways.

Pathways Into the Industry

Associate's Degree

An associate's degree in computer science is not given much consideration by employers. For this reason, the CCSF CS department generally does not recommend obtaining only an associate's degree before looking for work as a computer programmer.

However, there are some computer programming jobs that do only require an associate's degree. In particular, these technological roles with the City and County of San Francisco list an associate's degree as their minimum education requirement.

Bachelor's Degree

For entry-level programming roles, a bachelor's degree in computer science (or a very closely-related field like computer engineering) is widely considered to be the standard level of preparation. For this reason, the CCSF CS department advises students to go for a bachelor's degree if they are able.

This does not mean it is impossible to get a job as a programmer without a bachelor's degree in computer science (see "Other Pathways" below). However, if a student can afford to spend the necessary time and money, a bachelor's degree is probably the path of least resistance.

A bachelor's degree on a candidate's resume will help them get an interview; however, it will not get them a job! For more on how to get past the interview phase of the job search process, see the "Job Market Preparation" section below.

Important Notes on Transferring Without CS 110A

At the time of this edit, the CS department has the following information on which schools require or accept CS 110A as a major transfer requirement. However, these lists may be slightly out of date, so please check assist.org to see if you should take CS 110A for your chosen transfer school(s)!

The following public 4-year schools in California currently include CS 110A of prospective transfer students.

For the following schools, CS 110A fulfills a requirement for incoming transfer students, but the same requirement can be fulfilled by one or more other CCSF courses. Please look closely at the transfer requirements if you are considering these schools.

Master's Degree

If a student already has a bachelor's degree in an unrelated field, the CCSF CS department often recommends that they prepare for and apply for master's degree programs.

We generally recommend that students preparing for master's degree programs take the major requirement courses for our associate's degree. (Students may or may not wish to also complete the general education requirements and obtain an associate's degree.) Students who complete the major requirements for our AS degree (or a full AS degree in CS) will not be guaranteed admission to master's programs by any means. However, we suspect that there is overlap between the courses we require for the AS degree and the courses desired by master's programs.

We strongly recommend that students also do as much research as possible into their chosen master's programs and learn what courses will prepare them for those specific programs.

SFSU has an MS program in CS that is available to students regardless of undergraduate major. We have also helped students prepare for MS programs at UC Berkeley and many other universities.

Additionally, many of our students have transferred to the Georgia Tech online master's program in computer science in particular because of how affordable it is relative to other similar programs. One of my former students who went this route was kind enough to compile their perspective. You can read this student's perspective here.

The master's degree path comes with the same disclaimer as the bachelor's degree path: while a master's degree may help a candidate get an interview, it will not get them a job! For more on how to get past the interview phase of the job search process, see the "Job Market Preparation" section below.

Other Pathways

It is possible to become a competitive applicant for entry-level programming roles without obtaining a bachelor's or master's degree in computer science or a related field. However, it is more difficult and often requires more self-motivation and self-directed learning.

Preparation can take the form of a certificate, a bootcamp, a self-directed course pathway, or self-directed learning.

Certificates

Students who already have a bachelor’s degree and/or work experience or who are not interested in pursuing a bachelor's degree might consider one of the computer science department's certificates to help them prepare for work in the field of computer science. A certificate by itself won’t get you a job, but it can be helpful when combined with other education and experience along with a good portfolio of work you’ve done.

We recommend the following CS certificates for students looking to use their certificate as a jumping-off point for applying to jobs:

Bootcamps

The CCSF CS department does not have an official opinion about bootcamps, but there are certain things we tell students to look for in a bootcamp if this is an option they are considering:

Self-Directed Learning

There is a wealth of free online resources to help you learn programming on your own. However, some of these resources are much better than others. It can be overwhelming to evaluate different resources and decide which ones to use.

The non-profit organization CodePath offers a number of free courses whose material is directly applicable to real-world programming.

W3Schools is also an excellent place to start learning a variety of types of programming.

Job Market Preparation

Whether a student earns a bachelor's degree or a master's degree, earns a certificate, attends a bootcamp, or just learns on their own, there are three things they will need to do in order to succeed in the job search process: develop a portfolio, prepare for the technical interview, and practice your communication and networking skills.

Portfolio

Regardless of what combination of preparation methods a student uses, they will need to create a portfolio with one or more open-ended projects that demonstrate their abilities as a programmer.

Our current certificate capstone course, CS 195 (Software Development Practicum), can help with this; it requires students to work in a team to develop a project of your own design.

The most common platform to use for such a portfolio is GitHub. Students can make an account on GitHub for free. They will then need to learn a command-line-based program called git, which has a bit of a learning curve. Udacity currently has a free course on git.

Interview Prep

Interviewing for a programming job often involves having to solve technical or logical problems on the spot.

Some things to keep in mind during the interview:

You might consider signing up for CodePath's free Technical Interview Prep course to help you prepare for job interviews.

Here are some other tools for independent interview problem practice:

Other ways to prepare for internships and tech interviews:

Communication Skills and Networking

In addition to looking for technical competency, employers look for candidates who are reliable and can communicate expressively and confidently. You should treat every stage of the hiring process as a chance to demonstrate your skills in these areas. Respond to emails in a timely manner, show up on time for appointments and interviews, and find opportunities - like mock interviews - to practice saying the things you will eventually say to a prospective employer. The more you nurture your habits of reliability and effective communication, the more these will shine through when you're looking for a job.

Learn to treat collaborative activities in the classroom and in the workplace as opportunities to build relationships. When you build professional relationships with people, these people can then help you in the job search process by introducing you to more people, providing recommendations, and referring you to their employers as a potential candidate.

You can also build your professional network by going to networking events. It is much easier to get an interview at an organization when someone within that organization has met you.

Make a LinkedIn profile if you haven't already. LinkedIn is the standard platform for staying connected to people you meet in an academic or professional context. Employers and potential professional connections will generally assume that you have a profile.

Talking to strangers can be intimidating! If you find yourself reluctant to introduce yourself to a stranger or navigate a stimulus-heavy networking event, the key is practice. If you can find low-stakes ways to challenge yourself socially, you'll feel better prepared for the social interactions you'll have on the job search. It might always be a little scary, but don't let that stop you!

Some Final Notes

The response rate for job applications is often very low. If you apply to ten places and don't hear back from any, don't worry. That is normal. You may have to apply to many, many more openings before you get a response!

That said, it isn't enough to just send your resume to as many organizations as you can. While some organizations may actually look at your resume and invite you for an interview if they think you could be a good fit, resumes are often ignored unless the applicant has some connection to the organization. For this reason, it is also important to gradually develop professional relationships and to network with people.

You are probably more qualified for certain job openings than you think you are. Organizations often list a wide array of desired skills and a large amount of desired experience, even though the candidate they ultimately select may have fewer skills and/or less experience.

Career Advising and Job Placement

Steve Nelson (snelson@ccsf.edu) is CCSF's Employment & Training Specialist and offers career services focused on information technology and computer science. He is available to help students find out about job opportunities and to prepare for and apply to them.

The non-profit organization CodePath also has resources for students looking to prepare for and enter the tech job market. Check out their offerings under the "For Students" section.


Data Analytics

Photo by Luke Chesser on Unsplash

What Is the Field of Data Analytics?

Simply put, the field of data analytics involves:

Data Analytics vs. Data Science

Students interested in working with data professionally will likely hear the terms "data analytics" and "data science" and may wonder whether there is a distinction between the two. While there is no clean separation between these two fields, and while there is disagreement among professionals about what should be classified as one or the other, the following is the CCSF CS department's best attempt to explain these terms.

Data analytics involves taking large amounts of data and using various tools to clean it, visualize it, and otherwise draw conclusions from it. These tools include the languages you learned in your certificate (Python, SQL) as well as larger pieces of software (Tableau for visualization, Excel for storage and analysis). Data analysts should be comfortable using tools that rely on machine learning techniques (things like the scikit-learn library in Python), but they don't necessarily need to be familiar with the math behind them.

Data science, on the other hand, is a much more math-heavy field. Data science professionals, unlike data analytics professionals, do need to have a deep understanding of the math behind machine learning tools. In some scenarios, data scientists are called on to build new tools that are better suited to an organization's datasets and goals than existing tools are. Data science students generally need to earn at least a bachelor's degree. Bachelor's programs in data science are starting to appear in 4-year schools in California. The major requirements for these degrees consist mostly of math classes.

Where to Start in Data Analytics?

At CCSF, the best place for students to start in the field of data analytics is MATH 108 - Foundations of Data Science. This 5-unit course is a beginner-friendly introduction to the fields of data analytics and data science. It covers basic statistics and Python programming and gives students hands-on experience using the same Python tools that professionals use to make predictions based on datasets.

The course will give students a useful glimpse into what working with data is all about and may help them decide whether they are interested in data analytics or data science.

Note that as with computer science coursework, the coursework in data analytics at CCSF assumes that incoming students have proficiency in two things:

Pathways Into the Industry

Data Analytics

Coursework

For students interested in data analytics, we recommend completing our Data Analytics Fundamentals Certificate. The certificate contains the following courses:

For students looking for additional coursework, we believe the following courses would potentially be relevant to an aspiring data analyst, although they are not required for the certificate:

Students have the option to begin the job search immediately after completing their certificate or moving on to a bachelor's program in data analytics, such as this bachelor's program in information science and data analytics at San Jose State University.

Other Preparation

As with computer science, with data analytics, it is important for students to develop a project portfolio in order to be competitive in the job market. This can be as simple as creating a series of visualizations that answer interesting questions about a single dataset.

We recommend that students create an account on Kaggle, a website that allows people to experiment with large data sets for free. Students are also encouraged to read this Coursera article about building a data analytics portfolio.

Students can review their knowledge of Python for data analytics with this free web-based version of the textbook Python for Data Analysis (McKinney, O'Reilly).

Data Science

For students interested in the more math-heavy field of data science, we recommend reaching out to the math department about their associate's degree in data science.

We recommend that students interested in data science pursue either a bachelor's degree or a master's degree in the field.


Written 10/15/2021 by Jonathan Potter

Edited 11/2/2021 with contributions from Craig Persiko

Edited 11/17/2021 with contributions from Erez Powell

Edited 12/7/2021 with suggestions from Marv Fischer

Edited 03/15/2022 with suggestions from the Industry Advisory Committee (IAC)

Edited 06/10/2022 to include information about data analytics

Edited 10/17/2022 to include technical jobs that only require an associate's degree

Edited 11/25/2022 to include information on transfer schools for which CS 110A fultills a requirement

Edited 11/29/2022 to include caveats about CS 110A

Edited 12/22/2022 to update Data Science section

Edited 02/21/2023 to include course advice for master's-bound students

Edited 04/05/2023 to account for transition from CS 10 back to CS 110A

Edited 10/12/2023 to include notes about CodePath and W3Schools

Edited 03/08/2024 to include a section on soft skills and networking at the suggestion of the IAC