| Course descriptions may be updated periodically to reflect changes since the last published catalog. | ||
| Course Number | Name | |
|---|---|---|
| CMPSC-510 | Computer Science Independent Study... | |
PrerequisitesCourse Credits1.00- 4.00 DescriptionGuided study on a topic at an advanced level. Term OfferedCourse TypesQuantitative Reasoning |
||
| CMPSC-F120 | Programming for the World Wide Web... | |
PrerequisitesCourse Credits4.00 DescriptionThis 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 OfferedCourse TypesQuantitative Reasoning |
||
| CMPSC-F124 | Game Programming... | |
PrerequisitesCourse Credits4.00 DescriptionThis 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 OfferedCourse TypesQuantitative Reasoning |
||
| CMPSC-F125 | Introduction to Multimedia Programming... | |
PrerequisitesCourse Credits4.00 DescriptionThis 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 OfferedCourse TypesQuantitative Reasoning |
||
| CMPSC-F128 | Programming II for the World Wide Web... | |
PrerequisitesCourse Credits4.00 DescriptionThis 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 OfferedCourse TypesQuantitative Reasoning |
||
| CMPSC-F130 | Game Programming II... | |
PrerequisitesCMPSC-F124; Course Credits4.00 DescriptionThis 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 OfferedCourse TypesQuantitative Reasoning |
||
| CMPSC-F131 | Computer Science I... | |
Prerequisites
Course Credits4.00 DescriptionThis 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 OfferedCourse TypesQuantitative Reasoning |
||
| CMPSC-F132 | Computer Science II... | |
PrerequisitesCMPSC F131 Course Credits4.00 DescriptionComputer 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 OfferedCourse TypesQuantitative Reasoning |
||
| CMPSC-F253 | Assembly Language and Computer Structure... | |
PrerequisitesCMPSC F132 Course Credits4.00 DescriptionIntroduction 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 OfferedCourse TypesQuantitative Reasoning |
||
| CMPSC-F265 | Data Structures & Algorithms... | |
PrerequisitesCMPSC F132 Course Credits4.00 DescriptionIncludes 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 OfferedCourse TypesQuantitative Reasoning |
||
| CMPSC-F331 | Object Oriented Programming... | |
PrerequisitesCMPSC-F265 Course Credits4.00 DescriptionObject-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 OfferedCourse TypesQuantitative Reasoning |
||
| CMPSC-F333 | Organization of Programming Languages... | |
PrerequisitesCMPSC F253, F265 Course Credits4.00 DescriptionAn 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 OfferedCourse TypesQuantitative Reasoning |
||
| CMPSC-F345 | Software Engineering... | |
PrerequisitesCourse Credits4.00 DescriptionThis 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 OfferedCourse TypesQuantitative Reasoning |
||
| CMPSC-F353 | Architecture of Computer Systems... | |
PrerequisitesCMPSC F253 and CMPSC F265. Course Credits4.00 DescriptionThis 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 OfferedCourse TypesQuantitative Reasoning |
||
| CMPSC-F355 | Operating Systems... | |
PrerequisitesCMPSC F353 & CMPSC F265 and Working knowledge of C++. Course Credits4.00 DescriptionThis 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 OfferedCourse TypesQuantitative Reasoning |
||
| CMPSC-F363 | Intro to Database Systems... | |
PrerequisitesCMPSC 265 and MATH 285 Course Credits4.00 DescriptionThis 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 OfferedCourse TypesQuantitative Reasoning |
||
| CMPSC-F541 | Advanced Databases... | |
PrerequisitesCourse Credits4.00 DescriptionThis course is an advanced continuation of Intro to Database Systems (CMPSC F363) Term OfferedCourse TypesQuantitative Reasoning |
||
| CMPSC-R120 | Programming for WWW Recitation... | |
PrerequisitesCourse Credits0.00 DescriptionTaken 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... | |
PrerequisitesMust be taken concurrently with CMPSC F131 Course Credits0.00 DescriptionTaken 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 |
||