Bookmark and Share

300 Level Courses in Computer Science

CSC 310 - Programming Languages 3 sh
This course deals with the main constructs of contemporary programming languages and the tools necessary for the critical evaluation of existing and future programming languages. It provides an in-depth discussion of programming language structures, presents a formal method of describing syntax, and introduces approaches to lexical and syntactic analysis. Prerequisites: CSC 126, CSC 235, CSC 237.
CSC 311 - Computer Networks 3 sh
The use of computer networks in every day life has been increasing exponentially over time. It is important for computer science majors to understand the fundamental ideas of computer networks. The students will learn the terminology and implementation of computer networks, and the physical components of networks, including cabling and devices, as well as how these components work. Several application layer protocols will also be studied, including HTTP, E-mail, DNS and DHCP. Prerequisites: CSC 237 or CSC 253.
CSC 320 - Game Development for Computer Scientists
3 sh
This course introduces the student to the concepts, process, and algorithms of game design. Topics in this course include an introduction to game design process, game design problems, game algorithms, algorithm implementation and application, data and data structures in game design, and artificial intelligence in game design. The student will create at least two original games using the techniques presented in the course. Perequisites: CSC 237 and CSC 243 AND completion of 18 credits of CSC courses numbered 125 or higher AND a GPA in CSC courses of 2.25 or above.
CSC 325 - Introduction to Computer Science Theory 3 sh
This course covers computer science skills required to understand, model, and devise efficient solutions for problems. These skills include techniques for modeling problems, determining inherent complexity of problems, devising appropriate solutions for problems, and analyzing the efficiency of problem solutions. Topics include problem solving, automata theory, computability theory, algorithm design strategies, and algorithm anlaysis. Prerequisites: CSC225 and CSC237
CSC 328 - Network Programming
3 sh
This course provides coverage of the basics of network programming methodology and implementation with inclusion of relevant aspects of security. Topics that will be covered are network protocols and interprocess communication (IPC) facilities, including pipes and sockets. Applications using both UDP and TCP will be implemented and analyzed. Both the client and server sides of network applications will be designed and implemented. Application layer security requirements will also be discussed. Prerequisites: CSC237 or CSC253
CSC 330 - Introduction to Mobile Architecture and Systems
3 sh
This course introduces students to the concepts of technology mobility and the role that new and smaller computing devices play in new systems development. The student will be introduced to the field of mobile systems architecture and apply this knowledge to the creation of architectures using both mobile and traditional computing resources. Following this the student will learn about development using today's popular mobile devices and develop their own architecture and system based on mobile devices. Prerequisites: (CSC237 or CSC253) and CSC243
CSC 341 - Introduction to Information Security 3 sh
This course is an introduction to the basic concepts of information security. Topics include security threats and attacks, viruses and other malicious programs, risk management, security protection, basic cryptography, and trusted information systems. Prerequisites: CSC 237 or CSC 253 AND completion of 18 credits of CSC courses numbered 125 or higher AND a GPA in CSC courses of 2.25 or above.
CSC 342 - Web Technologies 3 ch - 3 sh
This course is an introduction to the basic concepts of technologies that are used on the web. Topics include: web basics, standards, and infrastructure, client/server architecture on the web, page presentation using markup languages and style sheets, the Document Object Model (DOM), clientside programming and server-side programming, web data presentation, and web services. Prerequisites: CSC 242.
CSC 343 - Operating Systems 3 sh
This course is an introduction to the basic software components of an operating system. Topics include process management, storage management, processor management, auxiliary storage management, evaluation of an operating systems performance, networks, operating system security, case studies of particular operating systems. Prerequisites: CSC 237 or CSC 253.
CSC 351 - Digital Forensics for Computer Scientists 3 sh
Digital Forensics entails the collection, organization, explanation, and presentation of evidence assembled in the course of investigations initiated by legal and law enforcement personnel to substantiate or refute legal proceedings of a criminal or non-criminal nature. Because computer scientists play a key role in defining and using technologies for digital forensics, their involvement in such activities is extremely critical. The purpose of this course is to engage the student into digital forensics activities from three viewpoints. The first viewpoint involves looking at digital forensics from the standpoint of the activities and issues faced by the digital forensics expert. The second viewpoint is to consider the nature of the contributions that computer scientists can make to the field of digital forensics through the creation and advancement of algorithms to aid in forensic analytical tasks. Finally the third viewpoint will be to examine digital forensics from the viewpoint of the legal personnel involved and to consider their requirements for evidence and explanation. Prerequisite: CSC 341.
CSC 352 - UNIX: Systems Programming and Administration 3 sh
This course deals with the study of the UNIX operating system, particularly, systems programming and administration. Under the former, such topics as UNIX commands, filters, shell scripts, system security, user accounts, system backup and rebooting, and associated utilities are studied. In addition, software procurement, using the web, and installation will be illustrated. Under the latter, such topics as file primitives and directory access, system utilities, processes, signals and signal handling and inter-process communication are studied. Meaningful applications, which illustrate the topics will be given. Prerequisites: CSC 237 or CSC 253.
CSC 354 - Software Engineering I
3 sh
This is the first course in a two semester capstone sequence. This course introduces the fundamental principles of software engineering. Coverage will include the System Development Lifecycle (SDLC) methodologies, capturing requirements, design modeling, project management, risk management, and quality assurance. Students will learn techniques for requirements elicitation, prioritization, validation, and specification. They will be introduced to various design models that are used to capture requirements. Prerequisite: 24 credits of CSC courses numbered 125 or higher and a GPA in the CSC courses of 2.25.
CSC 355 - Software Engineering II
3 sh
This is the second course in a two semester capstone sequence. This course presents the advanced principles of software engineering. Coverage will include the professional responsibilities of the software engineer, implementation, testing, configuration management, and the project management. Students will be introduced to different development and testing approaches. Prerequisite: CSC354 with a grade of "C" or better and a GPA of 2.25 in all CSC courses.
CSC 356 - Introduction to Database Management Systems 3 sh
Database technology is fundamental to all information technology. Seldom is there a system that has been developed today without having some kind of database component. This course provides the students with a fundamental understanding of database concepts, how to create, modify, and access databases, the different types of databases, and an introduction to advanced database topics. Prerequisite: CSC 253 or CSC 237
CSC 361 - Finite Automata & Formal Languages 3 sh
Introduction to a series of models for computation and their relationship to formal languages that are useful in the definition of programming languages along with a look at the theoretical limits of computers. Topics include finite and pushdown automata, Turing machines, grammars, and decidability. Prerequisites: MAT 126 and CSC 310.
CSC 363 - Interdisciplinary Software Rapid Prototyping
3 sh
This course combines students from computer science and information technology programs with students taking a course offered by another academic department into interdisciplinary teams that solve a problem or create a prototype product within the domain of that application discipline or disciplines. Student teams analyze problems or opportunities in the disciplinary application domain. They use rapid prototyping techniques that combine off-the-shelf software and custom software to create a prototype software system, and they present or exhibit this system to an audience interested in the domain. Prerequisites: Completion of 24 credits of CSC courses numbered 125 or higher and a GPA of 2.25 in all CSC courses.
CSC 372 - Independent Study and/or Projects in Computer Science 3 sh
This course involves individual independent study in some area of computer science under the direction of a CSC group staff member. This study can be made in any of the area of computers, artificial intelligence, automata theory, business information systems, computer aided design, computer assisted instructions, computer graphics, computer mechanisms and devices, computer systems, computer telecommunication, information retrieval, linguistic processing, numerical analysis, programming theory, or switching systems and logical design, and others. A student may register for this course more than once up to a maximum of six hours of credit. Prerequisites: Permission of the student's advisor, instructor, and department chairperson.
CSC 380 - Cooperative Internship In Computer Science II 3 - 6 sh
This second internship consists of 6-12 weeks of full-time employment that provides students with a supervised industrial experience in computer science. The internship is supervised by a member of the Computer Science Department. This internship is available only to Computer Science majors, and is taken on a pass/fail basis. Prerequisites: CSC 280 and approval by the department chair is required.
CSC 385 - Computer Science Seminar 3 sh
A study of topics in computer science designed to integrate and apply the concepts and the knowledge acquired throughout the students academic career; and an intense experience in applying both knowledge and concepts to a major programming project. Prerequisites: completion of 36 CSC credits numbered 125 or above or permission of the instructor.
CSC 398 - See Honors Supplementary Research 1 - 3 sh