Skip to main content

MSCS Ready: MS in Computer Science Readiness Sequence

A year-long Readiness Sequence of six instructional modules is available to prepare those without undergraduate computer science degrees to enter the Master's of Computer Science program at Clemson in Fall 2021. The sequence will be based out of the Clemson University International Center for Automotive Research (CU-ICAR) campus in Greenville, but will also be available to students on the main and Charleston campuses who are part of the readiness program. Completion of this sequence will prepare you to begin the Master's program in Fall 2021. Students interested in joining MSCS Ready should contact Eileen Kraemer (etkraem@clemson.edu).

Please note that these modules are not available to students already enrolled in a CIS or CPSC degree program at Clemson.

Format

  • Accelerated, supportive delivery of core computer science material
  • Emphasis on hands-on learning
  • Hybrid of online and in-person course delivery (in-person can be replaced by synchronous remote, as needed)
  • Six 2-credit-hour modules, each delivered in a half-semester format (7 weeks of 4 contact hours (1.5/1.5/1), followed by 1 exam week)
  • Example schedule
    • Weekly - 1 hour of asynchronous online instruction
    • Wednesday - 1.5 hours of in-person or synchronous remote studio
    • Thursday - 1.5 hours of online instruction (synchronous remote, recorded)

Modules

For the initial readiness sequence for Fall 2020 through Summer 2021, these modules will be offered under the course number CPSC 6810.

CS Readiness Sequence Semester Flow

Fall 1, 2020 - Module 1 - Procedural Programming

This course focuses on software development fundamentals: the software development process including the design and simple analysis of algorithms, fundamental programming concepts and data structures and basic software development and tools.

  • Programming language and environment: C and Unix
  • Credit hours: 2
  • Pre-requisites: None

Fall 2, 2020 - Module 2 - Object-Oriented Programming

This course focuses on object-oriented programming: classes and objects, information hiding and encapsulation, inheritance, and polymorphism. Continued emphasis on problem solving and program development technique for typical numerical, nonnumerical, and data processing problems. Introduces basic data structures, use of recursion, and file i/o, simple searching and sorting.

  • Programming language and environment: C and C++; Unix/Linux
  • Credit hours: 2
  • Pre-requisite: Module 1 (Procedural programming) or equivalent

Spring 1, 2021 - Module 3 - Discrete Structures

This course introduces ideas and techniques from discrete structures that are widely used in the computing sciences. Topics include finite state machines; regular expressions; functions, relations and sets; symbolic logic; proof techniques; counting arguments (sum and product rules, inclusion-exclusion principle; arithmetic/geometric progressions); pigeonhole principle; computation of combinations and permutations; the computer as state machine.

  • Programming language and environment: N/A
  • Credit hours: 2
  • Pre-requisite: A college-level mathematics course

Spring 2, 2020 - Module 4 - Algorithms and Data Structures

This course addresses the study of data structures and algorithms fundamental to computer science; abstract data-type concepts; data structures including lists, stacks, queues, trees, hashtables and graphs; measures of program running time and time complexity; algorithm analysis and design techniques.

  • Programming language and environment: C and C++; Unix/Linux
  • Credit hours: 2
  • Pre-requisites: Module 2 (Object-oriented programming)  and Module 3 (Discrete structures) or their equivalents

Summer 1, 2021 - Module 5 - Computer Organization

This course focuses on the building blocks and structure of computers, networks and the internet. Topics include machine representation of different types of data, how instructions are represented at both the machine level and in the context of a symbolic assembler, the principles of memory management and memory hierarchy, and how computer programs organize memory. Students will write simple programs at the assembly/machine level and will be able to describe basic properties of system performance.

  • Programming language and environment: C, ARM assembly language; Unix/Linux
  • Credit hours: 2
  • Pre-requisite: Module 1 (Procedural programming)

Summer 2, 2021 - Module 6 - Operating Systems

This course focuses on management techniques for the control of computer hardware resources. Topics include interrupt processing, primitive level characteristics of hardware and the management of memory, processors, devices, and data. Students who complete this course will be able to describe the basic components of a computer operating system, discuss the impact of the process-scheduling algorithm used by an operating system, use synchronization services provided by an operating system to implement a multithreaded application program, and discuss the issues involved in virtual memory support in a modern computer system.

  • Programming language and environment: C, C++; Unix/Linux
  • Credit hours: 2
  • Pre-requisites: Module 4 (Data structures and Algorithms) and Module 5 (Computer organization) or their equivalents