Computer Science

An introductory course in the academic use of computers. Includes Internet, e-mail, the Information Highway, information resources, components for student computer systems, the campus computing environment, computer operation fundamentals, computer ethics and the law, and selective software applications. Fall, Spring, Summer.

Computer software applications. May be retaken with permission of instructor.

Introduces students to fundamental computer science (CS) principles that help prepare students for successful careers in their chosen disciplines. Topics include: hardware & software fundamentals; algorithm development fundamentals; introduction to Java programming; control structures; construction of classes and methods; array processing; introduction to inheritance; interfaces. Not open to students who have completed CS 140. Fall, Spring, Summer.

Introduces website construction as a pervasive means of problem solving and communication. Through the various methodologies covered, the course helps students prepare for successful careers in their chosen disciplines. Topics include: fundamentals of website design; Hypertext Markup Language (HTML); introduction to Extensible Markup Language (XML); other supporting methodologies. Not open to students who have completed CS 150. Fall, Spring, Summer.

This introductory course in microcomputer systems includes discussion of the underlying physics of the computer system, hardware/software installation, configuration, trouble-shooting problems, networking essentials, and other related topics. The course is designed to prepare students to develop an understanding of the internal workings of a microcomputer system. Not open to students who have completed CS 160. Fall, Spring, Summer.

This course extends the ISCS 140 concepts to include more advanced programming concepts and principles such as: Arrays of Objects; Inheritance, Polymorphism, and Amalgamation; Exception Handling; External File Processing; Basic GUI Programming; Creating User Interfaces; Introduction to Data Structures. Prerequisite: Grade of C or higher in ISCS 140. Fall, Spring.

An introduction to various principles, theories, and approaches to user interface design and implementation. Includes a study of the factors that affect user interface design and mastery of at least one development tool and a visually based programming language. Fall.

Discusses fundamental system administration issues using the Unix operating system and/or any other operating system chosen by the instructor. It covers installation and configuration, file and directory management, message management, management of system security, multimedia management, basic network configuration, and command-language programming. Prerequisite: Grade of C or higher in CS 185. Spring.

This course introduces the student to fundamental programming concepts with the C++ programming language. It includes concepts such as sequence, iteration, conditional branching, functions, recursion, function overloading, object-oriented programming, operator overloading, and file processing. It also includes a cursory treatment of fundamental data structures. Prerequisite: Grade C or higher in CS 185. Spring.

Students learn procedural programming using a language such as COBOL, RPG, or C, thus equipping them to work on legacy or embedded systems. Topics covered include basic input/output processing, control structures, sub-programs, recursion (where applicable), record manipulation, file processing, and other related issues. Prerequisite: Grade of C or higher in CS 185. Fall.

Introduction to the architecture of digital computer systems including logic gates, logic circuit design of critical internal components of computing systems, the structure of memory and central processing unit as well as the topics of microcode and machine instructions. Prerequisites: Grade C or higher in CS 140. Fall, Spring.

This course guides the student through a study of data structures and algorithms. It includes algorithm development and analysis, array-lists, linked lists, stacks, queues, trees, hashing, graphs, and sorting algorithms. Although Java will be the primary programming language, the material is covered in a manner that facilitates implementation in any language. Prerequisite: Grade C or higher in CS 185. Fall, Spring.

CS290 Special Topics

1-4 credits

Elementary topics as determined by changes taking place in the discipline. Repeatable as topics change. Prerequisite: Minimum of 8 credits in CS. Fall, Spring, Summer.

Allows students to participate in field experience, combining theory with practice. Prerequisites: 16 credits in CS and permission of instructor. Graded Pass/Fail. Fall, Spring.

Introductory work-learning experience related to career interests for which compensation may be received. Positions arranged by students with sponsorship, approval, and evaluation by full-time faculty. Prerequisites: 8 credits in CS and permission of instructor. Graded Pass/Fail. Fall, Spring

Introduction to fundamentals of assembly and C language programming concepts and techniques with an in-depth understanding of x86 architecture computers by programming at the machine level. Proper use of assembler, registers, instructions and stack, and developing well-structured programs in assembly and C language are emphasized. Prerequisites: CS 185. Fall.

Discusses the intricacies of operating systems design and implementation. Areas of concentration include OS services, file management, CPU scheduling, memory management, input/output management, resource allocation, security, and process management. Prerequisite: CS 280. Spring.

The art and science of programming internet applications from a client-side perspective. Topics cover designing interactive web applications, PHP, using content managers, reading, writing database files, and usability and design considerations using real world projects. Current web programming languages and content managers will be utilized. Prerequisites: CS 150 or CS 185. Spring.

Introduction to fundamentals of systems analysis and design using project management. Discusses the role of the systems analyst with emphasis on oral and written communication with business users and the project team. Emphasizes structured design techniques. Requires detailed systems development case study using project management techniques. Prerequisites: 24 credits in ISP, including ITW 101 and IQL 101. Spring.

Introduction to fundamental concepts in the design and implementation of computer networks, their protocols and applications, examining the application layer and working down toward the link layer. Emphasis on networking concepts and issues involved in creating network applications and application-level protocols using network programming. Prerequisite: CS 280. Spring.

This course covers the theoretical foundation of modern database systems, concentrating on practical use of relational database management systems to model, design and implement business and commercial systems. It includes Structured Query Language (SQL), normalization, and rational algebra. It does not use any specific language. Prerequisite: Grade C or higher in CS 280. Fall.

Introduces the fundamental concepts and principles of software planning, construction, implementation and management. Students become intimately familiar with the software development life cycle, the various activities that occur, and methodologies for designing, developing, and maintaining effective computer software. Prerequisite: CS 280. Fall.

This course teaches students how to conceive, design, construct, and deploy applications for mobile devices, including Android, iPhones, iPads, and the iPad Touch. It employs Xcode (Apple's native IDE), the Objective-C programming language, and the Cocoa Touch framework. Prerequisite: Grade of C or higher in CS 185. Fall, even years.

The study of advanced programming techniques of timely interest. Topics may include object-oriented techniques, special purpose languages, graphical programming, or advanced design techniques. Emphasizes continued development of problem-solving and programming skills. Prerequisites: Grade of C or higher in CS 185. Fall, odd years.

Covers e-business development, with emphasis on the server side. It includes: server side-web programming using Java Servlets; Java Server Pages; open source Java web server (Apache Tomcat); server customization to support their projects; utilization of Model-View-Controller architecture; security implementation; interface and connectivity with backend database(s). Prerequisites: Grade of C or higher in CS 185. Fall, even years.

This course guides the student through a comparative study of programming languages, guided by a well-defined set of criteria. It involves an introduction to the fundamentals of programming language design. It also involves a review of different types of programming languages. Prerequisite: Grade of C or higher in CS 185. Spring, even years.

Provides the opportunity to apply the principles and skills acquired in earlier courses, and to investigate and design the blueprints for a software engineering project. Software will then be constructed in accordance with its design specifications. Emphasis will be placed on the various activities in the SDLC. Prerequisites: 32 credits in CS preferably including CS 375. Spring.

Introduction to fundamental concepts and techniques underlying the science and art of cryptography and network security including: symmetric encryption, message digests, public key cryptography, authentication, security protocols on both application and network layers of the Internet, and network operational security techniques. Prerequisite: CS 355. Fall.

Introduces the principles, techniques, and approaches to the construction and management of data warehouses and data marts. Includes warehousing topologies and methodologies, as well as advanced SQL features. Prerequisite: CS 360. Spring, odd years.

Advanced topics as determined by changes taking place in the discipline. May be repeated as topics change. Prerequisite: Minimum of 32 credits in CS. Occasionally.

Allows students to participate in field experience, combining theory with practice. Prerequisites: 16 credits in CS and permission of instructor. Graded Pass/Fail. Fall, Spring, Summer.

Sequential work-learning experience for which compensation may be received. Placements are arranged, supervised, and evaluated by full-time faculty. May be repeated for a total of 4 credits. Prerequisites: 16 credits in CS, and permission of instructor. Graded Pass/Fail. Fall, Spring.

Introduces the fundamental issues in artificial intelligence (AI). Includes fundamental concepts, problem-solving techniques (including breath-first search, depth-first search, heuristic search, greedy best-first search, hill-climbing search, A star search), and a project-oriented coverage of robotics that requires each student to design and program a robot. Prerequisite: CS 280. Spring.

Guides students through fundamental topics in the design and construction of computer games. Course includes game architecture, game design issues, requisite data structures and algorithms, and programming issues. Programming will be done in Java and C++/C#. Prior knowledge of C++ and successful completion of MATH 151 are highly recommended. Prerequisites: CS 280. Spring, even years.

Individual research into selected topics in computer studies under the direction of a faculty member. Prerequisites: 16 credits in CS and consent of the instructor who will supervise the independent study. May be repeated to a total of 4 credits. A maximum of 4 credits may be applied to the upper-level (300- and 400-level) CS elective requirement. Occasionally.