CSCI: Computer Science (Undergraduate)

CSCI 1005  Computer Programming I  (4 Credits)  

Computer programming has several components, including learning the syntax of a specific programming language. In addition, many concepts transfer to other programming languages, such as variables and types, control structures, arrays, strings, functions, structures and an introduction to classes. More importantly, is learning to decompose a problem into small pieces that can then be readily solved, and testing the program to be sure that it is correct. Highly Recommended (not required): Either a prior programming course such as Introduction to Programming in Visual Basic or mathematical maturity such as is attained in Discrete Mathematics or Calculus. Note: This study is designed to be a first course in a computer science degree.

Attributes: Liberal

CSCI 1010  Introduction to Computers  (4 Credits)  

This introductory course provides the student with a comprehensive overview of computer systems, introducing computer hardware, system and application software, networks, information systems, and computer security. Students will explore topics in computer hardware, peripheral devices and their functions; computer operating systems and software applications, digital media, data, and file management; fundamentals of networks, Internet and web technologies; basics of computer programming, database, information systems; computer security, privacy, ethics and access to technology. Students will also develop an understanding of computers and related technology and how they are being used in the world today. Notes: Students must have regular access to a personal computer with access to the Internet, a text editor and word-processing application, and a web browser.

CSCI 1015  Introduction to Database Design  (4 Credits)  

This study begins with an introduction to the use of a database. A good database design starts with a list of the data that you want to include in your database. Students will learn the principles of designing the structure of the tables in a database. They will also engage in developing other related tables, creation of questions needed for the database to answer, and normalization of a database. Highly Recommended (not required): Familiarity with computer applications.

CSCI 1020  Introduction to Networks  (4 Credits)  

This introductory course provides the student with a comprehensive overview of computer networks, introducing network protocols and standards, physical media, topologies, network devices and communication infrastructure. Students will explore in-depth the most important concepts in contemporary networking, such as TCP/IP, Ethernet, wireless transmissions, virtual networks, and security. After completing the course students will be able to select an appropriate network design, hardware, and software for a given environment and build a simple network, maintain, troubleshoot, and manage the network. Notes: Students must have regular access to a personal computer with access to the Internet, a text editor and word-processing application, and a web browser. This course was previously SMT-272124 Introduction to Networks.

CSCI 1025  Introduction to Programming: Visual Basic  (4 Credits)  

A person completing any degree area that involves computers and information systems is well served to master a variety of programming skills. In the modern programming environment, one component of that mastery is applications development for the Windows operating system. Visual BASIC (VB) is the intermediate level language for developing the standard Windows graphical user interface. Students will learn some object-oriented, event-driven programming using the intrinsic and ActiveX controls familiar to users of Windows applications. Designing these types of applications is more complex than standard non-graphical languages. As a result, including the design process for both the graphical and logical components of applications developed in VB is essential. Assumptions about surrounding courses: An introductory-level college mathematics study that included algebra and problem solving. Notes: This course alone is not sufficient to address the programming component of the Computer Science guidelines. Some students will find this course helpful before another programming course, but other students will not find it necessary. This course was previously SMT-272964 Visual BASIC: Computer Programming.

CSCI 1998  Individualized Studies in Computer Science (CSCI)  (1-8 Credits)  

Students have the opportunity to develop individualized studies with their mentor in Computer Science (CSCI). Registration for this class must be approved by the student’s mentor.

CSCI 2005  Computer Programming II  (4 Credits)  

This course is designed to expand he student's knowledge from the procedural view of programming generally included in a first programming course to include object oriented methodology. 'Object oriented' means that a data structure is grouped together with the functions that operate on it. Focus is on object oriented programming, including classes, objects, member functions, polymorphism, inheritance and library templates. The more complex ideas of procedural programming, such as file streams, pointers, the string library class, and multidimensional arrays are also be included. Prerequisite (must complete before registering): Computer Programming I (CSCI 1005)

CSCI 2010  Introduction to C++ & OOP  (4 Credits)  

This course deals with object-oriented programming (OOP) using C++. The main topics of discussion include C++ language features and the implementation of the OOP features of encapsulation, classes, inheritance, polymorphism and data hiding. C++ programming examples will be discussed and students will work on hands-on C++ programming assignments. Prerequisite (must complete before registering): College Mathematics or equivalent Highly Recommended (not required): An introductory-level college mathematics study that included algebra and problem solving. Notes: Students must have the ability to install software. This course is sufficient to address the programming component of Computer Science concentration guidelines. This course was previously SMT-272504, Introduction to C++ and OOP.

CSCI 2015  Introduction to Object-Oriented Programming: Java  (4 Credits)  

Explore computer programming and the object-oriented language, Java. This course introduces techniques and processes that are necessary in a professional software development setting. A background in programming is not assumed. Topics include modern software development tools including debuggers; general programming techniques; object-oriented programming; maintainability; algorithm design; and event-driven, graphical interface design. Students will enhance their ability to develop software in industry. Prerequisite (must complete before registering): College Mathematics or equivalent Highly Recommended (not required): An introductory-level college mathematics study that included algebra and problem solving Notes: Students must have the ability to install software. This course is sufficient to address the programming component of Computer Science concentration guidelines. This course was previously SMT-272984, Introduction to Object-Oriented Programming: JAVA.

CSCI 2998  Individualized Studies in Computer Science (CSCI)  (1-8 Credits)  

Students have the opportunity to develop individualized studies with their mentor in Computer Science (CSCI). Registration for this class must be approved by the student’s mentor.

CSCI 3000  Computer Operations & Security  (4 Credits)  

As computers become ever more present and interconnected in modern society, the IT professional needs to be more and more concerned with the issues of levels of service, security and recovery. This course will cover the topics of management and security; quality of service and system performance; viruses, worms, trojan horses and denial-of-service; firewalls; and strategies for ensuring appropriate levels of security. A student project of sufficient rigor will be the core of this course. Prerequisite (must complete before registering): Introduction to Networks Highly Recommended (not required): Familiarity with the core concepts of networking, including awareness of the existence of protocols; an understanding of hardware such as routers, hubs and switches, common operating systems, basic systems and network security. This knowledge can be gained in Introduction to Networks. Specifically, students in this course should have knowledge in the following areas: Basic concepts of networks, basic hardware and software concepts; elementary algebra. This course was previously SMT-273324, Computer Operations and Security.

CSCI 3005  Computer Organization & Architecture  (4 Credits)  

Students will explore the structure and function of computers and develop a deep understanding of the nature and features of contemporary computer systems. The computer system is characterized in terms of structure - the way in which components are interconnected, and function - the operation of the individual components. The course will cover CPU architecture, memory, I/O system, primary and secondary storage, numbering systems, computer arithmetic and digital logic, RISC, CISC, multicore architectures, different levels of parallelism, and performance related issues. Assumptions about surrounding courses: Students should have an understanding of computers, data structures and algorithms, and discrete mathematics. Notes: Students should select either this course, or Computer Organization and Assembly Language as part of their degree program as there is substantial overlap in the course curriculums.

Attributes: Liberal

CSCI 3010  Computer Organization & Assembly Language  (4 Credits)  

This course explores the relationship between hardware and software. Students will learn how the electronics of a computer form the basis of computer programming. Topics include systems of data representation, comparison of machine languages, the structure of memory, the operation of the Arithmetic Logic Unit, real and virtual memory, and race conditions. Assembly language programming projects reinforce the concepts of registers, the binary representation of numbers and the underlying machine language. Assumptions about surrounding courses: Students should be competent computer programmers, and understand data structures and algorithms and discrete mathematics. Notes: Students should select either this course, or Computer Organization and Architecture as part of their degree program as there is substantial overlap in the course curriculums.

CSCI 3015  Data Structures & Algorithms  (4 Credits)  

Data structures and algorithms have been found by programmers to be applicable to many different programming situations. This course focuses on algorithms for searching and sorting, and on stacks, queues and trees, which are specific structures for storing data. Prerequisites: Computer Programming II or Object-Oriented Programming Assumptions about surrounding courses: The Object-Oriented Programming course should be in the same language as this course is using. Student should verify which language is being used. This course was previously SMT-274304 Data Structures and Algorithms.

CSCI 3020  Operating Systems  (4 Credits)  

This course builds on lower level topics in process synchronization, inter-process communication and file system organization. It starts with a brief historical perspective of the evolution of operating systems over the last fifty years and then covers the major components of most operating systems, with particular focus on the advanced topics in concurrency, deadlock protection, multiprocessor scheduling, computer system modeling and virtual memory management etc. Simulated lab experiments will be used to illustrate key concepts. Assumptions about surrounding courses: Experiential knowledge of the functionality of operating systems; familiarity with operating systems; experience in systems programming; or knowledge of network systems. This course was previously SMT-273644 Operating Systems

CSCI 3122  Visual Basic Computer Programming  (4 Credits)  

This course provides the beginning programmer with complete coverage of all major introductory programming topics, with an emphasis on the Visual Basic 2010 programming language. Visual Basic applications are presented in a real-world setting. Students learn how to plan and create their own interactive windows applications. GUI design skills and object-oriented programming concepts are emphasized throughout the course.

CSCI 3900  Advanced Java  (4 Credits)  

This course builds on the previous prerequisite course, Programming in Java or Introduction to Object-Oriented Programming: Java. Topics include multi-threading, JDBC, collections, methods and classes, applets and Java Web Start, multimedia, networking, Java Server Faces, Ajax Enabled JSFs, Web Services and Java 2D. Students will learn advanced syntax, capabilities and APIs of the Java programming language and of the Java Standard Edition (SE) platform. The course exposes students to advanced programming topics and techniques needed to build enterprise software systems. Prerequisite (must complete before registering): Introduction to Object-Oriented Programming: Java; Data Structures and Algorithms Notes: Currently, this course is only offered through the College's International Programs. It is recommended that students complete the Strategies in Learning (SIL) course before taking this course.

CSCI 3905  C#.NET Programming  (4 Credits)  

his course emphasizes writing efficient program code through proven techniques in object-oriented programming (OOP) and event-driven programming. An introduction to the C# language is provided in the context of object-oriented analysis design concepts making use of UML. In addition to basic C# language constructs, the course teaches Lambda expressions, LINQ applications and generic collections. Advanced topics in building the GUI and event handling with Windows Forms and Windows Presentation Foundation applications are covered. It teaches software development employing the C#.NET language in the environment of Visual Studio. Prerequisites (must complete before registering): Introduction to C++ & OOP or equivalent Notes: Currently, this course is only offered through the College's International Programs.

CSCI 3910  Mobile Applications with Android  (4 Credits)  

This course teaches designing, developing, testing, debugging, and distributing professional level Android applications. It presents major concepts of this leading-edge mobile computing technology in the context of complete working Android applications. The course provides a smooth transition from traditional Java software development to mobile development in one of its most promising platforms, Android. Prerequisite (must complete before registering): Introduction to Object-Oriented Programming: Java or equivalent. Notes: Currently, this course is only offered through the College's International Programs.

CSCI 3915  Network Administration and Management  (4 Credits)  

In this course, students will configure network equipment, install network tools and accomplish tasks and duties similar to what network administrators, network and help desk technicians and IT installers do in their daily work. Students will cement the knowledge they gained in previous data communication networking coursework by practicing what they already know in theory, as they install and configure network devices, such as switches, routers, firewalls, network management software and other network related tools in a lab environment. Prerequisite (must complete before registering): Data Communications and Networking or equivalent. Notes/Comments: Currently, this course is only offered through the College's International Programs.

CSCI 3998  Individualized Studies in Computer Science (CSCI)  (1-8 Credits)  

Students have the opportunity to develop individualized studies with their mentor in Computer Science (CSCI). Registration for this class must be approved by the student’s mentor.

CSCI 4000  Advanced Computing Models: Virtualization Cloud & Mobile Computing  (4 Credits)  

Students will explore the impact of the new wave of advanced computing, such as virtualization technologies, and cloud and mobile computing, as services and delivery models on business and the society. Topics include abstraction, virtualization, hypervisors, load balancing, and utilization of virtualization technologies at different system levels. Students will develop a broad understanding of cloud computing service and delivery models, research directions in architecting modern data center computing, exploit opportunities afforded by modern cloud computing such as scalable distributed systems and mobile applications, data storage, security, monitoring, fogging, and more. Assumptions about surrounding courses: Students should have a basic understanding of computers, networks, database applications, along with a fundamental understanding of computer use in an organizational environment.

Attributes: Liberal

CSCI 4005  Software Engineering  (4 Credits)  

Computer scientists and software engineers need to learn formal methodologies for designing robust and reliable software systems in order to effectively and efficiently build and maintain these large and/or complex software projects. In this course, students will learn the concepts of software engineering including software processes, requirements specification, software verification and validation, and software evolution. Prerequisites (must complete before registering): Computer Programming I or equivalent; Data Structures and Algorithms or equivalent; Discrete Mathematics or equivalent Assumptions about surrounding courses: -An understanding of the general principles and characteristics of programming and programming languages such as one would gain in an introductory programming course or through professional experience. -A familiarity with data structures and the ability to identify appropriate data structures along with an understanding of the principles of algorithm design including the ability to design correct and efficient algorithms such as one would gain in a course on Data Structures and Algorithms or through professional experience. -A working knowledge of functions, relations, and sets; formal logic; proof techniques; basics of counting; graphs and trees; and discrete probability such as one would gain in a course on Discrete Mathematics. -It is recommended that students also have a familiarity with the social context of computing and professional and ethical responsibility such as one would gain in a course on Social, Professional & Ethical Issues in Computing. This course was previously SMT-274144 .

Attributes: Liberal

CSCI 4015  Theory of Computation  (4 Credits)  

Theory of Computation is a capstone course for computer science. It is concerned with theoretical aspects such as regular languages, finite automata, context-free languages, pushdown automata, the Church-Turing thesis, Turing machines, decidability, the halting problem, time complexity, and P and NP classes. Students will improve their ability to learn mathematics independently and improve their ability to create proofs. Prerequisite (must complete before registering): Discrete Mathematics Assumptions about surrounding courses: It is essential to know general methods of proof and have some prior experience with proving theorems. To achieve this, the contents of Discrete Math taken at the advanced level are essential. A course in proofs is recommended. Notes: Theory of Computation is usually a requirement for graduate school in Computer Science.

Attributes: Liberal

CSCI 4900  E-Commerce Applications  (4 Credits)  

This course provides the student with the knowledge and skills necessary to create the components/pages of a website that provides the capability to sell products to the consumer or business, collect payment due and provide the data to the other systems and applications that will complete the order process. Topics include setup and configuration in Dreamweaver of a testing environment with PHP/ MySQL and Apache web, fundamentals of PHP and good database design, usage of Dreamweaver behaviors in designing dynamic web pages, and using ready custom-built PHP functions. Prerequisite (must complete before registering): Introduction to Object-Oriented Programming: Java; Data Structures and Algorithms Notes/Comments: Currently, this course is only offered through the College's International Programs. It is recommended that students complete the Strategies in Learning (SIL) course before taking this course.

CSCI 4998  Individualized Studies in Computer Science (CSCI)  (1-8 Credits)  

Students have the opportunity to develop individualized studies with their mentor in Computer Science (CSCI). Registration for this class must be approved by the student’s mentor.