Computer Science (CSCI)
The study of a selection of contemporary microcomputer applications, including operating systems concepts, word processing, spreadsheets, database management systems, and the Internet and World Wide Web. Brief survey of other applications, such as presentation graphics, multimedia usage and desktop publishing. Does not apply toward credit in computer science major or minor.
An introduction to the field of computer science for computer science, computer networking, and web development majors. Applications, history of computing, computer networks and the Internet, programming, hardware, theory of computation, algorithms, fundamental concepts in computing.
An introductory course in computer programming in a graphical development environment, intended for students with no prior computer programming experience. Arithmetic, control structures and simple data structures. Sound, graphics and animation techniques.
Topics include planning a web site starting with domain name registration and selection of hosting service providers, creating web pages using HTML/XHTML and cascading style sheets; validating web pages; using web authoring tools such as Dreamweaver, publishing web pages to a remote web server, introductory web site design, including best practices for inserting graphics, page layout, building the web site navigation and user interface, integration of third-party and Web 2.0 tools and software, implementing web and accessibility standards, ethical and legal issues such as copyright and trademarks.
An introductory course in data science using the R programming language, intended for students with no prior computer programming experience. Basic probability and statistics, data analysis, data storage, data visualization, clustering, and classification.
A broad-based introduction to computer programming, using the C++ programming language and basic operating system features as vehicles. Basic programming principles, including built-in and programmer-defined data, operators, functions and control structures. Introduction to classes and dynamic memory allocation. Text manipulation and parsing, binary files, and exception handling. C-style input and output. Applications will be drawn from across the discipline of computer science.
This course is designed to bridge the gap between transfer courses that are either 'not quite' CSCI121 or are in a different programming language than the current LSSU offerings of CSCI121 and CSCI201. Students may not receive credit for both CSCI121 and CSCI131.
A basic introduction to the architecture, installation, maintenance, troubleshooting and repair of personal computers. The student will learn elementary principles of electronics, magnetism and interference as they relate to computer repair and operation. The disassembly and upgrading of a personal computer will be covered in the laboratory as well as the use of diagnostic hardware and software.
An introductory course in data structures and algorithms, with an emphasis on abstraction, implementation and analysis. Advanced class concepts, including operator overloading, Linked lists, stacks, queues, trees and binary trees. Separate compilation and third-party libraries. Application of various data structures to problems selected from the spectrum of computer science topics.
An introductory course in database design and implementation, using microcomputer-based relational database software. Single and multi-table databases, forms and reports, query processing, data import and export, and database-related programming.
An introduction to the basic principles of computer networks and communication, exploring both the hardware necessary to support computer networks and the software needed to utilize those networks. Basic network topologies, network protocols, and local and wide-area networks.
An introduction to using and administering network operating systems. Students will also be introduced to virtualization of machines, as well as interaction between virtualized machines. Topics include: account setup, basic security, file and device sharing, and maintenance. Course topics will be presented in the context of different network operating systems.
This course investigates the various security protection and recovery techniques available for networks and personal computers including security policies, procedures, and requirements necessary for protecting the integrity of information stored on networks, workstations, and other computer systems. Other topics include discussions on disaster recovery planning, emergency response teams, threat assessment, detection and remediation of a threat, standards for establishing a security framework, and operations security and production controls.
An introduction to the techniques and tools used in artifical intelligence and machine intelligence, including problem solving, search, knowledge representation, logic, and inference.
An introduction to the UNIX operating system, shell scripting, and UNIX networking from the users perspective. Topics include basic and intermediate UNIX commands and file structure, regular expressions, BASH/CSH shell scripting, basic UNIX network setup, introduction to UNIX system daemons and networking services.
Special studies and/or research in computer science for individuals or small seminar groups. Course content to be arranged with instructor and with approval of the department head. This course may be repeated for a maximum of eight credits.
This is a hands-on course where the student is assigned a project at a corporate site. The student is expected to spend at least 8 - 10 hours a week on the project. Topics for the project may include creating a substantial Web site, designing and implementing an application system for a user, modifying and updating an existing software system, or other related projects. The projects will vary each semester.
This is a hands-on course where the student is assigned a project in a corporate network setting. The projects will vary each semester to allow students to implement their knowledge to create and maintain a real-world network system. Activities could include the wiring of the network, installing and maintaining users, installing and repairing workstations, maintaining a Novell or Microsoft network, monitoring an NDS tree, and other similar activities. The student is expected to spend at least 8 - 10 hours per week on the project including hours on site, doing research, and writing weekly report logs.
An introduction to the generation of graphical images by computer. Survey of common graphics devices. Generation of lines and curves. Representation of two-dimensional objects. Techniques for area filling. Scaling, rotation and translation in two dimensions. Rendering three-dimensional objects by projections. Scaling, rotating and translation in three dimensions. Hidden line and hidden surface detection and removal. (3,0) 3 Alternate Years
Principles of Wide Area Networks, IP and TCP, routers, routing protocols and configurations, virtual LANs, network management, subnetting, design of LANs and WANs, and security issues. Students completing this course will be prepared to take the CCENT and CCNA certification exams.
An introduction to the design and development of dynamic web applications using PHP, MySQL and Java Script. Accessing MySQL using PHP, form handling, dynamic web application, publish dynamic web application on a server.
Formal logic and proof techniques; recursion, recurrence relations and combinational methods; analysis of algorithms; algebraic structures; trees and graphs; Boolean algebra and computer logic; models of computation and formal languages. Emphasis will be on applications to computer science.
Advanced data structures including general trees and graphs. Advanced programming techniques, including: divide and conquer, dynamic programming, greedy algorithms, graph algorithms, balanced trees. Emphasis will also be placed on the software development process, debugging and testing methodologies.
A continuation of using and administering network operating systems. Students will also be introduced to virtualization of servers, as well as interaction between virtualized machines. Topics include: file system and network service management, remote access, security, printing, and disaster recovery. Course topics will be presented in the context of different network operating systems.
Introduction to the development of graphical applications for a variety of platforms, including desktop systems, smart phones, tablets and others; user interface design, events and event management, data and resource management; developing for and deploying to multiple types of platforms.
A comparison of programming languages and methodologies for the development of applications and programs. Focus will be on differences in programming languages, the strengths and weaknesses of them, differing language implementations, and deployment across multiple platforms. The course will cover choosing a language and methodology based on the task, as well as developing code for a multi-platform vs uni-platform application with emphasis on a common codebase for the application.
The study of extracting knowledge and patterns from data. This course will introduce students to tools and techniques required for data collection and integration, pattern discovery, data analysis, evaluation, and visualization.
Network administration how to and issues for Linux. Installation of Linux networked system, maintenance and upgrade of a Linux installation, security issues, common scripting languages, system admin tasks, NFS, and mail systems; other UNIXes.
A hardware-orientated introduction to the structure of modern computer systems, emphasizing the role of, and interrelationships between, the various components. The evolution of modern computer systems. Memory organization, peripheral devices and their connectivity. Instruction sets, arithmetic and central processing unit structure. Control unit organization and operation. Alternative computer architectures. Parallel computing for both SMP and MIMD models.
This course is the first part of the two-part sequence CSCI418/CSCI419. The student will begin a two-semester capstone experience that will include one of the following: a software project; a network implementation; a co-operative education position with an external company; or a research project. The experience must include the fulfillment of customer-generated requirements. The projects/experiences will vary each year to allow students to experience work in a real-world environment. Students in CSCI418 must take CSCI419 the following semester.
The second of a two-part sequence, CSCI419 provides students with the skills necessary for completion of their two-semester capstone experience that will include one of the following: a software project; a network implementation; a cooperative education opportunity with an external company; or a research project. The experience must include the fulfillment of customer-generated requirements. The projects/experiences will vary each year to allow students to experience work in a real-world environment. Students in CSCI418 must take CSCI419 the following semester.
An advanced look at common computer and network exploitation techniques in use today. Course emphasis is on how exploits work (both from the exploiters perspective as well as the software faults that allow these exploits to exist), what can be done with the exploits, as well as mitigation and solution techniques for containing the damage to administered systems.
Definition and historical development of operating systems. Characteristics of batch, interactive and multiprogramming systems. File systems, processor and memory management. Communication, concurrency, deadlock, protection, parallel and distributed systems. Case studies of modern operating systems.
Special studies and/or research in computer science for individuals or small seminar groups. Course content to be arranged with instructor and with approval of the deparment head. This course may be repeated for a maximum of nine credits.