Below you can find a few examples of potential course plans. Note that students can easily switch between part-time and full-time registration each semester based on how many courses they take. Enrollment in the summer semester is optional.


MCIT Online
Sample 20 Month Plan

*Enrollment in 1-2 courses per semester is considered part-time.

Semester 1 – Fall

CIT 591 Introduction to Software Development

This course is an introduction to fundamental concepts of programming and computer science for students who have little or no experience in these areas. Students learn how to read and write to files, connect to databases, and use regular expressions to parse text. This course includes substantial programming assignments in both Python and Java, and teaches techniques for test-driven development and debugging code.

View Full Course Description

CIT 591 Introduction to Software Development

Course Offerings
  • Fall 2021 Brandon Krakowsky
  • Spring 2022 Brandon Krakowsky
  • Summer 2022 Not Offered
Course Creators
  • Brandon Krakowsky
No Pre-Requisites
Course Description

This course is an introduction to fundamental concepts of programming and computer science for students who have little or no experience in these areas. Includes an introduction to programming using Python, where students are introduced to core programming concepts like data structures, conditionals, loops, variables, and functions. Also provides an introduction to basic data science techniques using Python. The second half of this course is an introduction to object-oriented programming using Java, where students are introduced to polymorphism, inheritance, abstract classes, interfaces, and advanced data structures. Students will also learn how to read and write to files, connect to databases, and use regular expressions to parse text. This course includes substantial programming assignments in both Python and Java, and teaches techniques for test-driven development and debugging code.

CIT 592 Mathematical Foundations of Computer Science

This course introduces students to math concepts that form the backbone of the majority of computer science. Topics covered include sets, functions, permutations and combinations, discrete probability, expectation, mathematical induction, and graph theory. The goal of the course is to ensure that students are comfortable enough with the math required for most of the CIS electives.

View Full Course Description

CIT 592 Mathematical Foundations of Computer Science

Course Offerings
  • Fall 2021 Val Tannen
  • Spring 2022 Val Tannen
  • Summer 2022 Val Tannen
Course Creators
  • Val Tannen
No Pre-Requisites
Course Description

This course introduces students to math concepts that form the backbone of the majority of computer science. Topics covered include sets, functions, permutations and combinations, discrete probability, expectation, mathematical induction, and graph theory. The goal of the course is to ensure that students are comfortable enough with the math required for most of the CIS electives.

Semester 2 – Spring

CIT 593 Introduction to Computer Systems

This course provides an introduction to fundamental concepts of computer systems and computer architecture. Students learn the C programming language and an instruction set (machine language) as a basis for understanding how computers represent data, process information, and execute programs.

View Full Course Description

CIT 593 Introduction to Computer Systems

Course Offerings
  • Fall 2021 Tom Farmer
  • Spring 2022 Tom Farmer
  • Summer 2022 Tom Farmer
Course Creators
  • Tom Farmer
Pre-Requisites

This course does not have prerequisites, but CIT 591 is a co-requisite.

Course Description

This course provides an introduction to fundamental concepts of computer systems and computer architecture. Students learn the C programming language and an instruction set (machine language) as a basis for understanding how computers represent data, process information, and execute programs.

CIT 594 Data Structures & Software Design

This course focuses on data structures, software design, and advanced Java. The course starts off with an introduction to data structures and basics of the analysis of algorithms. Important data structures covered include arrays, lists, stacks, queues, trees, hash maps, and graphs. The course also focuses on software design and advanced Java topics such as software architectures, design patterns, and concurrency.

View Full Course Description

CIT 594 Data Structures & Software Design

Course Offerings
  • Fall 2021 Raphael Rubin
  • Spring 2022 Raphael Rubin
  • Summer 2022
Course Creators
  • Raphael Rubin
Pre-Requisites

Students in this course are expected to have completed or waived CIT 591.

Course Description

This course focuses on data structures, software design, and advanced Java. The course starts off with an introduction to data structures and basics of the analysis of algorithms. Important data structures covered include arrays, lists, stacks, queues, trees, hash maps, and graphs. The course also focuses on software design and advanced Java topics such as software architectures, design patterns, and concurrency.

Semester 3 – Summer

CIT 595 Computer Systems Programming

This course is a continuation of CIT 593 and introduces students to fundamental concepts in computing systems. The course will use the C program language, and will develop your knowledge on C system calls, and libraries for process/thread creation and manipulation, synchronization, and network communication.

View Full Course Description

CIT 595 Computer Systems Programming

Pre-Requisites

CIT 593

Course Description

This course is a continuation of CIT 593 and introduces students to fundamental concepts in computing systems. The course is divided into two parts. The first half of the course introduces important concepts in modern operating systems: processes, scheduling, caching, and virtual memory. The second half of the course provides an introduction to fundamental concepts in the design and implementation of networked systems, their protocols, and applications. The course will use the C program language, and will develop your knowledge on C system calls, and libraries for process/thread creation and manipulation, synchronization, and network communication.

CIT 596 Algorithms & Computation

This course focuses primarily on the design and analysis of algorithms. It begins with sorting and searching algorithms and then investigates graph algorithms. In order to study graph algorithms, general algorithm design patterns like dynamic programming and greedy algorithms are introduced. A section of this course is also devoted to understanding NP-Completeness.

View Full Course Description

CIT 596 Algorithms & Computation

Course Offerings
  • Fall 2021 Sampath Kannan
  • Spring 2022 Not Offered
  • Summer 2022 Not Offered
Course Creators
  • Sampath Kannan
Pre-Requisites

CIT 592 | Co-requisite: CIT 594 (Taking concurrently is allowed but taking beforehand is preferred)

Course Description

This course focuses primarily on the design and analysis of algorithms. It begins with sorting and searching algorithms and then investigates graph algorithms. In order to study graph algorithms, general algorithm design patterns like dynamic programming and greedy algorithms are introduced. A section of this course is also devoted to understanding NP-Completeness.

Semester 4 – Fall

Elective 1
Elective 2

Semester 5 – Spring

Elective 3
Elective 4


MCIT Online
Sample 16 Month Plan

*Enrollment in 3-4 courses is considered full-time.

Semester 1 – Fall

CIT 591 Introduction to Software Development

This course is an introduction to fundamental concepts of programming and computer science for students who have little or no experience in these areas. Students learn how to read and write to files, connect to databases, and use regular expressions to parse text. This course includes substantial programming assignments in both Python and Java, and teaches techniques for test-driven development and debugging code.

View Full Course Description

CIT 591 Introduction to Software Development

Course Offerings
  • Fall 2021 Brandon Krakowsky
  • Spring 2022 Brandon Krakowsky
  • Summer 2022 Not Offered
Course Creators
  • Brandon Krakowsky
No Pre-Requisites
Course Description

This course is an introduction to fundamental concepts of programming and computer science for students who have little or no experience in these areas. Includes an introduction to programming using Python, where students are introduced to core programming concepts like data structures, conditionals, loops, variables, and functions. Also provides an introduction to basic data science techniques using Python. The second half of this course is an introduction to object-oriented programming using Java, where students are introduced to polymorphism, inheritance, abstract classes, interfaces, and advanced data structures. Students will also learn how to read and write to files, connect to databases, and use regular expressions to parse text. This course includes substantial programming assignments in both Python and Java, and teaches techniques for test-driven development and debugging code.

CIT 592 Mathematical Foundations of Computer Science

This course introduces students to math concepts that form the backbone of the majority of computer science. Topics covered include sets, functions, permutations and combinations, discrete probability, expectation, mathematical induction, and graph theory. The goal of the course is to ensure that students are comfortable enough with the math required for most of the CIS electives.

View Full Course Description

CIT 592 Mathematical Foundations of Computer Science

Course Offerings
  • Fall 2021 Val Tannen
  • Spring 2022 Val Tannen
  • Summer 2022 Val Tannen
Course Creators
  • Val Tannen
No Pre-Requisites
Course Description

This course introduces students to math concepts that form the backbone of the majority of computer science. Topics covered include sets, functions, permutations and combinations, discrete probability, expectation, mathematical induction, and graph theory. The goal of the course is to ensure that students are comfortable enough with the math required for most of the CIS electives.

CIT 593 Introduction to Computer Systems

This course provides an introduction to fundamental concepts of computer systems and computer architecture. Students learn the C programming language and an instruction set (machine language) as a basis for understanding how computers represent data, process information, and execute programs.

View Full Course Description

CIT 593 Introduction to Computer Systems

Course Offerings
  • Fall 2021 Tom Farmer
  • Spring 2022 Tom Farmer
  • Summer 2022 Tom Farmer
Course Creators
  • Tom Farmer
Pre-Requisites

This course does not have prerequisites, but CIT 591 is a co-requisite.

Course Description

This course provides an introduction to fundamental concepts of computer systems and computer architecture. Students learn the C programming language and an instruction set (machine language) as a basis for understanding how computers represent data, process information, and execute programs.

Semester 2 – Spring

CIT 594 Data Structures & Software Design

This course focuses on data structures, software design, and advanced Java. The course starts off with an introduction to data structures and basics of the analysis of algorithms. Important data structures covered include arrays, lists, stacks, queues, trees, hash maps, and graphs. The course also focuses on software design and advanced Java topics such as software architectures, design patterns, and concurrency.

View Full Course Description

CIT 594 Data Structures & Software Design

Course Offerings
  • Fall 2021 Raphael Rubin
  • Spring 2022 Raphael Rubin
  • Summer 2022
Course Creators
  • Raphael Rubin
Pre-Requisites

Students in this course are expected to have completed or waived CIT 591.

Course Description

This course focuses on data structures, software design, and advanced Java. The course starts off with an introduction to data structures and basics of the analysis of algorithms. Important data structures covered include arrays, lists, stacks, queues, trees, hash maps, and graphs. The course also focuses on software design and advanced Java topics such as software architectures, design patterns, and concurrency.

CIT 595 Computer Systems Programming

This course is a continuation of CIT 593 and introduces students to fundamental concepts in computing systems. The course will use the C program language, and will develop your knowledge on C system calls, and libraries for process/thread creation and manipulation, synchronization, and network communication.

View Full Course Description

CIT 595 Computer Systems Programming

Pre-Requisites

CIT 593

Course Description

This course is a continuation of CIT 593 and introduces students to fundamental concepts in computing systems. The course is divided into two parts. The first half of the course introduces important concepts in modern operating systems: processes, scheduling, caching, and virtual memory. The second half of the course provides an introduction to fundamental concepts in the design and implementation of networked systems, their protocols, and applications. The course will use the C program language, and will develop your knowledge on C system calls, and libraries for process/thread creation and manipulation, synchronization, and network communication.

CIT 596 Algorithms & Computation

This course focuses primarily on the design and analysis of algorithms. It begins with sorting and searching algorithms and then investigates graph algorithms. In order to study graph algorithms, general algorithm design patterns like dynamic programming and greedy algorithms are introduced. A section of this course is also devoted to understanding NP-Completeness.

View Full Course Description

CIT 596 Algorithms & Computation

Course Offerings
  • Fall 2021 Sampath Kannan
  • Spring 2022 Not Offered
  • Summer 2022 Not Offered
Course Creators
  • Sampath Kannan
Pre-Requisites

CIT 592 | Co-requisite: CIT 594 (Taking concurrently is allowed but taking beforehand is preferred)

Course Description

This course focuses primarily on the design and analysis of algorithms. It begins with sorting and searching algorithms and then investigates graph algorithms. In order to study graph algorithms, general algorithm design patterns like dynamic programming and greedy algorithms are introduced. A section of this course is also devoted to understanding NP-Completeness.

Semester 3 – Summer

Elective 1
Elective 2

Semester 4 – Fall

Elective 3
Elective 4


Sample Enrollment Timelines

# of
Semesters
12345678910
Part-time
minimum
course load
1 CU1 CU1 CU1 CU1 CU1 CU1 CU1 CU1 CU1 CU
Part-time
maximum
course load
2 CU 2 CU 2 CU 2 CU 2 CU
Full-time
minimum
course load
3 CU3 CU3 CU1 CU*
Full-time
maximum
course load
3 CU 3 CU 4 CU
CU: Course Unit. | *part-time