City College Computer Science Program: An Overview
Whether you are a new college student, a returning student looking to start a new career, or a seasoned tech professional looking to update your skills, the City College Computer Science (CS) program can help you position yourself to apply your knowledge of computing to whichever societal problems interest you most. The program offers a variety of courses and resources to help students succeed in the field of computer science.
Is CS Right for Me?
The CS Information Sheet addresses this question, along with others like "What class should I start with?" and "How do I get a job as a programmer?".
Class Schedule
Prospective students can explore computer science classes offered during upcoming terms by consulting the public class schedule or the unofficial public schedule. The unofficial schedule may be slightly less up-to-date but is often more user-friendly.
Course Outlines and Program Requirements
Detailed information on specific CS courses, including the latest outlines, and the requirements for CS certificates or degrees can be found by clicking the Course Catalog or Program Catalog links on the unofficial public schedule page. Note that some courses and programs listed may be inactive.
Evaluation
The format for evaluation is a comprehensive, in-person exam. If you believe you've completed coursework or independent study equivalent to CS 111B and would like to earn credit for this work, please contact the CS Department Chair to schedule a time to take the exam!
Read also: Universal Studios Hollywood: Entertainment Guide
Tutoring
For academic assistance, the Computer Science Tutor Squad offers free CS tutoring on campus and via Zoom. Tutors are current and former CS students and industry professionals.
Prerequisites
While not always listed as official prerequisites, students entering the CS program should possess certain foundational skills. These include:
- Math at the level of college algebra, with proficiency in variables and functions.
- Written and spoken English at an advanced academic level.
Students lacking these proficiencies may face challenges in succeeding in CS courses.
Prerequisite Challenge
Students can challenge prerequisites by following the standard CCSF prerequisite challenge process. For CS 110C, CS 111C, or CS 270, a prerequisite challenge exam may be required. The virtual exam takes approximately 30 minutes. Sample questions for C++ and Java are available to help students prepare.
Course Transfer Agreements
Students planning to transfer can use the CS course articulation guide to see which CCSF courses will transfer to their target school. Complete information about course transfer agreements is available at assist.org.
Read also: SU and the City
Hills Computer Cluster
The Computer Science Department at CCSF utilizes a computer cluster called "hills". Access to hills is essential for many classes. A reference page is available for students needing assistance with logging in and using hills, including password resets.
Course Descriptions
The City College Computer Science program offers a wide range of courses, covering various aspects of computer science. Here's an overview of some key courses:
CS 10: Introduction to Computer Science Concepts
- Advisory: Intermediate algebra or higher and readiness for college-level English or ESL 188.
- A broad introduction to fundamental concepts in computer science.
CS 110B: Programming Fundamentals Using C++
- Advisory: CS 10 or CS 110A or MATH 108
- Covers programming fundamentals using the C++ language, using procedural and object-oriented approaches to problem solving.
CS 110C: Data Structures and Algorithms in C++
- Prerequisite: CS 110B
- The analysis and design of computer algorithms and their underlying data structures. Analysis of the timing and efficiency of algorithms. Study of lists, stacks, queues, trees, backtracking, searching, sorting and recursion. Introduction to graphs, hash tables, heaps, priority queues and direct access files.
CS 111B: Programming Fundamentals Using Java
- Advisory: CS 10 or CS 110A or MATH 108
- Covers programming fundamentals using the Java language, emphasizing an object-oriented approach to problem solving.
CS 111C: Data Structures and Algorithms in Java
- Prerequisite: CS 111B
- The analysis and design of computer algorithms and their underlying data structures. Analysis of the timing and efficiency of algorithms. Study of lists, stacks, queues, trees, backtracking, searching, sorting and recursion. Introduction to graphs, hash tables, heaps, priority queues and direct access files.
CS 131B: Programming Fundamentals Using Python
- Advisory: CS 10 or CS 110A or MATH 108
- Covers programming fundamentals using the Python language. Python is interpreted, interactive, and object-oriented. Recommended for general-purpose programming, system administration, or web programming.
CS 150A: Introduction to SQL Database Management Systems
- A course in the use of SQL database management systems to create, query, and update database tables. The course covers both the syntax and the logic of the major features of the SQL language.
CS 150B: MySQL Server Administration
- Advisory: CS 150A and CS 160B
- Students install and configure a MySQL server and create and manage user accounts.
CS 151: Advanced MySQL Techniques
- Advisory: CS 150A
- An advanced course in the use of MySQL techniques to process database objects. Design and develop MySQL program units: stored procedures, functions, and database triggers.
CS 160A: Introduction to Unix/Linux
- Introduction to using the Unix/Linux operating system.
CS 160B: Shell Scripting
- Advisory: CS 160A
- Analyze, design, write, test, and debug shell scripts. Students learn basic shell scripting techniques and develop scripting skills needed for Unix/Linux System Administration courses.
CS 177: Software Engineering Principles
- Prerequisite: CS 110B or CS 111B or CS 131B
- Introduction to principal software engineering processes and pitfalls. Focus on users, development methodologies, testing, and tools.
CS 186: DevOps: Development and Operations
- Advisory: CS 132A and CS 177 and CS 260
- Development and Operations (DevOps) is the use of build automation tools to automate provisioning, configuration, monitoring, and management of data centers and networks. These same tools are used to automatically build and test software for Quality Assurance (QA).
CS 205: Introduction to Game Design
- Advisory: VMD 105
- Utilizing the Unity game engine and a range of additional tools, this course is an introduction to the career opportunities in the games industry. Students will learn how individual games are made, distributed, and sold via both physical media and online.
CS 210: Team Project
- Prerequisite: CS 110B or CS 111B or CS 131B or CS 150A or CS 177
- Integrate and apply knowledge gained through CCSF coursework in a team-based environment. Work on realistic projects with input invited from local employers.
CS 211D: Programming Job Interview Prep
- Prerequisite: Completion of or concurrent enrollment in: CS 110C or CS 111C
- Preparation for programming job interviews: problem-solving and algorithm questions solved on a white board or online chat, approaches to technical interviews, and solving common kinds of problems.
CS 211S: Version Control Systems
- Advisory: CS 10 or MATH 108 or prior programming experience
- Using version control software such as Git and online code repositories such as GitHub. Use these systems for team collaboration in software development, and to present work online as a portfolio for job applications.
CS 212: Computer Science Internship
- Provides students with the opportunity to earn course and certificate credit for working in the field, in a supervised setting in the ICT/Computer Science industry. Internships include software quality assurance (QA), junior developer, database programmer or administrator, Linux system administrator, etc.
CS 214U: Independent Project in Computer Science
- Advisory: CS 110C or CS 111C or CS 160B or CS 177 or CS 211S or CS 211D or CS 212 or CS 214U or CS 231 or CS 232 or CS 256 or CS 280
- Large-scale individual projects in computer science to be defined in cooperation with an instructor/supervisor. The project must be in in an area not covered by other course offerings.
CS 231: Android Application Development
- Prerequisite: CS 111B
- An advanced course in the design and development of applications for mobile devices running the Android operating system.
CS 232: Advanced Java Enterprise Edition
- Advisory: CS 111B and CS 211S
- Advanced Java Enterprise Edition covers features of the Java language essential for building network- and web-oriented applications.
CS 256: Advanced Java
- Prerequisite: CS 111B
- Introduces advanced Java language features and packages that are essential for building Java Standard Edition applications. Topics include object-oriented design, updated Java features, file input and output, exception handling, collections, generics, graphical user interfaces (GUIs), functional programming, reflection, and multithreading.
CS 260: iOS Application Development
- Advisory: CS 112 or CS 110B or CS 111B
- An advanced course in the design and development of iOS applications using Xcode and Swift. Overview of object-oriented programming in Swift. Development of user interfaces with Storyboard.
CS 270: Game Programming
- Prerequisite: CS 110B or CS 111B
- This course provides students with the opportunity to learn computer science concepts in the context of game and simulation development.
CS 280: Python for Data Analytics
- Prerequisite: CS 131B
- Second course in the Python programming language. Emphasis is on applications in data analytics. Covers resources, practices, and modules used by successful Python programmers; debugging and testing; data serialization; and interaction with SQL databases and web services. Students write useful programs demonstrating mastery of these techniques, which are applicable to real world problems. UC/CSU Units: 3 Credit type: Credit/Degree Applicable CS 131A may be used to satisfy the prerequisite.
CS 282: Data Science Fundamentals
- Prerequisite: CS 131B or CS 111B or CS 110B
- Advisory: MATH 80 or ECON 5 or PSYC 5 or LALS 5 or MATH 108
- Access and analyze data and produce information visualizations to discover patterns. Fundamental skills and concepts for data science applicable to scientists, journalists, business people, and database programmers.
CS 284: Linux System Administration
- Advisory: CS 160B
- The administration of a Linux server. Prepares students for industry certification and entry-level employment in system administration.
CS 288: Computer Architecture
- Prerequisite: CS 110B or CS 111B
- Advisory: CS 160A
- Basic computer organization including the von Neumann architecture, the instruction cycle, parts of a CPU (central processing unit), pipelining, memory hierarchy, and interrupt handling. Representation of numerical and non-numerical data.
CS 289: Parallel Programming
- Prerequisite: CS 110B or CS 111B
- Advisory: CS 110B or CS 111B or CS 131B
- Programming fundamentals using multiple processors or computers to solve a problem. Mechanics of computation, multi-tasking, multi-threading, and object-oriented approaches to managing many computing elements working on the same problem. Programming for Cloud computation, Big Data access, and highly parallel computing hardware.
Computer Science: A Field of Endless Possibilities
Computer Science deals with information; its efficient representation and transformation, its communication and security; its storage, retrieval, analysis and display. The areas of specialization include artificial intelligence, computer vision, networking, database systems, computer-human interaction, computer graphics, and numerical and symbolic computation.
The faculty are accomplished researchers who pair their pursuit of research with a serious commitment to teaching in their discipline, supplemented by well defined liberal arts courses available from other departments within City College. The total curriculum is designed to help students develop the skills needed to become competent, articulate, and well-rounded professionals, able to begin careers in research, development, and business.
The faculty enhance their teaching activities with a number of active research programs in such areas as digital signal processing, computer architecture, computer communications, computer security, pattern recognition, image analysis, symbolic computation, software engineering, verification and testing, VLSI, and CAD. Students majoring in Computer Science represent the diversity of New York City's population. They share a common bond, which is their commitment to excel in their studies and ultimately succeed in their chosen careers.
Read also: Your Path to a Healthcare Career
Career Opportunities
A computer science education can lead to a wide range of career paths, including:
- Computer programming and software development.
- Database administration.
- Game development.
- Systems administration.
- Network specialist.
These careers can be found in various sectors, including:
- Information technology (IT).
- Computer applications.
- Business.
Skills Acquired
Students in the City College Computer Science program will gain proficiency in:
- Computer programming languages, such as Python, C++, and Java.
- Software development tools and techniques.
- Database design and management.
- Game design principles.
- Computer architecture.
Computer Information Systems (Information Technology)
The program also provides training in Computer Information Systems (Information Technology) field. Students will learn to implement, operate, and maintain a computer information system, whether it is a computer serving hundreds of users or a small personal microcomputer on a desk. The program also offers vendor neutral industry-standard certification training.
tags: #city #college #computer #science #program #overview

