COMPUTER SCIENCE COURSES (CMPSC)

CMPSC 115 - CS I: ESSENTIALS OF PROGRAMMING

This course is designed to give students exposure to essential object-oriented programming concepts. The primary goal is to familiarize students to a disciplined approach to programming logic, problem-solving methods, algorithm development, and security awareness. The course teaches: program design, coding, testing, debugging, and documentation at the introductory level. When completed, the student will be able to solve programming tasks in socially responsible disciplined fashion. Students are expected to be Windows proficient prior to this course.

3 Credit Hours (TC) - Lecture Hours: 2 Laboratory Hours: 2

CMPSC 120 - BUSINESS COMPUTER SYSTEMS (BUS 902)

Prerequisite: MATH 098 with a grade of "C" or better or equivalent. Designed primarily for students planning to major in business. Course will acquaint and train students in the use of business software including word processing, database management, spreadsheets, presentation software, and internet access methods.

3 Credit Hours (TC) - Lecture Hours: 2 Laboratory Hours: 2

CMPSC 122 - INTRODUCTION TO COMPUTER SECURITY

Prerequisite: CMPSC 115 or concurrent enrollment with department approval. This course provides an overview of the fundamentals of computer security. Topics include security standards, policies, and best practices, principles, mechanisms, and implementation of computer security and data protection; security policy, encryption, and authentication; access control and integrity models and mechanisms; network security, secure systems; programming and vulnerabilities analysis; principles of ethical and professional behavior; regulatory compliance and legal issues; information assurance; risk management and threat assessment; business continuity and disaster recovery planning; and security across the life cycle (requirements, architecture and design, construction, testing, operation, maintenance, acquisition, and services).

3 Credit Hours (OC) - Lecture Hours: 2 Laboratory Hours: 2

CMPSC 124 - EVENT-DRIVEN PROGRAMMING IN VISUAL BASIC

This introductory course in event-driven programming will introduce the student to real world applications for the world's most widely used operating system, Microsoft Windows. The student will become familiar with how computers are programmed, the Visual Basic editor (IDE), control structures, procedures and functions, arrays, data types, graphics and graphical user interfaces, event-driven programming (task/object/event), error handling, and sequential and random access file processing. Concentration will be on writing well-planned and user-friendly programs. MS Windows proficiency is expected of students desiring to take this course.

3 Credit Hours (TC) - Lecture Hours: 2 Laboratory Hours: 2

CMPSC 125 - CS I: PROGRAMMING IN C++ (CS 911)

Prerequisite: MATH 098 with a grade of "C" or better. This course is an introduction to computer science; its primary purpose is to introduce a disciplined approach to problem-solving methods and algorithm development, emphasizing data and procedural abstraction. Using C++, the course teaches program design, coding, testing, debugging, and documentation.

3 Credit Hours (TC) - Lecture Hours: 2 Laboratory Hours: 2

CMPSC 140 - INTRODUCTION TO RELATIONAL DATABASES

Prerequisite: CMPSC 115, 124, 125, or 215 all with a grade of "C" or better or department approval. In this course, elementary relational database concepts will be presented. Database modeling will be explained and normalization will be discussed. Structured Query Language (SQL) and advanced database concepts will be introduced.

3 Credit Hours (OC) - Lecture Hours: 2 Laboratory Hours: 2

CMPSC 145 - INTRODUCTION TO PYTHON

This course is designed to give students exposure to the essentials of programming in the Python programming language. The primary goal is to familiarize students to a disciplined approach to programming logic, problem- solving methods, algorithm development, and security awareness. The course teaches program design, coding, testing, debugging, and documentation at the introductory level. When completed, the student will be able to solve programming tasks in socially responsible disciplined fashion. Students are expected to be Windows proficient prior to this course.

3 Credit Hours (OC) - Lecture Hours: 2 Laboratory Hours: 2

CMPSC 200 - C# PROGRAMMING

Prerequisite: MATH 098 with a grade of "C" or better or department approval. This course introduces a current Object Oriented Programmer to the C# programming language, a part of the Microsoft.NET platform. All programming elements of the language are presented in a rapid survey of the language. Emphasis is upon interfacing with databases and class design. The skills needed to write console applications, Windows applications, and beginning internet applications are presented.

3 Credit Hours (OC) - Lecture Hours: 2 Laboratory Hours: 2

CMPSC 212 - CS II: ADVANCED PROGRAMMING IN C++ (CS 912)

Prerequisite: CMPSC 125 with a grade of "C" or better. The second in the sequence of courses in C++ programming. This course covers: design and implementation of large-scale problems; abstract data types; data structures (files, sets, pointers, lists, stacks, queues, trees, graphs); text processing; and an introduction to searching and sorting algorithms.

3 Credit Hours (TC) - Lecture Hours: 2 Laboratory Hours: 2

CMPSC 215 - COBOL AS A SECOND LANGUAGE

Prerequisite: CMPSC 124 or CMPSC 125 with a grade of "C" or better or department approval. This course is an introductory COBOL course which builds on prior programming experience. Structured programming design, implementation, testing, documentation using COBOL, arrays, records, string processing, and files are covered. Sorting and searching techniques and interactive programming will also be introduced. Specifically, direct access file techniques, master file update, and control break logic are covered. Program linkage and parameter processing are also introduced.

4 Credit Hours (OC) - Lecture Hours: 3 Laboratory Hours: 2

CMPSC 222 - SECURE CODING

Prerequisite: CMPSC 135 with a grade of "C" or better or concurrent enrollment in CMPSC 135 with department approval. This course covers security vulnerabilities of programming in weakly typed languages like C and in more modern languages like Java. Common weaknesses exploited by attackers are discussed, as well as mitigation strategies to prevent those weaknesses. Students practice programming and analysis of software systems through testing and static analysis.

3 Credit Hours (OC) - Lecture Hours: 2 Laboratory Hours: 2

CMPSC 224 - ADVANCED VISUAL BASIC

Prerequisite: CMPSC 124 with a grade of "C" or better. This second course in the event-driven programming sequence of Visual Basic will introduce the student to additional real world applications for the world's most widely used operating system, Microsoft Windows. The student will build and hone first semester skills, along with becoming familiar with object linking and embedding (OLE), ActiveX controls, collections, fundamental database concepts, database manipulation, Windows API and Registry manipulation, and internet controls. Concentration will be on writing well-planned and user- friendly applications for business.

3 Credit Hours (OC) - Lecture Hours: 2 Laboratory Hours: 2

CMPSC 225 - CS II: PROGRAMMING IN JAVA

Prerequisite: CMPSC 115 with a "C" or better. This intermediate course is the second in a sequence of Java object-oriented programming courses. The student is introduced to a disciplined approach to problem-solving with emphasis on algorithm development, in addition to an introduction to procedural and data abstraction. This course will cover control structures; program design, testing, and documentation using software assurance and ethical conduct. (Formerly CMPSC 135)

3 Credit Hours (TC) - Lecture Hours: 2 Laboratory Hours: 2

CMPSC 235 - CS III: ADVANCED PROGRAMMING IN JAVA

Prerequisite: CMPSC 135 with a grade of grade of "C" or better or department approval. This is the third in the sequence of courses in secure Java object- oriented programming. This course covers: design and implementation of large-scale problems; abstract data types; data structures (files, sets, pointers, lists, stacks, queues, trees, graphs); algorithmic analysis; software engineering principles; software and information assurance; and an introduction to searching and sorting algorithms.

3 Credit Hours (TC) - Lecture Hours: 2 Laboratory Hours: 2

CMPSC 237 - MOBILE APPLICATION PROGRAMMING

Prerequisite: CMPSC 124, CMPSC 125, CMPSC 135, CMPSC 145 or CMPSC

200, with a grade of "C" or better, or department approval. This course will cover the fundamental programming principles for mobile devices (excluding iOS). The software architecture and user experience considerations underlying handheld software applications and their development environments will be investigated. Concepts will be reinforced by students programming hands-on assignments, which will be run on a current mobile platform. Students will apply these lessons and plan and develop their own viable applications.

3 Credit Hours (OC) - Lecture Hours: 2 Laboratory Hours: 2

CMPSC 245 - STRUCTURED QUERY LANGUAGE

Prerequisite: CMPSC 140 with a grade of "C" or better or department approval. This course covers programming in the Structured Query Language. Students are taught to create and maintain database objects and to store, retrieve, and manipulate data. In addition, students learn to create blocks of application code that can be shared by multiple forms, reports, and data management applications. The student will learn how to write and apply triggers, procedures, and packages. Demonstrations and hands-on practice reinforce the fundamental concepts.

3 Credit Hours (OC) - Lecture Hours: 2 Laboratory Hours: 2

CMPSC 249 - UNIX

This course is an introduction to UNIX. In this course, file handling, text editors and shell programming are discussed.

3 Credit Hours (OC) - Lecture Hours: 2 Laboratory Hours: 2

CMPSC 262 - INTRODUCTION TO ASSURED SOFTWARE ENGINEERING

Prerequisite: CMPSC 235 or concurrent enrollment. This course covers the basic principles and concepts of assured software engineering; system requirements; secure programming in the large; modeling and testing; object- oriented analysis and design using the UML; design patterns; frameworks and API's; client-server architecture; user interface technology; and the analysis, design and programming of extensible software systems.

3 Credit Hours (OC) - Lecture Hours: 2 Laboratory Hours: 2

CMPSC 265 - DATABASE ADMINISTRATION

Prerequisite: CMPSC 245 with a grade of "C" or better or CMNET 210 with a grade of "C" or better or department approval. This course is designed to give the database administrator (DBA) a firm foundation in basic administrative tasks and provide the necessary knowledge and skills to set up, maintain, and troubleshoot a relational database. The student learns to use an administration tool to startup and shutdown a database, create a database, manage file and database storage, and manage users and their privileges. In addition, the student learns to organize the database and to move data into and between databases under different environments. Hands-on practices help to reinforce key concepts.

3 Credit Hours (OC) - Lecture Hours: 2 Laboratory Hours: 2

CMPSC 270 - STRUCTURED SYSTEM ANALYSIS

Prerequisite: CMPSC 215 or CMPSC 212 or CMPSC 235, any with a grade of "C" or better or department approval. This course presents to the student the SDLC, System Development Life Cycle, as the basis for the development of computer systems. Various analysis tools will be taught to aid students in the preparation of all aspects of system development.

3 Credit Hours (OC) - Lecture Hours: 2 Laboratory Hours: 2