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 110 - QUANT PROB SOLV

Students will use Excel as a tool to solve problems which include critical thinking and problem-solving skills that are necessary for decision-making in everyday life. The emphasis is on applying quantitative reasoning skills to realistic personal and business scenarios. Student will become effective users of information technology through the use of spreadsheet and graphical representation of data and will apply this technology to personal, academic, and professional settings.

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. Primitive & reference data types, control structures (sequence, selection, & iteration), OOP fundamentals, methods, functions, file processing, GUI apps, and multidimensional arrays. Concepts of top-down program design, testing, functional decomposition, and documentation using good programming style. Extensive programming required utilizing a higher level language such as C++ or Java. A computer use course.

Credits: 4

Prerequisites: MATH 116 or MATH 121

CST 208 - DATABASE PROGRAMMING

This is an in-depth course of the principles of database systems and management. This course will focus on the development of hands-on skills using SQL. Students will modify file structures, sort and query data, and generate forms, screens and reports. Data structures and programming techniques will be incorporated throughout the course.

Credits: 3

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 220 - SYSTEMS ENGINEERING II

This course surveys personal computer operating systems (Windows 7,8) and provides an introduction to networking technology. Topics include file system design and management installation and upgrade of operating systems, input/output devices, and networking devices and topologies. The course employs a computer troubleshooting approach in the instructional methodology.

Credits: 3

Prerequisites: CST 240

CST 232 - LAN

This course will provide a theoretical and practical guidance to Local Area Networking using Windows 2016 Server software. The student will focus on installing, configuring, managing and troubleshooting the Windows the 2016 environment. Network hardware requirements will be discussed. Included are client server software installation, active directory set-up, network security, client account creation, and installation of print services. The student will learn to monitor and optimize the system for best performance. All concepts are introduced in both lecture and hands-on laboratory exercises.

Credits: 3

CST 236 - PYTHON SCRIPT PROGRAMMING

Using the Python programming language to learn the best-practices of programming and script-writing in a security and utility conscious environment.

Credits: 3

Prerequisites: CST 150 or CSIA 150

CST 237 - INTERNETWORKING

This course is the second course in Local Area Networks. It will provide theoretical and practical guidance to Local Area Networking using Windows Server 2016 software. The student will focus on the skills that are required to configure and manage identity with Windows Server 2016. Students will gain in-depth knowledge of Windows Server 2016 identity-related services, including Active Directory, user and group accounts, Group Policy, Active Directory Certificate Services, and advanced identity solutions such as Active Directory Federation services and Active Directory Rights Management Services.

Credits: 3

Prerequisites: CIS 232

CST 240 - SYSTEMS ENGINEERING I

This course is a study of microcomputers and their various architectures. It encompasses many of the basic principles necessary to begin preparing for Comp TIA’s A+ certification examination. Hardware design fundamentals and hardware/software interrelationships are combined with practical hands-on experience to give the student a thorough understanding of the basic platforms pertaining to the IBM compatible/clone computer.

Credits: 3

CST 244 - SECURITY FUNDAMENTALS

This course provides a comprehensive introduction to computer and network security. The course covers basic security principles including a detailed discussion of security attack techniques and security defense technologies. Hands-on exercises are designed to apply defensive tactics to harden a company’s servers and workstations (Windows 2016 Server and Windows 7, 8). Students learn cryptography and employ PKI (public key cryptography) to thwart attacks. The course topics are mapped to the Security+ certification.

Credits: 3

CST 250 - COMPUTER SCIENCE II

Continuation of CST l50; development of problem solving using a high level language including abstract data types, inheritance, recursion, generics, lists, sets, maps, stacks, queues, trees and file I/O. Multiple sorting and searching algorithms including an introduction to concepts of program complexity. Extensive programming required. A computer use course.

Credits: 4

Prerequisites: CST 150 or CSIA 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

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 or CSIA 150

CST 262 - LINUX SECURITY

This is a second course in the Linux operating system. The focus is on the administration tasks associated with adding security to Linux servers. Lab exercises include creating user accounts, setting file permissions, configuring the Apache web server for security, and configuring Samba file sharing for security. Security fundamentals are covered, including encryption and authentication. (Prerequisite: CIS 261)

Credits: 3

Prerequisites: CIS 261 or CST 318

CST 264 - NET ESSENTIAL

This course introduces the architecture, structure, functions, components, and models of the internet and other computer networks. The principles and structure of IP addressing and the fundamentals of Ethernet concepts, media, and operations are introduced to provide a foundation for the curriculum. By the end of the course, students will be able to build simple LANs, perform basic configurations for routers and switches, and implement IP addressing schemes.

Credits: 3

Prerequisites: CST 150

CST 265 - ROUTING AND SWITCHING

This course focuses on initial programming of routers and switches. The course begins with IP sub-netting calculations using binary math. Basic switching concepts are then described in detail. Switch VLANs are created and programmed, and inter-VLAN routing is configured. Static routing is configured on routers using both IP versions 4 and 6. (Prerequisite: CIS 264)

Credits: 3

Prerequisites: CIS 264 or CST 301

CST 266 - ROUTER CONFIG

This course focuses on dynamic routing protocol categorization – Interior/Exterior, Classful/Classless, Distance Vector/Link State, and Open Standard/Cisco Proprietary. Router configuration lab exercises are conducted using the RIP and OSPF routing protocols. Router Access Control Lists (ACLs) for security policy implementation are applied. IP address management with DHCP and NAT are employed. (Prerequisite: CIS 265)

Credits: 3

Prerequisites: CIS 265

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 or CSIA 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: CST 250 or (CST 150 and MATH 245)

CST 301 - COMPUTER NETWORKING

This is an introductory course on the design and analysis of computer networks. It covers Internet protocols, application layer protocols, routing, wireless communication, and basic network security problems.

Credits: 3

Prerequisites: (CST 150 or CST 236) and CST 318

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 217 or MATH 347) and MATH 246 and CST 150

CST 310 - GAME THEORY AND APPLICATIONS

Study of the ways in which strategic interactions among players produce outcomes with respect to their preferences (or utilities). This course covers game-theoretic foundations of cooperative and non-cooperative behavior. The course emphasizes applications drawn from artificial intelligence, decision theory, economics, psychology, 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 -

The study of real-world networks such as social networks, technological networks, networks of information, biological networks. This study combines methods and techniques from mathematics, computer science, social sciences, and many other areas. Course topics include the measurement of networks, methods for analyzing network data, models of networks, models of processes taking place on networks, etc.

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 280

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

CST 313 - IT MANAGEMENT

The purpose of this class is to introduce the student to various topics concerning the job of the IT manager. The goal of this course is to make you a more knowledgeable IT person who can better understand the roles and functions of the IT Manager in both small and large-scale companies. For those of you who might wish to someday fill this role, it is a way to learn the concepts before you find yourself in this position. In addition, for those of you who do not seek this position, it will give you a better idea on how to relate to and understand the important role of the corporate IT Manager.

Credits: 3

Prerequisites: CST 150

CST 315 - DATABASE MANAGEMENT

This course will focus on all aspects of managing a database, including database installation,configuration and administration, data warehousing, performance issues, database security, database architecture and disaster recovery operations. Students will install Microsoft SQL Server client-server software on Windows Server.

Credits: 3

Prerequisites: CST 208 or CST 333

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 150 and CST 261

CST 317R - CREATING IPHONE APPS

This course introduces mobile application programming environment using Apple’s iOS SDK for building iPhone applications. Students will learn the Swift programming language along with necessary libraries of reusable software components to develop and deploy iPhone applications. Upon course completion, students will be able to write simple iPhone applications. (Prerequisite: CIS 318 recommended)

Credits: 3

CST 318 - INTRODUCTION TO UNIX

A hands-on introduction to the UNIX operating system family focused on learning important UNIX concepts, such as the shell, command line utilities, file system, access control/permissions, process management, and networking, as well as learning to automate system administration tasks through programming with the shell and in Perl.

Credits: 3

Prerequisites: CST 150 or CSIA 150 or CIS 318

CST 318R - IPHONE APP DEV

Students are introduced to iPhone SDK’s Xcode, Interface Builder, and UIKit framework to build iPhone applications. Students will learn to use powerful features of the Swift, Cocoa Touch, and the various iOS SDK libraries and frameworks for developing and deploying applications on iPhone. Upon course completion, students are expected to produce a mobile solution for a real-life solution. (Prerequisite: CIS 417)

Credits: 3

Prerequisites: CST 317R

CST 318RM - JAVA PROGRAMNG

This course introduces fundamentals of Java programming language to create Android applications. Students will learn key programming concepts including variables, decision structures, lists, arrays, user interface components, error handling, testing and debugging. The course provides students hands-on experience in using Android development environment and techniques for writing Android applications. Upon course completion, students will be able to write simple android applications.

Credits: 3

CST 320 - INDEPENDENT STUDY

Independent studies allow a student to explore a topic or area of interest. Students will propose a topic for tutorial study under the guidance of a supervising faculty member. Course can be repeated up to 12 hours.

Credits: 3

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 or CSIA 150

CST 333 - DATABASE SYSTEMS

Theory and practice of databases with emphasis on how to create, maintain, and query a database with SQL. Course topics include the relational model, queries and data manipulation in SQL, integrity constraints, triggers, recursive queries, functional dependencies and normalization, indexing, etc.

Credits: 3

Prerequisites: MATH 121 or MATH 122 or MATH 231

Course Notes: MATH 245 Recommended

CST 335 - ETHICAL HACKING & COUNTERMEASURES

This is a hands-on Cyber Security course that will prepare students for the Certified Ethical Hacker certification. The course is an introduction to ethical hacking tools and incident handling. Areas of instruction include various security tools and vulnerabilities of operating systems, software and networks used by different type of hackers to access unauthorized information. This course also addresses incident handling techniques used when information security is compromised.

Credits: 3

Prerequisites: CST 150 and (MATH 121 or MATH 116)

CST 336 - PRACTICAL COMPUTING WITH DATA IN PYTHON

Focuses on using a simple programming language python to work with data when Excel, SPSS and similar tools are not adequate. When tables are too big or the desired result is difficult or impossible to express in terms of formulas, using python can be the quickest, easiest and most productive way to derive value from data in a scientific or enterprise setting. This course provides the skills and understanding required to succeed in these situations.

Credits: 3

Prerequisites: CST 250 or CSIA 250 or CST 236 or CSIA 236

Course Notes: Computer programming experience not required.

CST 337 - THEORY OF COMPUTATION

Fundamentals of computing with emphasis on questions of what can and cannot be computed in principle, what can and cannot be computed efficiently. Course topics include models of computation, decidable and undecidable problems, computational complexity, probabilistic computation, interactive protocols, quantum computation, etc.

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 or CSIA 150

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 CSIA 250 or CST 365

CST 343R - WIRELESS TECHNOLOGIES

This course explores the latest wireless technologies in the networking industry. Currently, this includes, Wireless LAN 802.11a/b/g/n, Bluetooth, Cellular, IR, microwave, satellite, and WiMax. An important aspect of this study is wireless security implemented through the standards of 802.1 1i (advanced cryptography) and 802.1x (RADIUS). Students receive both historical coverage and future expectations through personal research and practical laboratory experiments. A business perspective illustrates how these concepts relate to real-world personal and corporate networks.

Credits: 3

CST 344 - NETWK SECURITY

This course aims to provide a practical, up-to-date and comprehensive survey of network-based and Internet-based security applications and standards. Topics include authentication, cryptography, encryption, digital signatures, and key exchange. Current applications explored in this course include: Kerberos, PGP, S/MIME, PKI, firewalls, and anti-virus software.

Credits: 3

CST 345R - ADV NET SERV

In this course, students will study a set of advanced network services that are used to support core business functions. Examples of such services include email, firewalls, and voice over IP. These services go beyond the range of essential network services covered in previous networking courses. (Prerequisite: CIS 232)

Credits: 3

Prerequisites: CIS 232

CST 346R - 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: (CIS 240 and CIS 261) or CST 318

CST 347 - NETWORK MANAGEMENT

This course focuses on network management, server virtualization, and specialized server hardware. The servers will employ the Windows Server 2008 and Linux operating systems. Clients will employ the Vista and Linux operating systems. Virtualization software will include VMWARE and Windows Server 2008 Hyper-V Virtual machine manager. Lab setup will include Blade server hardware, wireless routers and access points, switches and printers with network monitoring agents, and specialized network management software. Green technologies for IT are addressed.

Credits: 3

Prerequisites: (CIS 232 and CIS 261 and CIS 264) or (CST 232 and CST 301 and CST 318)

CST 348 - SOFTWARE ENGINEERING I

Provides an overview of the software engineering process and software life-cycle models. Gives a detailed study of the analysis, specification and design phases. Students will work in teams to gain experience in software development methodology, software analysis and design, and developing a prototype.

Credits: 3

Prerequisites: CST 250 or CSIA 250

CST 354 - INTRODUCTION TO PROGRAMMING

An introduction to the methods and procedures for the development of logical, well-structured computer programs using the Java programming language. The three logical constructs of sequence, selection, and iteration are emphasized. In addition, we’ll focus on Object-oriented programming including abstract data types, inheritance, and polymorphism, fundamental data structures used throughout Computer Science, and algorithm analysis. Extensive programming required. A computer use course.

Credits: 3

CST 355 - CRYPTOGRAPHY

Cryptography provides algorithms and protocols for secure communication over an insecure channel. These tools are also used in many other aspects of information security such as access control or digital signature. Cryptography plays a crucial role in a wide scope of real-world applications, from the classical military and national security applications to email and online banking. The course focuses on concepts and techniques underlying public-key cryptography. Course topics include symmetric cryptosystems, RSA and other public-key cryptosystems, digital signatures, key exchange protocols, secret sharing, identification schemes, etc.

Credits: 3

Prerequisites: (CST 150 or CSIA 150) and MATH 245

CST 356R - ADV INTERNSHIP

Students serve as interns and apply their skills in real-world employment situations. All internships are project-oriented and directly related to their focus in Computer Studies. Internships are served under the sponsorship of a faculty advisor, and the students will be required to document the results of their experience. (Prerequisite: Junior status) Course can be repeated up to 12 hours.

Credits: 3

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 CSIA 250 or CST 365

CST 359 - INTRO TO COMPUTER SECURITY

This course provides an introduction to computer and network security. It covers the basic concepts in computer and network security. The course also provides examples of intrusions and corresponding defense. Some topics in security research will be covered.

Credits: 3

Attributes: Lab Course

Prerequisites: CST 317 or CSIA 317

Course Notes: or instructor consent.

CST 361 - DEEP LEARNING

A course in the theory, algorithms and application of Deep Learning (DL). The course will cover areas such as the foundations and implementation of Neural Networks, and the analysis of algorithms by which computational systems learn to perform tasks. Implementation of several DL techniques with Python, Tensorflow and Keras will enhance the student's understanding of the underlying material.

Credits: 3

Prerequisites: (CST 250 or CST 236) and MATH 245 and MATH 246

CST 364 - ADVANCED ROUTING & SWITCHING

This course covers advanced router and switch configuration. Advanced switching features include link aggregation, redundancy, and wireless LANs. Advanced routing configuration focuses on Cisco's enhanced EIGRP routing protocol. Complex multi-area routing is also explored. At the end of the course, operating system management procedures are employed to troubleshoot or upgrade the routers and switches.

Credits: 3

Prerequisites: CIS 266 or CST 266

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 or CSIA 150

CST 366R - WAN TECHNOLOGIES

This course focuses on the Hierarchical Design of a complex corporate network. Wide Area Networking (WAN) services are configured. The WAN services studies include the Point-to-Point Protocol (PPP). Frame Relay, Broadband, and Virtual Private Networks. This course is the last of five courses preparing students to achieve their Cisco CCNA networking certification.

Credits: 3

Prerequisites: CIS 364 or CST 364

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 250 or CSIA 250 or CST 365

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 301 or CSIA 301

CST 369 - SMARTPHONE APP DEVELOPMENT

An advanced programming course emphasizing the development of real-world, interactive, data-driven mobile applications using open-source frameworks designed for platforms such as iPhones or Android smartphones. The course will be project oriented and topics include building smartphone user interfaces, working with multimedia, accessing databases, using Internet and location based services, and using other features of modern smartphones.

Credits: 3

Prerequisites: CST 250 or CSIA 250

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 or CSIA 250

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 CSIA 250 or CST 365

CST 377 - DB SERVER ADMIN & SECURITY

This class will focus on the administration of database severs and the concerns of the Database Administrator such as configurations, user controls, backup plans, restoration plans, downtime costs, audits, resiliency, stability and reliability, security, joins, load and cascading foreign keys, should I (kNOw)Sql? and other issues that face the database administrator.

Credits: 3

Prerequisites: CST 250 or CST 365 or MATH 245

CST 378 - SOFTWARE ENGINEERING II

Students work in teams to gain experience in software management and develop the components of a larger software product. Topics include risk management, project planning, quality management, configuration management and software testing.

Credits: 3

Prerequisites: CST 348

Course Notes: This course replaces existing CST 370 Software Engineering I, Student who has taken CST 370 cannot receive credit from, this course. Seniors only.

CST 381 - INTELLIGENT SYSTEMS

We study automated search methods in constrained state spaces. We learn methods of blind, heuristic and local search and methods that involve applications of of mathematical logic. We proceed to solving constraint satisfaction problems, planning and scheduling. Applications to multiagent systems and robotics. The course has programming component.

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 or CSIA 250

Course Notes: or instructor consent.

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 or CSIA 250

CST 387 - ALGORITHM DESIGN

The main purpose of the course is to enhance students’ algorithmic skills. Algorithmic problems, arising across the full range of computing applications, include the following two tasks. First, such a problem rarely arrives as a cleanly packaged, mathematically precise question. Therefore, we begin an algorithm design process with getting to a clean formulation of the problem. Then, based on the structure of the problem, we identify an appropriate algorithmic technique and use it to develop an efficient algorithm. Students will enhance their skills for both tasks by learning a wide variety of algorithmic problems in business, engineering, science, etc.

Credits: 3

Prerequisites: CST 280

CST 390 - SPECIAL TOPICS

TECHNOLOGY MKT

Credits: 3

CST 390R - TECHNOLOGY MKT

Credits: 3

CST 394 - COMPUTER SCIENCE INTERNSHIP

In-service learning under faculty supervision.

Credits: 1-4

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.