Catalog
2014-15

Computer Science

 
Dr. Marvin Bishop
Interim Chair of the Department

The Computer Science degree combines the breadth of a liberal arts education with depth in all aspects of computer science. The program includes, programming in Python, object-oriented programming beginning with C++ then Java, computer organization, systems programming with Linux, operating systems, databases, computer organization and software engineering, plus electives in artificial intelligence, machine learning, mobile computing,  multimedia, scientific computing, computer graphics, and web programming. Computer Science prepares students for work in a number of computer related fields and provides the opportunity to pursue an interdisciplinary minor.

Students are encouraged to participate in programming contests such as the international ACM Collegiate programming contest and summer programs such as Google Summer of Code or research programs held at off-campus locations. With a faculty sponsor, a student may apply for support for an on-campus research project during the summer. Students are encouraged to present projects at the Spuyten Duyvil Undergraduate Mathematics Conference, founded in 2005 by the Manhattan College mathematics department.

The Department offers both a BS and a BA in Computer Science.

General Requirements: Major courses should be taken in accordance with the PLAN OF STUDY listed below. The order in which School or Science core courses are taken is flexible. A minimum grade of C in each of the major courses is required.  Before taking any major course, the student must obtain a grade of C or better in the prerequisite courses. 

Major Computer Science

A major program in computer science is available in the School of Science within either the Liberal Arts curriculum leading to a Bachelor of Arts degree or the Science Curriculum leading to a Bachelor of Science degree.

BS in Computer Science

Students must complete the following:

MATH 185Calculus I3
MATH 186Calculus II3
CMPT 101Computer Science I3
CMPT 102Computer Science II3
CMPT 238Data Structures3
CMPT 258Database Systems I3
EECE 229Introduction to Digital Systems3
CMPT 312Operating Systems3
CMPT 334Computer Organization3
CMPT 335Discrete Structures3
CMPT 353Systems Programming3
CMPT 360Object Oriented Design with Java4
CMPT 438Algorithms3
CMPT 456Software Engineering3
PHYS 101Physics I4
PHYS 102Physics II4
PHYS 221Physics of Digital Systems4
Approved Departmental Electives9

 BA in Computer Science

Students must complete the following:

MATH 185Calculus I3
MATH 186Calculus II3
CMPT 101Computer Science I3
CMPT 102Computer Science II3
CMPT 238Data Structures3
CMPT 258Database Systems I3
EECE 229Introduction to Digital Systems3
CMPT 312Operating Systems3
CMPT 334Computer Organization3
CMPT 335Discrete Structures3
CMPT 353Systems Programming3
CMPT 360Object Oriented Design with Java4
CMPT 438Algorithms3
CMPT 456Software Engineering3
Three SCI2xx courses9
Approved departmental electives12

 Minor in Computer Science

A student must receive a C or better in at least 15 credits, including three or more credits in a 300 or 400 level course taken in the Department of Computer Science. Note: CMPT 155 ( formerly MATH 121) and CMPT 214 will not be credited toward the minor in Computer Science.

Transfer Credit: At most one course transferred from another institution may be credited toward the fifteen credits required for a minor.  A minimum of four courses, 12 credits, must be taken within the Department of Computer Science at Manhattan College.

Application:  When the required courses are completed, a student must get a Minor Form from the department secretary, fill it out and have it signed by the Chair of the Department.

Minor Requirement for Students in the School of Engineering

The following two courses are required:
CMPT 102Computer Science II3
CMPT 238Data Structures3
At least one of the following two courses is required:
CMPT 335Discrete Structures3
CMPT 360Object Oriented Design with Java4
The following course is required:
CMPT 456Software Engineering3
ELECTIVES: One other course at the 200-400 level.3

Minor Requirements for Students in the Schools of Arts, Business, Education and Science

At least two courses from the following list:
CMPT 101Computer Science I3
CMPT 102Computer Science II3
CMPT 360Object Oriented Design with Java4
A least one course from the following list:
CMPT 238Data Structures3
CMPT 258Database Systems I3
CMPT 335Discrete Structures3
Electives: Two courses with at least one at the 300-400 level.

PLAN OF STUDY

Bachelor of Science in Computer Science

First Year
FallCreditsSpringCredits
CMPT 1013CMPT 1023
MATH 1853MATH 1863
MLL*3MLL*3
RELS 1103ENGL 1103
LLRN 1023Social Science3
 15 15
Second Year
FallCreditsSpringCredits
CMPT 2383CMPT 3604
CMPT 2583CMPT Elective**3
CMPT 3353PHYS 1024
PHYS 1014Social Science3
PHIL 1503ENGL 1503
 16 17
Third Year
FallCreditsSpringCredits
EECE 2293CMPT 3123
CMPT 3533CMPT 3343
CMPT 4383PHYS 2214
RELS Catholic Studies3CMPT Elective3
HIST 1503MUSC 150 or ART 1503
 15 16
Fourth Year
FallCreditsSpringCredits
CMPT Electives3CMPT 4563
MATH 3313CMPT Electives3
RELS Global/Contemporary3Free Electives9
Social Science3 
Free Elective3 
 15 15
Total Credits: 124
*

 One year sequence of a modern foreign language.

**

If CMPT 241 Web Programming is taken, it is recommended that it be taken after CMPT 258 Database Systems I in the spring of the second year.

 

Bachelor of Arts in Computer Science

First Year
FallCreditsSpringCredits
CMPT 1013CMPT 1023
MATH 1853MATH 1863
MLL*3MLL*3
RELS 1103ENGL 1103
LLRN 1023Social Science3
 15 15
Second Year
FallCreditsSpringCredits
CMPT 2383CMPT 3604
CMPT 2583CMPT Elective**3
CMPT 3353SCI 2xx***3
SCI 2xx***3ENGL 1503
PHIL 1503Social Science3
 15 16
Third Year
FallCreditsSpringCredits
EECE 2293CMPT 3123
CMPT 3533CMPT 3343
CMPT 4383RELS Catholic Studies3
SCI 2xx***3MUSC 150 or ART 1503
HIST 1503CMPT Elective3
 15 15
Fourth Year
FallCreditsSpringCredits
CMPT 4563RELS Global/Contemporary3
CMPT Elective3CMPT Elective3
Social Science3Free Electives9
Free Electives6 
 15 15
Total Credits: 121
*

One year sequence of a modern foreign language.

**

 If CMPT 241 Web Programming is taken, it is recommended that it be taken after CMPT 258 Database Systems I in the spring of the second year.

***

Students may opt instead to take one (1) full year of a lab science (8 credits) in this case total credits for graduation is 120.

Courses

CMPT 101. Computer Science I. 3 Credits.

An introduction to programming and computer science, including flow control, loops, arrays, strings, and an introduction to objects. Students will be required to do a variety of projects in the Python language which may involve graphics, animations, games, and programs which download and process live data from Internet sources. CMPT 101 cannot be taken after CMPT 102.

CMPT 102. Computer Science II. 3 Credits.

The C++ programming language. Classes and objects. Recursion, pointers, and data structures including stacks, queues, lists, and trees. Prerequisite: A grade of C or better in CMPT 101 or ENGS 116.

CMPT 155. Computer Applications for Life Sciences. 3 Credits.

This course explores the use of the computer for analyzing data appropriate to the life sciences. Topics include using Excel for research: worksheet basics, formulas and functions, charts and graphics, macros and VBA, passing data sets between applications; computer representations of discrete-time dynamical systems, growth and decay models, linear, exponential and logarithmic regression; introduction to writing simple computer programs and/or procedures. Prerequisite: None.

CMPT 214. Teaching and Learning with Technology. 3 Credits.

Examines various uses of technology in the classroom to promote student learning.

CMPT 238. Data Structures. 3 Credits.

Efficiency of search, sort, and hash algorithms. Stacks, queues, priority queues, binary trees, binary search trees, general trees, heaps, and heapsort. Fall. Prerequisite: CMPT 102 or CMPE 202 or EECE 202.

CMPT 241. Web Programming. 3 Credits.

An introduction to Web programming using DHTML and Javascript for development of Web-based applications. Current server-side scripting languages such as Python or PHP will be used for creating dynamic Web pages. Spring. Prerequisite: CMPT 102 or CMPE 202 or EECE 202 or permission of the instructor.

CMPT 258. Database Systems I. 3 Credits.

An introduction to database system concepts; SQL, database design, normalizing tables, functional dependencies, entity-relationship and relational database models; use of object-oriented design and event programming. Fall Prerequisite: CMPT 102 or CMPE 202 or EECE 202 or permission of the instructor.

CMPT 312. Operating Systems. 3 Credits.

File systems, CPU scheduling, memory management, virtual memory and machines, disk scheduling, deadlocks and their prevention, concurrency, protection mechanisms, multiprocessors, distributed systems. A survey of the services provided by some of the more popular operating systems. Spring. Prerequisite: CMPT 353.

CMPT 334. Computer Organization. 3 Credits.

A study of the internal architecture of a computer. Topics include instruction sets, hardwired and microprogrammed control unit designs, memory systems, I/O systems, introduction to pipeline and parallel processing. Prerequisite: EECE 229.

CMPT 335. Discrete Structures. 3 Credits.

A study of structures most frequently encountered in computer science: graphs, trees, search algorithms, recurrence relations and coding theory. Fall. Prerequisite: CMPT 102 or CMPE 202 or EECE 202.

CMPT 336. Simulation and Modeling. 3 Credits.

Probability distributions, mathematical models, simulation of queuing systems, Markov chains. Prerequisite: MATH 420 or MATH 331 and CMPT 102 or CMPE 202 or EECE 202.

CMPT 341. Programming Languages. 3 Credits.

Organization of programming languages, study of language specification and analysis, control structures and data flow. Prerequisites: CMPT 335, and CMPT 360.

CMPT 353. Systems Programming. 3 Credits.

C programming language. Introduction to the UNIX/Linux operating system and shell programming. Design and implementation of selected systems software in the UNIX/Linux environment. Introduction to Perl. Fall. Prerequisite: CMPT 102 or CMPE 202 or EECE 202.

CMPT 358. Database Systems II. 3 Credits.

A continuation of 258. Introduction to middleware, database connectivity and Web development issues; ODBC, OLE DB, Active XData Objects (ADO); security. Prerequisite: CMPT 258.

CMPT 360. Object Oriented Design with Java. 4 Credits.

An introduction to object-oriented design using the programming language Java. Classes, objects, inheritance, abstract types, polymorphism, the Liskov substitution principle, design patterns, generics, iterators, and generators. Spring. Prerequisite: CMPT 102 or CMPE 202 or EECE 202.

CMPT 375. Internship for Juniors. 3 Credits.

Students participate in an off-campus training experience closely related to one of the areas of computer science. Frequent meetings with the advisor plus a paper are required. Prerequisites: Junior status, 3.0 GPA, and permission of the student's advisor or the Chair.

CMPT 415. Computer Graphics. 3 Credits.

Graphics primitives, two and three-dimensional transforms, clipping, hardware, projections, user interface, raster methods, hidden surface algorithms, color, shading, and ray tracing. Spring. Prerequisite: MATH 104 or MATH 186 and CMPT 102 or CMPE 20 or EECE 202.

CMPT 420. Artificial Intelligence. 3 Credits.

Introduction to a functional language, such as LISP. Simulation of intelligence by machines in the areas of natural language processing, automated reasoning, computer vision, and robotics. Prerequisite: CMPT 102 or CMPE 202 or EECE 202 or permission of the instructor.

CMPT 431. Multimedia. 3 Credits.

An introduction to multimedia capabilities of computers, including the storage and manipulation of large media files, network protocols for multimedia distribution, digital rights management, encodings for video and audio files, and methods for analyzing multimedia data. Prerequisite: CMPT 102 or CMPE 202 or EECE 202 or permission of the instructor.

CMPT 438. Algorithms. 3 Credits.

Algorithm analysis techniques, worse-case analysis, greedy algorithms, divide and conquer algorithms, dynamic programming algorithms, branch-and-bound, and NP-completeness. Students will design algorithms, prove them correct, implement them, and then verify their implementation. Fall. Prerequisites: CMPT 102 or CMPE 202 or EECE 202 and CMPT 335.

CMPT 439. Numerical Computation. 3 Credits.

Selected topics in computation, such as: solution of non-linear equations, Monte Carlo simulation, polynomial approximation, least squares curve fitting, numerical integration and differentiation, and numerical solution of ordinary differential equations. Prerequisite: CMPT 102 or CMPE 202 or EECE 202 and MATH 104 or MATH 186.

CMPT 443. Computability Theory. 3 Credits.

Turing-computable functions, and their relationship to recursive functions. Formal languages, regularity, finite and push-down automata and their simulation. Universality of programs and Turing machines. Unsolvability and an introduction to the theory of computational complexity. Fall. Prerequisite: CMPT 335 or MATH 213 or MATH 243.

CMPT 454. Compiler Design. 3 Credits.

Introduction to automata and context-free grammars. Basic techniques of parsing and derivations. Generators, symbol tables, syntax-directed translation. Error detection, optimization, and data-flow analysis. Spring. Prerequisite: Permission of the instructor.

CMPT 456. Software Engineering. 3 Credits.

A study of the principles and methods advocated for the development of large and complex software systems. Each student will be required to participate in a team project devoted to the specification, design and implementation of a sizable software system. Spring. Prerequisite: CMPT 335 or CMPT 360 or permission of instructor.

CMPT 463. Topics in Computer Science. 3 Credits.

Admission only by permission of the Chair of the Department. This course is offered when demand warrants.

CMPT 464. Topics in Computer Science. 3 Credits.

Admission only by permission of the Chair of the Department. This course is offered when demand warrants.

CMPT 467. Special Topic: Networks. 3 Credits.

Admission by permission of the Chair of the Department. This course is offered when demand warrants.

CMPT 468. Topics in Computer Science. 3 Credits.

Admission by permission of the Chair of the Department. This course is offered when demand warrants.

CMPT 469. Independent Study. 3 Credits.

Individual study and/or research under faculty supervision.

CMPT 475. Internship for Seniors. 3 Credits.

Students participate in an off-campus training experience closely related to their area of computer science. Frequent meetings with the advisor plus a paper are required. Prerequisites: Senior status, 3.0 GPA, and permission of the student's advisor or the Chair.

Back To Top