Pre-Major Foundation (20 credits)
In order to declare a Computer Information Technology (CIT) major, students are required to complete the following foundation courses listed with a grade of C- or better. Math courses should be taken before, or concurrently with, foundation ICS courses. Reference the CSC department's General Guidelines section of this catalog page for further details.
College Math Introduction
Choose one of the two courses below.
This course develops the fundamental concepts of algebra with an emphasis on the classification and analysis of linear, quadratic, polynomial, exponential and logarithmic functions. Applications to the natural and social sciences are given throughout. It aims to provide insights into the nature and utility of mathematics, and helps students develop mathematical reasoning skills.
Full course description for College Algebra
This course is designed to prepare students for calculus. Topics include polynomial, rational, exponential, logarithmic, and trigonometric functions; the algebra of functions; multiple function representations; and an introduction to analytic geometry.
Full course description for Precalculus
Complete all of the following courses. A minimum cumulative GPA of 2.5 for ICS 141 and MATH 215 or transfer equivalents is required for admission into major.
This course covers a variety of important topics in math and computer science. Topics include: logic and proof, sets and functions, induction and recursion, elementary number theory, counting and probability, and basic theory of directed graphs.
Full course description for Discrete Mathematics
An introduction to the formulation of problems and developing and implementing solutions for them using a computer. Students analyze user requirements, design algorithms to solve them and translate these designs to computer programs. The course also provides an overview of major areas within the computing field. Topics include algorithm design, performance metrics, programming languages and paradigms, programming structures, number representation, Boolean algebra, computer system organization, data communications and networks, operating systems, compilers and interpreters, cloud computing, data analytics, mobile computing, internet of things, and artificial intelligence) database, internet, security, privacy, ethics, and other societal and legal issues. Lab work and homework assignments involving flow charting tools and programming using a language such as Python form an integral part of the course.
Full course description for Computational Thinking with Programming
Structure, design, and implementation of object-oriented computer programs. Topics include objects, classes, GUI, and layout managers. Introduction to containment, inheritance, and polymorphism. Programming projects involving multiple classes. Emphasis on methods, parameter passing, and arrays of objects. Exploration of problem-solving and algorithm-design techniques using pseudocode, Unified Modeling Language (UML) class diagrams, and simple patterns. Design of good test cases and debugging techniques.
Full course description for Programming with Objects
This course focuses on how to design and implement information services over the Internet from the client side. The course focuses on both usability and client-side scripting. Topics include the principles, strategies and policies of web page design, including the rules of good interface design, human factors, ethical concerns and information security. Through labs and programming projects, students also learn how to use current scripting and markup languages and how to employ state-of-the-art tools to embed interactive pages into Web-based applications.
Full course description for Web Design and Implementation
Major Requirements (60 credits)
Once the pre-major foundation courses are complete, the following courses are required with a grade of C- or better. Students who haven’t declared or been accepted into the major will not be allowed to take 400-level courses in the discipline. The Capstone course, ICS 499, should be taken in the final semester of your program, or at least during the semester you complete the last of the other required major courses. Students are advised to reference the CSC department's General Guidelines section of this catalog page for further details on prerequisites. Students who have taken and passed ICS 240 may take ICS 372 in lieu of ICS 370. CYBR 332 is cross-listed as ICS 382.
Core Requirements (32 credits)
This course covers the basic principles and methods of statistics. It emphasizes techniques and applications in real-world problem solving and decision making. Topics include frequency distributions, measures of location and variation, probability, sampling, design of experiments, sampling distributions, interval estimation, hypothesis testing, correlation and regression.
Full course description for Statistics I
This course covers the fundamental concepts of a single user operating system. The topics discussed in the course are the basic concepts of computer organization and architecture, memory management, process handling, disk and file management and control, and peripherals operation. Students also have the opportunities to learn the techniques and procedures of system installation, configuration, administration, and trouble shooting. The operating systems illustrated in the course are MS Windows and/or Mac OS X.
Full course description for Computer and Operating Systems Fundamentals I
This course covers the fundamental concepts of a multi-user operating system. The topics discussed in the course are conventional computer organization and architecture, memory management, process handling, disk and file management and control, and peripherals operation. Students also have the opportunities to learn the techniques and procedures of system installation, configuration, administration, and trouble shooting. The operating systems illustrated in the course are Linux and Unix.
Full course description for Computer and Operating Systems Fundamentals II
Covers concepts and methods in the definition, creation and management of databases. Emphasis is placed on usage of appropriate methods and tools to design and implement databases to meet identified business needs. Topics include conceptual, logical and physical database design theories and techniques, such as use of Entity Relationship diagrams, query tools and SQL; responsibilities of data and database administrators; database integrity, security and privacy; and current and emerging trends. Use of database management systems such as MySQL. Coverage of HCI (Human Computer Interaction) topics. Development of GUI front ends to databases with application of HCI principles to provide a high level usability experience. Overlap: ICS 311T Database Management Systems.
Full course description for Database Management Systems
This course introduces principles of computer security with integrated hands-on labs. The course prepares students to effectively protect information assets by providing fundamental details about security threats, vulnerabilities, and their countermeasures ranging from a simple computer to enterprise computing. Topics include broad range of today's security challenges, common security threats and countermeasures, security management, access control mechanisms, applied cryptography, privacy issues, computer ethics, file system security, and network security. Overlap: ICS 382 Computer Security
Full course description for Computer Security
The course focuses on how to design and build process, object and event models that are translatable into project specifications and design. Topics include an overview of systems analysis and design; a framework for systems architecture; design and development using data modeling; object modeling, entities, relationships, attributes, scope rules and influences; and event models, messaging and application activation.
Full course description for Software Design Models
This course focuses on the theory and practice of effectively and efficiently building software systems that satisfy the requirements placed upon them by customers. This course gives an overview of the software lifecycle and introduces various process models used to develop software.
Full course description for Software Engineering and Capstone Project
Client/Server Computing
Choose one of the two courses below. The other course may be taken as a major elective.
This course focuses on how to design and establish information services over the Internet from the server side. Topics include advanced concepts and issues on Internet architecture, server-side design strategies, current technologies and Internet security. Through labs and programming projects, students learn how to use current scripting and markup languages to build nontrivial state-of-the-art applications.
Full course description for Internet Application Development
This course is a study of scaling client/server applications enterprise-wide. The course examines why ordinary client/server tools do not scale enterprise wide, and examines the extensions necessary in DB linkage, OS extensions, and networking connections necessary for scaling. The MVC II (Model-View-Controller) design pattern and other useful design patterns will be used to explain typical architectural approaches.
Full course description for Client/Server Architectures
Electives Requirement (8 credits)
Students are required take a minimum of 8 credits of elective courses as part of the major and as a means to meet the 24 credit upper division course requirement. Any 200-level or higher CFS, CYBR, or ICS courses, not already required for the major, may be taken as electives, with the following exceptions: ICS 372 (which may be taken in lieu of ICS 370), ICS 381, ICS 390, ICS 495, and CFS 499. Repeatable exceptions: ICS 490 Special Topics in Information and Computer Sciences and ICS 492 Seminar on Emerging Technologies may be taken more than once for elective credit, so long as the topics differ. Consult with academic advisor on acceptable electives. Internship/Residency: A maximum of 4-credits in ICS 350I Individualized Internship may be spread over 1-3 semesters.
General Guidelines
Transfer coursework equivalency is determined by the Computer Science and Cybersecurity (CSC) Department and initially evaluated upon admission with updates documented on Degree Audit Report (DARs). When transferring coursework, please be aware of the following:
Transfer Courses
• Many universities and community colleges offer courses equivalent to all of our Pre-Major courses. Many technical colleges offer some courses equivalent to some of our Pre-Major courses. • Sometimes a course at the lower division at another university or college is equivalent to one of our upper division courses, or an upper-division course at another university is equivalent to one of our lower-division courses. • For the purpose of calculating upper division credits for the major electives or for university graduation requirements, the status of the course at the institution where the student took the course is what matters.
Prerequisites
• Math courses should be taken before, or concurrently with, foundation ICS courses. • Students are responsible to both be aware of and abide by prerequisites for CFS, CYBR, and ICS courses for which they enroll, and will be administratively dropped from a course if they have not met prerequisites. • For some courses, prerequisites are enforced automatically by the registration system. • If your DARS report shows you have met the prerequisites for a course, and the registration system will not let you register, please contact your academic advisor.