Catalog
2018-19

Computer Science

 
Dr. Igor Aizenberg
Chair of the Department

The Computer Science degree combines depth in all aspects of modern Computer Science with traditions of a liberal arts education. The program includes programming in C++, object-oriented programming beginning with C++ and then Java, data structures and algorithms, discrete structures and fundamentals of discrete mathematics, systems programming with Linux, operating systems, databases, computer organization, numerical computation, software engineering and capstone project design, plus electives in programming languages (Python, Matlab, C#), artificial intelligence, cloud computing, artificial neural networks and machine learning, mobile computing, web programming, computer networks and security. The Department is in the process of development of new electives in mobile computing, cybersecurity and cryptography. 

The Department's Mission Statement is: The Computer Science Department strives for excellence in giving our students knowledge through comprehensive educational programs, research, dissemination through scholarly publications, and service to profession, the community, the state, and the nation.

Computer Science prepares students for work in a number of computer related fields and provides the opportunity to pursue an interdisciplinary minor.

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

There is a concentration area in Machine Learning and intelligence within a BS degree, which includes courses Neural Networks and Learning Systems, Artificial Intelligence and Data Mining. The Department is currently working on the development of a new concentration area in Cybersecurity.

The Department is opening a graduate program (MS) in Computer Science starting from Fall 2018. This program includes a 1 year BS-MS option for those students who got their BS degrees from Manhattan College. Staying only for one more year in the College and taking 24 more credits (8 courses or 6 courses and Master Thesis/Project) students may get their MS degree in Computer Science.

The Department is currently actively working on ABET accreditation of the BS Computer Science program and anticipate to apply for it in January 2019 and complete accreditation in 2020. 

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. Every year students present at the Manhattan College annual student research conference and publish at the Manhattan Scientist journal.

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 Science Curriculum leading to a Bachelor of Science degree or the Liberal Arts curriculum leading to a Bachelor of Arts degree.

BS in Computer Science

The Department has been working continuously on keeping its BS program in such a rapidly developing area as Computer Science up to date. Thus some changes, which are also important for ABET accreditation, were made recently.

Students entered in 2016 have to follow the following curriculum:

MATH 185Calculus I3
MATH 186Calculus II3
MATH 331Probability3
CMPT 101Computer Science I3
CMPT 102Computer Science II3
CMPT 238Data Structure & Algorithms3
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 Java3
CMPT 438Algorithms3
CMPT 456Software Engineering3
PHYS 101
PHYS 191
Physics I
and Physics I Lab
4
PHYS 102
PHYS 192
Physics II
and Physics II Lab
4
PHYS 221Physics of Digital Systems4
Approved Departmental Electives12
SCI 100Science Orientation Seminar1

Students entered in 2017 have to follow the following curriculum:

MATH 185Calculus I3
MATH 186Calculus II3
MATH 331Probability3
CMPT 101Computer Science I3
CMPT 102Computer Science II3
CMPT 238Data Structure & Algorithms3
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 Java3
CMPT 439Numerical Computation3
CMPT 456Software Engineering3
CMPT 490Capstone4
PHYS 101
PHYS 191
Physics I
and Physics I Lab
4
PHYS 102
PHYS 192
Physics II
and Physics II Lab
4
PHYS 221Physics of Digital Systems4
Approved Departmental Electives12
SCI 100Science Orientation Seminar1

Students entered in 2018 have to follow the new curriculum below:

MATH 185Calculus I3
MATH 186Calculus II3
MATH 491Topics in Mathematics3
CMPT 101Computer Science I3
CMPT 102Computer Science II3
CMPT 238Data Structure & Algorithms3
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 Java3
CMPT 439Numerical Computation3
CMPT 456Software Engineering3
CMPT 490Capstone4
PHYS 101
PHYS 191
Physics I
and Physics I Lab
4
PHYS 102
PHYS 192
Physics II
and Physics II Lab
4
PHYS 221Physics of Digital Systems4
Approved Departmental Electives15
SCI 100Science Orientation Seminar 1
SCI 101Science Orientation Seminar II1

BA in Computer Science

Students entered before 2018 must complete the following:

MATH 185Calculus I3
MATH 186Calculus II3
CMPT 101Computer Science I3
CMPT 102Computer Science II3
CMPT 238Data Structure & Algorithms3
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 Java3
CMPT 456Software Engineering3
Three SCI2xx courses9
SCI 100Science Orientation Seminar1
Approved departmental electives12

Students entered in 2018 have to follow the new curriculum below:

MATH 185Calculus I3
MATH 186Calculus II3
MATH 491Topics in Mathematics3
CMPT 101Computer Science I3
CMPT 102Computer Science II3
CMPT 238Data Structure & Algorithms3
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 Java3
CMPT 439Numerical Computation3
CMPT 456Software Engineering3
CMPT 490Capstone4
Three SCI2xx courses9
SCI 100Science Orientation Seminar1
SCI 101Science Orientation Seminar II1
Approved departmental electives12

 Minor in Computer Science

A student must receive a C or better in at least 15 credits. 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 201Computer Sci II for Eng.3
CMPT 238Data Structure & Algorithms3
Two of the following six courses are required:
CMPT 258Database Systems I3
CMPT 312Operating Systems3
CMPT 353Systems Programming3
CMPT 360Object Oriented Design with Java3
CMPT 438Algorithms3
CMPT 439Numerical Computation3
CMPT 456Software Engineering3
ELECTIVES: One other course at the 200-400 level, not including CMPT 155 or CMPT 214.3

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

The following three courses are required:
CMPT 101Computer Science I3
CMPT 102Computer Science II3
CMPT 238Data Structure & Algorithms3
A least one course from the following list:
CMPT 258Database Systems I3
CMPT 312Operating Systems3
CMPT 334Computer Organization3
CMPT 353Systems Programming3
CMPT 360Object Oriented Design with Java3
CMPT 438Algorithms3
CMPT 439Numerical Computation3
CMPT 456Software Engineering3
Electives: One other course at the 200-400 level, not including CMPT 155 or CMPT 214.

PLAN OF STUDY

Bachelor of Science in Computer Science

Students entered in 2016 should follow the following plan of study:

First Year
FallCreditsSpringCredits
CMPT 1013CMPT 1023
MATH 1853MATH 1863
SCI 1001MLL*3
MLL*3ENGL 1103
RELS 1103Social Science3
LLRN 1023 
 16 15
Second Year
FallCreditsSpringCredits
CMPT 2383CMPT 3603
CMPT 2583CMPT Elective**3
CMPT 3353PHYS 102
PHYS 192
4
PHYS 101
PHYS 191
4Social Science3
PHIL 1503ENGL 1503
 16 16
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
Free Elective3 
Free Elective3 
 15 15
Total Credits: 124

Students entered in 2017 should follow the following plan of study:

First Year
FallCreditsSpringCredits
CMPT 1013CMPT 1023
MATH 1853CMPT 3353
SCI 1001MATH 1863
MLL*3MLL*3
RELS 1103ENGL 1103
LLRN 1023 
 16 15
Second Year
FallCreditsSpringCredits
CMPT 2383CMPT 3603
CMPT 2583CMPT Elective**3
MATH 3313PHYS 102
PHYS 192
4
PHYS 101
PHYS 191
4Social Science3
PHIL 1503ENGL 1503
 16 16
Third Year
FallCreditsSpringCredits
EECE 2293CMPT 3123
CMPT 3533CMPT 3343
CMPT 4393PHYS 2214
RELS Catholic Studies3CMPT Elective3
HIST 1503MUSC 150 or ART 1503
 15 16
Fourth Year
FallCreditsSpringCredits
CMPT 4563CMPT 4904
CMPT Electives3CMPT Electives3
RELS Global/Contemporary3Free Electives9
Free Elective3 
Social science3 
 15 16
Total Credits: 125

Students entered in 2018 should follow the following plan of study:

First Year
FallCreditsSpringCredits
CMPT 1013CMPT 1023
MATH 1853CMPT 3353
SCI 1001MATH 1863
MLL*3MLL*3
RELS 1103ENGL 1103
LLRN 1023SCI 1011
 16 16
Second Year
FallCreditsSpringCredits
CMPT 2383CMPT 3603
CMPT 2583CMPT Elective**3
PHYS 101
PHYS 191
4PHYS 102
PHYS 192
4
MATH 4913Social Science3
PHIL 1503ENGL 1503
 16 16
Third Year
FallCreditsSpringCredits
EECE 2293CMPT 3123
CMPT 3533CMPT 3343
CMPT 4393PHYS 2214
RELS Catholic Studies3CMPT Elective3
HIST 1503MUSC 150 or ART 1503
 15 16
Fourth Year
FallCreditsSpringCredits
CMPT 4563CMPT 4904
CMPT Electives3CMPT Electives6
RELS Global/Contemporary3Free Electives6
Free Elective3 
Social science3 
 15 16
Total Credits: 126

Bachelor of Arts in Computer Science

Students entered before 2018 should follow the following plan of study:

First Year
FallCreditsSpringCredits
CMPT 1013CMPT 1023
MATH 1853CMPT 3353
MLL*3MATH 1863
RELS 1103MLL*3
LLRN 1023ENGL 1103
SCI 1001 
 16 15
Second Year
FallCreditsSpringCredits
CMPT 2383CMPT 3603
CMPT 2583CMPT Elective**3
SCI 2xx***3SCI 2xx***3
PHIL 1503ENGL 1503
Social Science3Social Science3
 15 15
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
Free Electives9Free Electives9
 15 15
Total Credits: 121

Students entered in 2018 should follow the following plan of study:

First Year
FallCreditsSpringCredits
CMPT 1013CMPT 1023
MATH 1853CMPT 3353
SCI 1001MATH 1863
MLL*3MLL*3
RELS 1103ENGL 1103
LLRN 1023SCI 1011
 16 16
Second Year
FallCreditsSpringCredits
CMPT 2383CMPT 3603
CMPT 2583CMPT Elective**3
MATH 4913SCI 2xx***3
SCI 2xx***3ENGL 1503
PHIL 1503Social Science3
 15 15
Third Year
FallCreditsSpringCredits
EECE 2293CMPT 3123
CMPT 3533CMPT 3343
CMPT 4393RELS Catholic Studies3
SCI 2xx***3MUSC 150 or ART 1503
HIST 1503CMPT Elective3
 15 15
Fourth Year
FallCreditsSpringCredits
CMPT 4563CMPT 4904
CMPT Elective3RELS Global/Contemporary3
Free Electives6CMPT Elective3
Social Science3Free Electives6
 15 16
Total Credits: 123

Courses

CMPT 101. Computer Science I. 3 Credits.

An introduction to basic programming concepts and problem solving skills using the C++ language. Topics include flow of control, loops, functions, arrays, strings and files. CMPT 101 cannot be taken after CMPT 102.

CMPT 102. Computer Science II. 3 Credits.

An introduction to advance programming concepts using the C++ language. Topics include pointers, structured data, classes, inheritance, poloymorphism, exceptions, templates, and recursion. Prerequisite: A grade of C or better in CMPT 101.

CMPT 121. 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.

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 electronic spreadsheets and other dedicated software for research: worksheet basics, formulas and functions, charts and graphics, passing data sets between applications; computer representatons of growth and decay models, linear, exponential and logarithmic regression; statistical functions and probability distributions, matrices.

CMPT 201. Computer Sci II for Eng.. 3 Credits.

An introduction to programming and problem solving skills using C++ language. Topics include flow of control, loops, functions, arrays, strings, files, pointers, structured data, recursion, classes, inheritance, and polymorphism. Prerequisite: A grade of C or better in ENGS 116 or permission of the instructor.

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

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

CMPT 238. Data Structure & Algorithms. 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: A grade of C or better in CMPT 102 or CMPT 201.

CMPT 241. Web Programming. 3 Credits.

An introduction to Web programming using HTML, CSS and Javascript for development of Web-based applications. Current server-side scripting languages such as PHP will be used for creating dynamic Web pages. Spring. Prerequisite: A grade of C or better in CMPT 102 or CMPT 201 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: A grade of C or better in CMPT 102 or CMPT 201 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: A grade of C or better in CMPT 353 or permission of the instructor.

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. Spring. Prerequisite: A grade of C or better in EECE 229 or permission of the instructor.

CMPT 335. Discrete Structures. 3 Credits.

A study of concepts and fundamentals of propositional logic, logic of predicates, sets and set operations, mathematical induction, modular arithmetic, relations, coding theory and encryption. Detailed consideration of structures most frequently encountered in computer science: graphs, trees, and operations on them. Spring (and Fall if needed). Prerequisite: A grade of C or better in CMPT 101 or CMPT 201.

CMPT 336. Simulation and Modeling. 3 Credits.

Probability distributions, mathematical models, simulation of queuing systems, Markov chains. Prerequisite: A grade of C or better in CMPT 102 or CMPT 201 and MATH 186.

CMPT 341. Programming Languages. 3 Credits.

Study of modern programming languages different from C++ and Java (Python and C# or other popular modern programming languages can be covered). Study of language specification and analysis, control structures and data flow. Prerequisites: A grade of C or better in CMPT-102 or CMPT-201.

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: A grade C or better in CMPT 102 or CMPT 201 and CMPT 238.

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: A grade of C or better in CMPT 258.

CMPT 360. Object Oriented Design with Java. 3 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: A grade C or better in CMPT 102 or CMPT 201.

CMPT 363. Data Mining. 3 Credits.

This course focuses on fundamental data mining algorithms and their applications in the process of knowledge discovery. The course will cover the general aspects and techniques of analyzing large, complex datasets, recognizing patterns and making predictions. The R programming language will also be introduced and used for hands-on experimentation with data mining algorithms. Cross-listed with CMPG-763 Data Mining.

CMPT 364. Cloud Computing and Virtualization. 3 Credits.

This course offers an in-depth study of Cloud Computing and its underlying technologies, specifically Virtualization. Areas of discussion include the internal architecture of clouds, the architecture and structure of Virtual Machines, and cloud management, security, and optimizations. The course also covers Linux Containers and their features. The course supplements all the topics with tracing actual software code (Xen, KVM, QEMU, VirtualBox), study of the latest related research publications, and hands-on experience with the relevant technologies (AWS, Live Migration, Nested Virtualization). Cross-listed with CMPT-464 Cloud Computing and Virtualization.

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. Prerequisite: A grade of C or better in CMPT 238.

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. Spring. Prerequisite: A grade of C or better in CMPT 102 or CMPT 201 or permission of the instructor. Cross-listed wit CMPG-720 Artificial Intelligence.

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 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: A grade of C or better in CMPT 102 or CMPT 201 and CMPT 238 and CMPT 335.

CMPT 439. Numerical Computation. 3 Credits.

Numerical techniques, types of errors, and accuracy of numerical solutions. Introduction to MATLAB. Solution of non-linear equations. Solution of systems of linear algebraic equations. Interpolation. Polynomial approximation. Numerical integration and differentiation. Nonlinear optimization. Students will learn numerical methods, utilize them in software, and then use this software for solving practical problems. Fall. Prerequisite: A grade of C or better in CMPT 102 or CMPT 201 and 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: A grade of C or better in CMPT 335 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. Admission by permission of the Chair of the Department. This course is offered when demand warrants. 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: A grade of C or better in CMPT 335 or CMPT 360.

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. Cross-listed with CMPG-756 Software Engineering.

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 465. Neural Networks and Learning Systems. 3 Credits.

This course provides the basic concepts of neural networks and other learning techniques including but not limited to: biological foundations of neural networks, basics of neural information processing, an artificial neuron and its activation function, multilayer feedforward neural networks and backpropagation learning, deep learning, Hopfield neural networks and associative memories, recurrent neural networks, support vector machines, validation of learning results, and clustering. Laboratory exercises provide experience with design and utilization neural and other machine learning algorithms and solving real-world classification, prediction, pattern recognition and intelligent data analysis problems. A course project will help students to develop their team-working skills and get a good experience in software project design. Cross-listed with CMPG-465 Neural Networks and Learning Systems.

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.

CMPT 490. Capstone. 4 Credits.

The aim of the capstone project in the senior year of Computer Science majors is to familiarize them with the process of solving real-world computational problems as practiced in industry. This course requires students to develop a project based on the knowledge and skills acquired in earlier coursework and integrate their knowledge and skills as a practical design effort. The work should be typically performed as a team project. Spring. Prerequisite: a grade of C or better in CMPT 360 or CMPT 456 or permission of the Department Chair.

Back To Top