Course descriptions may be updated periodically to reflect changes since the last published catalog.
Course Number Name
CMPSC-510 Computer Science Independent Study...

Prerequisites

Course Credits

1.00- 4.00

Description

Guided study on a topic at an advanced level.

Term Offered

Course Types

Quantitative Reasoning

CMPSC-F120 Programming for the World Wide Web...

Prerequisites

Course Credits

4.00

Description

This is a hands-on course aimed at non-CS students who want to learn how to build interesting and interactive web pages. We do not use any drag- and-drop software for this purpose. Instead we cover the basics of HTML and PHP and, if time permits, we look at some ways of building web pages that interact with databases. Each student will have, for the duration of the course, an account on a server that permits individuals to have web pages that are visible on the World Wide Web.

Term Offered

Course Types

Quantitative Reasoning

CMPSC-F124 Game Programming...

Prerequisites

Course Credits

4.00

Description

This course introduces students to computer game development, including, but not limited to, game programming. We use Game Maker, a framework for personal computers that runs equally well on XP, Vista, and Linux. We learn about the foundational concepts of two-dimensional (flat) games: graphics, sound, objects, actions, rooms, scores, levels, multiplayer support, artificial intelligence, and more. Game Maker has an intuitive interface that makes game development approachable for everyone, including those who have never written a single game or a single computer program. All games created by Game Maker can be saved as standalone applications and can be shared freely with classmates, friends, and family. This is not a course in graphics design, audio editing, or scriptwriting. Students are encouraged to use their creativity and imagination to design games and the correctness of game implementation is stressed throughout the course.

Term Offered

Course Types

Quantitative Reasoning

CMPSC-F125 Introduction to Multimedia Programming...

Prerequisites

Course Credits

4.00

Description

This course provides an introduction to multimedia programming: developing programs that create and manipulate digital images and sound. Topics include creating negative and gray-scale images, reversing and splicing sounds, creating sound visualizations, and other related topics. The student will learn some of the concepts and techniques underlying software applications like Photoshop or SoundEdit as well as fundamental concepts underlying all of computing, such as algorithms, abstractions, and how computers represent numbers, text, images, and sound. There is no prerequisite for this course. It is recommended for students with little or no computer programming experience or who are not confident in their programming background. However, the student should be aware that hands-on programming is a central component of the course, embodied in frequent programming assignments.

Term Offered

Course Types

Quantitative Reasoning

CMPSC-F128 Programming II for the World Wide Web...

Prerequisites

Course Credits

4.00

Description

This course is a continuation of Programming for the World Wide Web. Students are taught how to turn their home PC or laptop into a web server by downloading and installing XAMPP, a free program that bundles the Apache server, the MySQL database, and the programming language PHP. After learning PHP and MySQL, students are taught AJAX, a technology that improves client-server communication, and jQuery, a library that enhances JavaScript. The course finishes with an introduction to Content Management Systems. As in Web I, there will be several lab exercises, homework assignments, and a final project. Upon completion of this course, students will have been exposed to topics needed to work in industry as web developers. Prerequisite: CMPSC F120.

Term Offered

Course Types

Quantitative Reasoning

CMPSC-F130 Game Programming II...

Prerequisites

CMPSC-F124;

Course Credits

4.00

Description

This course will be a continuation of CMPSC 124 and go more in-depth into coding and the designing of different types of games or applications. Using the Game Maker framework, students will challenge their creativity by developing strategy, isometric, and platform scrolling games, among others. In this class, students will go beyond the drag and drop options of Game Maker and explore the possibilities within the Game Maker Language (GML), creating more complex games. We will make GUIs, program audio engines, and experience the rich learning process of taking a game from inspiration through implementation.

Term Offered

Course Types

Quantitative Reasoning

CMPSC-F131 Computer Science I...

Prerequisites

Course Credits

4.00

Description

This is a rigorous introduction to computer science in Java with an emphasis on problem solving, structured programming, object-oriented programming, and graphical user interfaces. Topics include expressions, input/output, control structures, intrinsic data types, classes and methods, iteration, top-down programming, arrays, graphical user interfaces, and elements of UML. Normally offered each semester.

Term Offered

Course Types

Quantitative Reasoning

CMPSC-F132 Computer Science II...

Prerequisites

CMPSC F131

Course Credits

4.00

Description

Computer Science II (CSII) is the continuation of Computer Science I. The purpose of CSII is to expand students' understanding of Computer Science and computer programming, assuming that they have the basic knowledge of the Java language. The course introduce another programming language - C - and also focuses on the pure Object-Oriented features of Java, such as inheritance, polymorphism, and exceptions, as well as on simple data structures (lists, stacks, and queues) and algorithms (searching and sorting). By the end of the semester students will be able to develop sizable (several pages long) computer programs in the C and Java languages. Efficient C and Java program development requires an Integrated Development Environment (IDE) - a collection of tools that make it possible to edit, compile, and debug C and Java programs. Our IDE of choice is Eclipse. Eclipse is free and available for many operating systems, including Microsoft Windows (all flavors), Linux, Unix, and Mac OS X.

Term Offered

Course Types

Quantitative Reasoning

CMPSC-F253 Assembly Language and Computer Structure...

Prerequisites

CMPSC F132

Course Credits

4.00

Description

Introduction to computer architecture and machine language programming, internal representation of data and programs, and assembly language programming. Machine and assembly language implementations of constructs from higher-level languages such as C (including recursion and floating-point arithmetic) are studied.

Term Offered

Course Types

Quantitative Reasoning

CMPSC-F265 Data Structures & Algorithms...

Prerequisites

CMPSC F132

Course Credits

4.00

Description

Includes topics such as strings, stacks, queues, lists, trees, graphs, sorting, searching, hashing, dynamic storage allocation, and analysis of algorithms. Most programming will be done in the C language. Normally offered each semester.

Term Offered

Course Types

Quantitative Reasoning

CMPSC-F331 Object Oriented Programming...

Prerequisites

CMPSC-F265

Course Credits

4.00

Description

Object-Oriented Programming in C++ is taught using Trolltech's multi-platform Qt library and other open-source libraries and tools. Emphasis is placed on program design and code re-use. Topics include: encapsulation, inheritance and polymorphism, UML, refactoring, parent-child relationships, properties, event-driven programming, test cases, regular expressions, constraints, XML, design patterns, and graphical user interfaces. We deal with some operating system and programming environment issues and also with code packaging. C++ is a very large language, so we do not attempt to cover it all. Instead we work with a carefully selected subset of language elements that permits students to exploit the powerful Qt libraries and write robust, idiomatic, and interesting code. By the end of the course, the student should have a good command of C++, facility using and building libraries, an understanding and appreciation of the design patterns that we covered, and a well-established discipline of refactoring and code reuse. Prerequisite: CMPSC F265 (which may be taken concurrently). Normally offered each semester.

Term Offered

Course Types

Quantitative Reasoning

CMPSC-F333 Organization of Programming Languages...

Prerequisites

CMPSC F253, F265

Course Credits

4.00

Description

An introduction to functional programming and to the meaning and implementation of various programming language features. The course begins with a brief introduction to the Scheme language, which is then used to write interpreters for small languages that contain features typical of larger, more realistic languages. Normally offered each spring semester.

Term Offered

Course Types

Quantitative Reasoning

CMPSC-F345 Software Engineering...

Prerequisites

Course Credits

4.00

Description

This course introduces the fundamental principles of software engineering. Requirement specification and life cycles are emphasized. Topics include requirements analysis and specification, analysis and design, architecture, implementation, testing and quality, configuration management. Professional ethics considerations will be explored and emphasized throughout the course. Prerequisite: CMPSC F265. 1 term - 4 credits. Normally offered each year.

Term Offered

Course Types

Quantitative Reasoning

CMPSC-F353 Architecture of Computer Systems...

Prerequisites

CMPSC F253 and CMPSC F265.

Course Credits

4.00

Description

This course deals with the structure and operation of the major hardware components of a computer. Topics include basic logic design, basic datapath construction, basic pipelining, I/O system design, issues in memory hierarchy and network interface design. Normally offered each fall semester.

Term Offered

Course Types

Quantitative Reasoning

CMPSC-F355 Operating Systems...

Prerequisites

CMPSC F353 & CMPSC F265 and Working knowledge of C++.

Course Credits

4.00

Description

This course presents an overview of modern operating systems, from the points of view of an application developer and of a system developer. It covers process management, scheduling, concurrency management, multi-threading, memory management, and file system organization. Intensive programming assignments in the C language and in an assembly language help students to learn the POSIX application programming interface (API) and the low-level organization of a general-purpose operating system. Normally offered each spring.

Term Offered

Course Types

Quantitative Reasoning

CMPSC-F363 Intro to Database Systems...

Prerequisites

CMPSC 265 and MATH 285

Course Credits

4.00

Description

This is an introduction to the design and use of database systems --- systems that manage very large amounts of data. Topics covered include Entity-Relationship (E/R) data model, Relational data model, object-oriented model, and the conversion of E/R and relational models. We shall also learn some database lanaguages, both concrete and abstract, incuding Structured Query Language (SQL), Object Query Language (OQL), relational algebra, etc. We will introduce the semistructured data, such as the popular Extensible Markup Language (XML), and their usage in database systems as well. The course is intended for computer science students who need to have an in-depth understanding of modern database systems. Normally offered each fall semester.

Term Offered

Course Types

Quantitative Reasoning

CMPSC-F541 Advanced Databases...

Prerequisites

Course Credits

4.00

Description

This course is an advanced continuation of Intro to Database Systems (CMPSC F363)

Term Offered

Course Types

Quantitative Reasoning

CMPSC-R120 Programming for WWW Recitation...

Prerequisites

Course Credits

0.00

Description

Taken simultaneously with CMPSC 120. Students work with lab instructors to do work that enhances the course understanding. Such work can include practice problems, supervised programming time, as well as question-answer time and group project work. The hybrid version of the recitation: Once every two weeks students meet with an instructor to do work that enhances understanding of the course material.On alternate weeks students do individual programming and reading.

Term Offered

CMPSC-R131 Recitation for Intro to Computer Programming Intro to Comp Prog Recitation...

Prerequisites

Must be taken concurrently with CMPSC F131

Course Credits

0.00

Description

Taken simultaneously with CMPSC 131. The recitation is a hybrid course. Once every two weeks students meet with an instructor to do work that enhances understanding of the course material. Such work can include practice problems and programming, homework problems and sometimes quizzes on a laptop as well as question-answer time and group project work. On alternate weeks students do on line work such as lecture demonstration of additional examples or homework projects.

Term Offered