Department of Computer Science Courses

CMPSC 100: S-STEM Seminar (0)
Offered every semester
This seminar is required for all National Science Foundation S-STEM scholars and recommended for all members of CS@SXU (the computer science community of scholars at SXU.) The weekly seminar will focus on career counseling, research opportunities, internships, service learning and faculty-student collaborative projects.

CMPSC 101: Exploring Google Search and Google Docs (1)
This introductory course provides instruction on how to use and navigate advanced features of Google’s search engine. This course also covers Google's online version of its productivity suite of applications including docs, spreadsheets, calendars and presentations.

CMPSC 102: Exploring Web 2.0 (1)
This introductory course provides instruction on how to use blogging, podcasting, wikis, social networking and social bookmarks. The course will utilize several hands-on exercises.

CMPSC 103: Advanced Web 2.0 and Google Technology (1)
Prerequisite: CMPSC 101 or CMPSC 102
This course provides instruction on advanced features and additional concepts in Web 2.0 technology and additional software from Google utilizing the cloud computing strategy. Documents are stored online and accessible from any computer. Strategies for collaborating and managing multiple copies of these documents to publish and share will be covered.

CMPSC 104: Web 2.0 & Google Technology (3)
This course provides instruction on navigating and using advanced features of the Google search engine. The Google online versions of productivity packages are covered in hands-on exercises. Additional concepts in Web 2.0 technology are covered such as blogging, podcasting, wikis, social networking and social bookmarking. Strategies for collaborating and managing multiple copies of these documents to publish and share are illustrated with exercises.

CMPSC 107: Green Computing and Technology (3)
A focus on understanding the significance of technology and its positive and negative impacts on the environment. This course explores the many exciting possibilities to lower the carbon footprint associated with technology use. Green computing is the study and practice of using computing and technology resources efficiently in an environmentally responsible and sustainable manner. Topics include power consumption, e-waste, recycling, Information Technology environments, green design and usage. Practical considerations such as developing the Green Computing scorecard or conducting Green Computing audits and making findings available for action are part of the coursework requirements.

CMPSC 111: Introduction to Computing (3)
NOTE: Credit for this course will not be given to a student who has previously completed BUS 242
This course serves as an introduction to computer literacy. In addition to hands-on experience with word-processing, spreadsheet, presentation, database, web page authoring, and web browsing software applications programs, the course will cover the history of computing, an overview of hardware and software components and an examination of the social impact of computer technology.

CMPSC 112: Survey of Computer Science (3)
Offered every semester
This course takes a breadth-first view of the discipline of computer science, focusing on what computers are, how they work, what they can and cannot do and the impact they have on society. The course focuses on algorithms and how they are expressed through hardware, file machines, software and applications. This takes the course through many aspects of the discipline, including social impact. CMPSC 112 is required of all computer science and computer studies majors and minors. Students from other majors may take the course, but applicability to their majors or minors may be determined only by the student's department.

CMPSC 115: Navigating the Net (1)
In this workshop the student will learn to use a Web browser and search engines to search the World Wide Web.

CMPSC 120: Creating Web Pages I (1)
The first of two short courses in which the student learns to create and maintain a web page.

CMPSC 121: Creating Web Pages II (1)
Prerequisite: CMPSC 120
This short course builds on the knowledge gained in CMPSC 120. Students learn to create and maintain websites.

CMPSC 200: Virtual Worlds (4)
This course uses the Alice environment to give students experience with all the programming constructs typically in an introductory programming course. Students use drag-and-drop graphic tiles to create a program where the instructions correspond to standard statements in a production-oriented programming language, such as Java, C++ and C#.

CMPSC 201: Visual Basic Programming (4)
Prerequisite: MATH 099 and CMPSC 112
NOTE: Credit for this course will not be given to a student who has previously completed CMPSC 202.
This course introduces the students to programming using the Visual Basic programming language. Students create simple programs that use the basic elements of programming: control structures, logical expressions, variables, arrays and screen and file input and output. Student's are evaluated on their ability to write programs.

CMPSC 202: Principles of Computer Programming I (4)
Prerequisite: CMPSC 112 and MATH 112
Offered every fall
This is the first programming course in the basic sequence for computer science majors. The course will introduce the student to problem solving, algorithm development and the concept of structured programming. Assignment, selection, control statements, data types, functions and arrays will be studied. The student will design, code and debug a variety of application programs. Emphasis will be on programming techniques, style and documentation.

CMPSC 203: Principles of Computer Programming II (4)
Prerequisite: CMPSC 202 and MATH 200
Offered every spring
Building on the techniques developed in CMPSC 202, the student acquires a deeper understanding of structured programming concepts and an introduction to object-oriented programming. Data structures such as arrays, stacks, queues, records, linked lists and binary trees are studied. Recursion and the classical sorting and searching techniques are also covered. The student is assigned longer programs that incorporate these new concepts.

CMPSC 205: Productivity Applications (3)
Prerequisite: CMPSC 111 or consent of instructor
Students will enhance their ability to work with word-processing, spreadsheet, presentation and database applications. Using spreadsheets, they will create charts, maps, complex formulas, functions, pivot tables and macros, and will learn to use VBA. Using presentation software, they will create multimedia slides. Using databases, they will create queries, calculated fields, macros and archive tables.

CMPSC 206: Web Applications I (3)
This course teaches basic website creation and maintenance, including the defining of a website, the development of pages and the use of text, graphics, hyperlinks, tables, forms, layered objects, frames, multimedia, templates, behaviors, style sheets and other features. As one of the course projects, students establish their own Web presence by developing a personal website. Programming in javascript is introduced.

CMPSC 227: HTML Programming (1)
This course provides an introduction to hypertext markup language (HTML), used in the creation of Web pages. Students learn to create links, tables, frames, forms and cascading style sheets. They will create single Web pages and more complex websites.

CMPSC 228: JavaScript Programming (1)
Prerequisite: CMPSC 227 or consent of instructor
This course provides an introduction to JavaScript programming, used to create Web pages with a limited degree of interactivity. Students will learn about variables, objects, data types, operators, frames, forms, events, control structures and repetition.

CMPSC 229: Server Side Programming (1)
Prerequisite: CMPSC 228 or consent of instructor
This course provides an introduction to server-side processing through the use of active server pages. Students will learn to create forms to allow Internet users to access (and update) databases. Topics covered will include databases, queries, VBScript and JavaScript.

CMPSC 231: Graphical User Interface Design (4)
Prerequisite: CMPSC 201
This course builds on skills learned in CMPSC 201 (Visual Basic). Students will use Visual Basic to create software applications with event-driven graphical user interfaces (GUI). These programs will be deployed for use on a desktop, on a network server and also on the Web. Topics include pop-up menus, toolbars, database programming, Microsoft common controls, ActiveX controls, ActiveX documents and API programming.

CMPSC 235: Systems Analysis and Design (3)
Prerequisite: CMPSC 111 or CMPSC 112
This course covers the major aspects of the systems development life cycle. It includes such topics as data collection, cost analysis, file design, input/output design, project documentation, system testing and implementation.

CMPSC 255: Fundamentals of Computer Networking (3)
Prerequisite: CMPSC 112 or consent of the instructor
This course provides an introduction to computer networks. Topics include data communications fundamentals, local area networks, internetworking, networking software, wide area networks, the Internet. A brief introduction to issues of network administration is provided.

CMPSC 256: Operating Systems for Practitioners (3)
Prerequisite: CMPSC 112
NOTE: Credit for this course will not be given to a student who has previously completed CMPSC 301

This course introduces the student to hardware and software implementation issues surrounding operating systems. Topics include file, memory, process, device and network management, the user interface, and key features and implementations of popular operating systems (such as Microsoft Windows and Linux).

CMPSC 260: Topics in Computer Science (Credit varies)
Prerequisite: Consent of the instructor
This course is provided for special topics in computer science of particular interest to faculty or students. Approval for course topic must be given by the department.

CMPSC 266: Network Routing and Configurations (3)
Prerequisite: CMPSC 255
This course emphasizes the concept of routing and router's configurations. The concepts covered in this course enable students to develop experience in network design and configurations. Topics include IP addressing, routing protocols, router configurations, internetwork operating system, access control lists (ACLs), basic router troubleshooting.

CMPSC 267: Routing and Switching Protocols (3)
Prerequisite: CMPSC 266
This course extends a student's knowledge and practical experience with the design of local area networks (LANs) and the configuration and maintenance of routers and switches. Topics include classless routing, OSPF concepts, EIGRP, switching concepts, spanning tree protocol and file LANs.

CMPSC 268: WAN Technologies (3)
Prerequisite: CMPSC 267
This course introduces students to wide area network (WAN) technology and enables them to develop practical experience in designing and configuring WANs. Topics include scaling IP addresses, ISDN and DDR, frame relay, point-to-point protocol, network administration, optical networks, quality of service (QoS) and VBN.

CMPSC 280: Web Servers (3)
Prerequisite: CMPSC 255
This course is concerned with the planning, deployment and administration skills necessary to maintain a Web server. Topics include hardware and software selection, traffic projections, fundamentals of server maintenance, domain registration, site organization and configuration of various types of servers.

CMPSC 281: Web Security (3)
Prerequisite: CMPSC 280
This course covers the causes of network and Web insecurities, such as hacking, virus transmission and code corruption. Students are provided with an array of back-up procedures and security techniques. They will learn how to secure and protect a website, Web servers, network resources, clients, Web-accessible databases, and e-commerce transactions.

CMPSC 285: Digital Forensics (3)
Prerequisite: CMPSC 280 or permission of the instructor
This course introduces students to the techniques and tools of computer forensics investigations in civil and criminal venues. Topics include coverage of the latest technologies (including PDAs, cell phones, and thumb drives), civil procedures, criminal procedures, analysis techniques, reporting, professional responsibility, and ethical considerations. Hands-on activities using the most common forensic tools are an integral part of the coursework.

CMPSC 301: Operating Systems (3)
Prerequisite: CMPSC 345
NOTE: Credit for this course will not be given to a student who has previously completed CMPSC 256

The role of operating systems in modern-day computers is discussed. Topics include the dual-mode computer, interrupts, job and process scheduling, memory management, file management, concurrency, multiprocessing, networking and distributed systems.

CMPSC 306: Web Applications II (3)
Prerequisite: CMPSC 206
This course introduces the student to several languages and software applications that extend the capabilities of basic HTML. Dynamic HTML, XHTML, XML, VBScripting, Active Server Pages and database-driven pages are explored.

CMPSC 309: Issues in Computing (3)
Prerequisite: Junior-level status.
This course explores the extent to which advances in information technology have affected our society. Areas of study include access to technology, privacy, censorship, the information superhighway and computers in the workplace. Serious consideration is given to the many social, ethical and moral issues that arise from society's use of and dependence on computers; an emphasis is placed on the ethical issues facing computer professionals.

CMPSC 310: Multimedia for Web Applications (3)
Cross Ref: ART 327
Prerequisite: CMPSC 206, ART 219
This digital production course offers students a range of experiences with the techniques and tools for developing artwork for computer animation and interactive media. Projects in this course will allow students to experiment with a variety of processes for capturing and editing material. Output from this course will include CD-ROM, Web content and digital video.

CMPSC 311: Data Structures and Algorithms (4)
Prerequisite: CMPSC 203
This course expands on the coverage of data structures in CMPSC 203. Topics include a further examination of linked lists, graph representations and algorithms, hashing, methods of external sorting and the organization of files and their directories.

CMPSC 315: E-Commerce Applications and Technology (3)
Prerequisite: CMPSC 206
This course is directed toward computer analysts and programmers to familiarize them with computer applications for electronic commerce site development. Essential topics in electronic commerce are explored. A software application is thoroughly developed.

CMPSC 321: Relational Database Theory and Design (4)
Prerequisite: CMPSC 201 or CMPSC 202
This course introduces the student to relational databases. Topics include normalization, structured query language (SQL), entity-relationship modeling, performance measures, Data security and concurrency techniques. Discussion of object-oriented databases, client-server systems and data warehousing round out the course.

CMPSC 341: Programming Languages (3)
Prerequisite: CMPSC 345 or consent of the instructor
This course provides a study of programming language design and analysis. Topics include syntax, semantics, data types, assignment statements, control structures and subprograms. Traditional imperative languages as well as functional, logic, object-oriented and parallel languages are introduced. Programming assignments in non-imperative languages are required.

CMPSC 345: Computer Systems and Organization (4)
Prerequisite: CMPSC 202, MATH 200
This course introduces students to the internal architecture of computer systems. The course material addresses the relationships among a computer's hardware components, native instruction set, assembly language, and high-level languages. Basic concepts in computer systems and their effect on the performance of programs are introduced. Assembly language programming exercises are used to explore computer architecture.

CMPSC 350: Internship (Credit varies to a maximum of 12 hrs)
The internship opportunity is reserved for students who are employed in positions that involve computer science/studies knowledge and skills. We provide this opportunity to encourage students to gain practical, real-world experience that can enhance their understanding of the discipline and their potential as computer professionals. The student must apply for the academic credit at the time the internship takes place. See department chairperson for internship guidelines.

CMPSC 351: Algorithm Analysis and Design (3)
Prerequisite: MATH 200 and CMPSC 203
This course provides an introduction to different design and analysis approaches of computer algorithms. These include: searching, sorting and graph algorithms. Analytic approaches including proof of correctness and calculations of time and memory complexity are covered. The concept of distributed algorithms is introduced and compared to centralized algorithms.

CMPSC 360: Advanced Topics in Computer Science (Credit varies)
Prerequisite: Consent of the instructor
This course provides the student with an opportunity to study in detail one specific topic or area in computer science. The specific topic presented can be an area of particular interest to faculty or students, but must receive approval of the department. Possible topics include object-oriented programming, distributed systems, queuing theory, artificial intelligence and parallel processing.

CMPSC 370: Independent Study (1-4)
Prerequisite: Consent of instructor
Topic varies.

CMPSC 390: Software Engineering (4)
Prerequisite: senior status or departmental approvalThis course addresses the foundations, methodologies, and tools for developing high-quality large-scale software systems, with an emphasis on the technical issues of software development. Students in this course work in groups to design and implement real-world projects for clients such as non-profit organizations and other community groups. Requires participation in community-based activities, some of which may occur off campus.

CMPSC 395: Computer Studies Capstone Course (3)
Prerequisite: Must be taken within one year of anticipated graduation date
This is the capstone course for the computer studies major. Students study the most recent developments in the field and apply their senior-level skills and knowledge to solving current problems. These may be new programming languages, innovative ways of using the World Wide Web, new application software, or new operating systems and network technology. Special attention will be given to career strategies and preparation for the job search.

( ) = credit hours / / = classroom hours