COMPUTER SCI & INFO TECHNOLOGY (CST)

CST 100 - ESSENTIAL COMPUTER SKILLS

Basic hardware and software components of a PC; several of the most popular PC software applications including word processing, electronic spreadsheets, databases, Power Point, Internet Browsers, and Windows. A computer use course.

Credits: 3

CST 101 - BEYOND PC ESSENTIALS

This course covers several interesting topics for students: Essential Computer Concepts; Internet/Browsers; Windows; MS-Office; Web design; EBay; Windows Movie Maker; Photo Gallery; Simple Programming; and Publisher. In addition there is a field trip and discussion of Emerging Technologies.

Credits: 3

CST 115 - DIGITAL MEDIACRAFT, A&S

Using digital multimedia tools. Topics include blogs, social networking, image design, video and audio capture, editing and web distribution. Both basic foundations of the web and multimedia, as well as hands-on use of tools in the lab are emphasized in the course. Computer use course.

Credits: 3

CST 130 - PROGRAMMING FOR NON-COMPUTER SCIENCE MAJORS

Computer programs for non-specialists in an easy programming language. Emphasis on style, structure, and logic. Hands-on work in a computer lab.

Credits: 3

CST 150 - COMPUTER SCIENCE I

General problem solving and the algorithm development process. Simple data types, sequence, selection, repetition, functions, records, files, and one-dimensional arrays. Concepts of top-down program design, testing, functional decomposition, and documentation using good programming style. A computer use course; higher level language such as C++ or Java.

Credits: 4

Prerequisites: MATH 116 or MATH 121

CST 209 - SPECIAL TOPICS IN COMPUTER SCIENCE AND INFORMATION TECHNOLOGY

Special Topics in Computer Science and Information Technology. Topics may vary. See red CRN on course schedule for term specific information.

Credits: 1-3

Prerequisites: CST 100 or CST 101 or CST 115

Course Notes: or higher.

CST 246 - DATA COMMUNICATIONS

Foundations of a data communication network architecture and the concepts of data representation in the data transmission process. Data communication methods and data services offered by common carriers. Data communication network management and design issues.

Credits: 3

Prerequisites: MATH 116 or MATH 121

Course Notes: or instructor consent

CST 250 - COMPUTER SCIENCE II

Continuation of Cst l50; development of problem solving using a high level language including abstract data types, multidimensioned arrays; strings; records and structures; function design, construction, and parameter passing methods; recursion; introduction to objects and classes; pointers: lists, stacks, queues, and trees; and file I/O. Multiple sorting and searching algorithms including concepts of program complexity. Extensive programming required. A computer use course.

Credits: 4

Prerequisites: CST 150

Course Notes: MATH 245 recommended. A computer use course.

CST 255 - OPEN SOURCE COMMUNITIES

Exploration of the Open Source world, its history, and its contribution to current topics such as social justice, information freedom, equality and the nature of democracy. Discussion of the role it has played in recent events. Investigation of the politics of the open source world and their relationship to traditional geopolitics. In addition, this course will also seriously examine the practical side of open source and its economic impact on both businesses and households in the developed and developing worlds.

Credits: 3

Attributes: Grounds for Change

Prerequisites: ENG 102

CST 261 - COMPUTER ORG & ASSEMBLER

Introduction to computer hardware structure using assembler language. Internal hardware and software structure of a CPU that is normally hidden from programmers using a high level language. Extensive programming in the assembler language of the CPU. A computer use course.

Credits: 3

Prerequisites: CST 150

Course Notes: or consent

CST 263 - VISUAL BASIC

A programming language/tool that allows quick, relatively easy development of Windows programs. The logical constructs of sequence, selection, and repetition; construction of readable, maintainable source code. Records, files, and two-dimensional array processing. A computer use course.

Credits: 3

Prerequisites: CST 150

CST 270 - SYSTEMS ANALYSIS AND DESIGN

Methodologies, tools, and techniques used in the computer systems development life cycle. Planning, analysis, and design phases of a project, including Software Engineering methodologies. The larger context of business processes, competitive advantage, documentation requirements, and data modeling, including the use of UML.

Credits: 3

Prerequisites: CST 150 and ENG 102

CST 280 - INTRODUCTION TO ALGORITHMS

The course focuses on basic techniques used to design and analyze efficient algorithms. The major topics include: the divide-and-conquer approach, sorting algorithms, graph algorithms, the greedy approach, dynamic programming, computational complexity.

Credits: 3

Prerequisites: MATH 245 and CST 150

CST 309 - DATA MINING

Methods of knowledge discovery in massive data, i.e. the study of computer-assisted process of digging through and analyzing enormous data sets and then extracting the ‘meaning’ of the data by applying mathematical methods. The methods that we study in this course are designed to predict behaviors and future trends based on existing data. Topics include classifications techniques, clusterization techniques, association rule discovery techniques, techniques for improving data quality.

Credits: 3

Prerequisites: MATH 246 and (MATH 217 or MATH 347 or ACSC 300 or ACSC 347 or ECON 234)

CST 310 - COOPERATION AND COMPETITION -- GAME THEORY AND APPLICATIONS

Study of the ways in which strategic interactions among autonomous agents produce outcomes with respect to the preferences (or utilities) of those agents. This course covers game-theoretic foundations of cooperative and non-cooperative behavior of independent agents. The course emphasizes applications drawn from artificial intelligence, decision theory, economics, psychology, business management and finance.

Credits: 3

Prerequisites: ACSC 300 or MATH 300 or ACSC 246 or MATH 246 and (MATH 245 or MATH 290 or MATH 217 or MATH 238 or MATH 347)

CST 311 - ANALYSIS OF REAL WORLD NETWORKS

Structure and dynamics of highly connected networks such as social networks, marketing networks, information networks. Behavior, interaction, search, diffusion in such networks. Analysis uses methods and techniques from different disciplines: mathematics, computer science, economics, and sociology.

Credits: 3

Prerequisites: MATH 245

CST 312 - BIG DATA

Coverage of approaches and methods for very large-scale data collections (Big Data). Also covers the place of Big Data in society and in business including economic, social, ethical and cultural implications. Students will learn to use map-reduce workflows and Big Data tools such as the Hadoop ecosphere.

Credits: 3

Prerequisites: CST 250 or CST 365 or MATH 231 or MATH 245 or (MATH 121 and ECON 234)

Course Notes: A computer use course. Broadband Internet required.

CST 317 - OPERATING SYSTEMS

An in-depth study of the components and functions of computer operating systems. Topics include system services, file system management, memory management, resource allocation, scheduling, processing levels, multitasking, deadlocks, and interprocess protection mechanisms. Programming projects involve use of system calls in UNIX and Windows. A computer use course.

Credits: 3

Prerequisites: CST 250 or CST 365

CST 318 - INTRODUCTION TO UNIX

Programming on a UNIX-based computer system. How to use standard UNIX utilities such as ssh, scp, vi, awk, grep, sed, emacs, as well as script writing in Perl. How to use X Windows and UNIX GUI tools. UNIX programming environment with an overview of the UNIX process model. Basic UNIX administration including system tool and configuration files.

Credits: 3

Prerequisites: CST 150

CST 327 - SOFTWARE PROJECT MANAGEMENT

Types of problems, decisions, and critical success factors that typically confront software project managers and software engineers. The various management skills and methodologies used for planning, organizing, staffing, influencing, and controlling such projects.

Credits: 3

Prerequisites: CST 150

CST 328 - LINEAR PROGRAM & OPTIMIZATION

Models of optimization with linear constraints and objectives; simplex method and related algorithms; duality and sensitivity; transportation and assignment problems; games and network flow applications. See Math 328.

Credits: 3

Prerequisites: MATH 246 or ACSC 246 or MATH 300

CST 333 - DATABASE SYSTEMS

Theory and practice of databases with emphasis on how to create, maintain, and query a database with SQL. Relational databases and relational algebra; queries and data manipulation in SQL, constraints, triggers, views, controlling security, data modeling, and normalization, recursive queries, indexing, XML, and other topics.

Credits: 3

Course Notes: MATH 245 Recommended

CST 337 - THEORY OF COMPUTATION

An introduction to foundations of computing with emphasis on questions of what can and cannot be computed in principle, what can and cannot be computed efficiently. Models of computation, decidable and undecidable problems, computational complexity.

Credits: 3

Prerequisites: MATH 245 or MATH 290 or (MATH 300 or ACSC 300)

CST 338 - EFFICIENT COMPUTING

This course is about algorithmic techniques for solving computational problems efficiently and about obstacles to efficient computing. The major topics include approximation algorithms and randomized computation.

Credits: 3

Prerequisites: CST 280

CST 340 - COMPUTER ARCHITECTURE

Internal organization of the components of computer systems with special focus on the design of the central processing unit and the internal hardware and software structure of a CPU that is normally hidden from programmers using a high level language. The construction of a rudimentary computer using logic gates, light emitting diodes(LEDs), resistors, capacitors, and push-button switches on a prototyping circuit board and the programming of that computer in the assembler language of the CPU constructed is required.

Credits: 3

Prerequisites: CST 150

CST 342 - SATELLITE COMMUNICATION

The student will become aware of the history and evolution of radio communications and the technological and economic advantages and problems with satellite communications. This will be demonstrated by the students through examinations, reports and class discussion and lab projects.

Credits: 3

Prerequisites: CST 246 or CST 250

CST 343 - O.O.P AND WEB SERVICES

An extensive course in programming emphasizing the development of reusable software components via the object oriented programming (OOP) capabilities of C# and the Microsoft .NET framework. Topics include user interface controls, exception handling classes, function overloading and default arguments, operator overloading; event driven programming, polymorphism; and UML. Extensive programming required.

Credits: 3

Prerequisites: CST 250 or CST 365

CST 345 - COMBINATORICS

Permutations and combinations; identities involving binomial coefficients; inclusion-exclusion principle; recurrence relations; generating functions; introduction to the theory of graphs. See Math 345.

Credits: 3

Prerequisites: MATH 232 and (MATH 245 or MATH 290)

CST 346 - ADVANCED DATA COMMUNICATIONS

Foundations of communications theory including signaling TDM, STSM, Frame-Relay, ATM, various modulation methods, methods of sizing and optimizing of data circuits, error detection and correction methods, data compression methods.

Credits: 3

Prerequisites: CST 246

CST 350 - BOOLEAN ALGEBRA/SWITCHING THEORY

Logic gates and Boolean algebras. Fundamental building blocks of :flip-flops, counters and registers. Logic expressions, minimization. Digital arithmetic. See Math 350.

Credits: 3

Prerequisites: MATH 245 or MATH 290

CST 351 - BIOINFORMATICS

Methods for finding biological and biotechnological information. Online and hard copy methods with an emphasis on the use of various computer databases and the Internet. See also BIOL 361.

Credits: 3

Prerequisites: BIOL 301 and CHEM 212

Course Notes: or instructor consent.

CST 352 - NETWORK DESIGN

Communication system organization, and structure. Detailed examination of various communication protocols, routing mechanisms, and interfaces used in digital networks.

Credits: 3

Prerequisites: CST 246

CST 354 - NETWORK SYSTEMS

A practical examination of network topologies, protocols, and operating systems such as Windows and UNIX. LAN servers, services, management and clients. Hands-on network lab experience.

Credits: 3

Prerequisites: CST 246

CST 356 - WIRELESS SYSTEMS

Foundations of radio-cellular communications including a variety of wireless systems and techniques for the analysis of their operational performance. Concepts of wireless system architectures, spectrum management, channel capacity, and systems interoperability.

Credits: 3

Prerequisites: CST 246

CST 357 - SYSTEMS PROGRAMMING

Introduction to programming at the system level. Programming methods and issues that are specific to working with the operating system. Topics include process, thread model, synchronous and asynchronous event handling, IPC, RPCs and sockets, and distributed applications. Course includes learning to program with JAVA in UNIX and Windows environments. A computer use course.

Credits: 3

Prerequisites: CST 250 or CST 365

CST 365 - NETWORK APPLICATIONS PROGRAM

Design and programming applications for networks and the Internet; client side and server side processing; the use of a browser as a client and user interface. Internet protocols and issues such as security, reliability, and management. Course includes learning to program with JAVA in UNIX and Windows environments. A computer use course.

Credits: 3

Prerequisites: CST 150

CST 367 - WEB-BASE DATABASE APPLICATIONS

Interactive web-based applications that use one or several databases with a focus on reliability, fault tolerance, and security. Theoretical and project oriented.

Credits: 3

Prerequisites: CST 333 and CST 365 or CST 250

Course Notes: Any 200 level programming course.

Prereq: Cst 333 or working knowledge of database design and SQL.

CST 368 - INTERNET SECURITY

Security issues pertaining to Internet, intranet, and the Web. Web security from the point of view of the user, programmer, and system administrator. HTTP authentication, proxy servers and firewalls; Internet security protocols and Secure Socket Layer; electronic payment systems; certificate management and network access layer security; executable content and scripting languages; mobile code and copyrights. Privacy protection; legal and ethical issues; anonymous browsing and censorship; available security tools.

Credits: 3

Prerequisites: CST 246

CST 370 - SOFTWARE ENGINEERING I

In depth examination of criteria for software quality and the types of development processes that support its creation. Best practices in software development are examined as well as case studies in software design and maintenance. Individual assignments and some group work as well.

Credits: 3

Prerequisites: CST 250 or CST 365

Course Notes: Req'd prereq or consent of instructor.

CST 371 - DISTRIBUTED DATABASES

Use of multiple, physically and logically separate databases. Data modeling, horizontal and vertical fragmentation, distributed query processing, concurrency, deadlocks, and recovery techniques. Heterogeneous and object-oriented databases.

Credits: 3

Prerequisites: 9 Credit Hours of Computer Sci

Course Notes: 9 SH of computer science coursework required with a min, grade of C-.

CST 372 - PROGRAMMING LANGUAGES

Global properties of algorithmic languages including scope of declarations, storage allocation, binding time of constituents, subroutines, and tasks. List processing, string manipulation, data description, and simulation languages.

Credits: 3

Prerequisites: CST 250

CST 375 - COMPUTER FORENSICS

An introduction to the procedures and techniques used to identify, extract, validate, document and preserve electronic evidence. General legal issues such as the proper handling of evidence, chain of custody, and admissibility in court also covered.

Credits: 3

Prerequisites: CST 100

Course Notes: or higher or equivalent computer software proficiency.

CST 376 - DISTRIBUTED APPLICATIONS

Advanced topic in network applications. Use of existing protocols as well as technologies for designing custom protocols; chat, instant messaging, file sharing, and other technologies. Course includes learning to program with JAVA in UNIX and Windows environments. A computer use course.

Credits: 3

Prerequisites: CST 250 or CST 365

CST 380 - PATTERN RECOGNITION

Statistical and semantical methods of pattern recognition and analysis. Image processing, control, decision making, and problem solving by computer.

Credits: 3

Prerequisites: CST 280 and MATH 217

CST 381 - INTELLIGENT SYSTEMS

Advanced problems of programming computers to perform tasks commonly regarded as requiring human intelligence. The cognitive aspects of human intelligence will be covered. Introduction to a functional decision language such as LISP or Prolog.

Credits: 3

Prerequisites: CST 280

CST 382 - COMPUTER GRAPHICS

Representation, manipulation, and display of two- and three- dimensional objects. Applications to specific problems, including computer games.

Credits: 3

Prerequisites: CST 250

Course Notes: or instructor consent.

CST 385 - ROBOTICS I

Autonomous robot design, construction, and programming. Programming of an embedded processor to read, interpret, and respond to sensor reading describing the real world. Introduction to robotic sensors and the logic required to enable them to construct a view of the external world. An autonomous mobile robot will be constructed and programmed for the course project. Extensive programming, electronic circuit construction, and mechanical assembly required.

Credits: 3

Prerequisites: CST 250 or CST 365

CST 386 - INFORMATION RETRIEVAL

Theory and practice of information retrieval with emphasis on applications to web search. The course covers traditional information retrieval topics (retrieval models, indexing, classification, clustering, etc) and more recent techniques (ranking of web pages, recommender systems, etc).

Credits: 3

Prerequisites: CST 280 or (CST 250 and CST 333)

CST 387 - ALGORITHM DESIGN

Design and analysis of polynomial-time algorithms and supporting data structures. Applications are in networking, systems programming, database design, and other applications. Topics include minimum spanning tree algorithms and their fast implementation with Fibonacci heaps and Disjoint Sets data structures, shortest path algorithms, flow networks, linear programming. Proving correctness and worst case runtime analysis of algorithms. A computer use course.

Credits: 3

Prerequisites: CST 280

CST 389 - SPECIAL TECHNICAL TOPICS

Credits: 3

CST 390 - SPECIAL TOPICS

Special Topics in Computer Science. Topics may vary.

Credits: 3

Prerequisites: CST 250 or CST 365 or MATH 245

CST 391 - SPECIAL TOPICS IN NETWORK COMPUTING

Course content varies. May be repeated if different special topics are offered. On the “course finder” schedule if you click on the red highlighted CRN you will get the term specific description.

Credits: 3-4

CST 394 - COMPUTER SCIENCE INTERNSHIP

In-service learning under faculty supervision.

Credits: 3

Prerequisites: CST 354

Course Notes: Consent of Faculty Supervisor required

CST 395 - INDEPENDENT STUDY

Students must obtain a faculty sponsor; prepare a written proposal that includes course objectives, time tables, and measurable evaluation criteria; and receive approval from both the faculty sponsor and chair of the dept.

Credits: 1-3

Course Notes: Approval of faculty sponsor and Department Chair.

CST 399 - SENIOR PROJECT

Project to be undertaken at the end of the program of study. Students must obtain a faculty sponsor; prepare a written proposal that includes course objectives, time tables, and measurable evaluation criteria; and receive approval from both the faculty sponsor and director of the department.

Credits: 3

Course Notes: Approval of faculty sponsor and Department Chair.