Orientation 2022

Programming Sessions

Welcome to CMU!


P-Session Meeting Times

 09:40-10:40am, Sections 1, 2, 3, 4
 10:50-11:50am, Sections 5, 6, 7, 8

Room Numbers are Posted on Canvas

 Essential Links

 Java Programming
 Online Java Documentation
 The Java Tutorials


Instructors and IT Help

Emmanuel Ndashimye
Instructor, Sections 1 & 5
Jema David Ndibwile
Instructor, Sections 3 & 7
  CMU-Africa IT Help
Send an email to open a ticket
Eric Umuhoza
Instructor, Sections 2 & 6
Pelin Mutanguha
Instructor, Sections 4 & 8
Cathy Bishop
Course Designer

Course Schedule and Expectations

The Programming part (P-Sessions) of Orientation is using a flipped-classroom model. This means you have pre-recorded videos to watch, and practice along with. They are due before the scheduled corresponding P-Session.

Please note that completing Orientation is a pre-requisite for starting the Fall semeseter. We will monitor which students are not watching the videos on time; if this becomes a regular occurrence you will be encouraged to defer starting at CMU-Africa until you have the bandwidth to be successful. After being warned, if you do not catch up, and keep up with the required prep, you will be considered as not completing Orientation and will not be allowed to start the Fall 2023 Semester.

For each session (called P1, P2, P3, ...), you are expected to spend about 2 hours watching the course videos, 2 hours preparing for the meeting and working on your assignments in structured OH /Study time, and 1 hour of additional asynchronous work time, on your own schedule. For each session, you will generally meet in the classroom for 1 hour. This comes out to roughly 5 hours of prep and homework time per P-Session and this is the expected time you should spend in order to successfully complete the Programming part of Orientation and be ready for the next meeting. Note this is a total of 6 hours per day on Programming and you will spend another 2-3 hours per day on Academic Skills.

This work-load may be heavier than you are accustomed to, but it is designed to help you prepare for the standard work-load once the Fall semester starts.

In general, programming assignments will be due in the morning before live sessions start, by 8:00 am. We do not accept any late work, so be sure to submit what you have ON TIME!

READ THIS AGAIN: Late work is NOT accepted, so be sure to submit what you have ON TIME!

Note: We will make available more work than you can finish in your allotted time; this is your opportunity to practice your study and time-management skills.

The schedule will be adjusted as necessary as we progress through the material. We will post a tentative schedule, but it will be adjusted as we go, depending on how much of the programming we complete during the programming sessions.

Our overall goal is to cover problem solving and introduce coding techniques that you will use throughout your time here at CMU. We plan to cover Linux for about half the time and then cover Java and OOP the other half of the time. The programming sessions during Orientation are designed to be fun and challenging and to prepare you for the programming start of the semester:

Week 1

P0 (setup)

With IT, on your own, and optional Programming TA office hours (OH) for support.

Assignments Notes
  • Install and set up Linux.
  • Make sure you can open a command-line prompt on your machine.
  • Get setup with Canvas.
  • Complete your first Piazza task (as soon as you can access Piazza).
Get laptops setup:

  1. Install and set up the Linux subsystem for Windows using Ubuntu from the Microsoft app store.

  2. Access the Orientation class on Canvas:

  3. Checkout Piazza (through Canvas).

  4. Install and setup Zoom:

  5. Setup EdPuzzle (done through Canvas).

  6. We HIGHLY recommend using Firefox as your browser; certain features are only supported by this browser: Download Firefox

  7. Install and set up KRISP noise-reducing software. You should receive an invitation, but if not, please contact IT support.

  8. Setup the CMU VPN:

  9. Setup Duo Mobile for 2-factor authorization:


P1 Thursday Assignments Topics
Tasks: Due before P1. See Canvas for due-times.
  • Make sure you are setup with a Linux command-prompt and can access the website, Piazza, and Canvas.
  • Watch P1 Videos.
Readings: Skim before watching the P2 Videos.
  • Read the Linux postings on Metacharacters (also called "file globbing"), Pipes and Redirection, Regular Expressions, and Regular Expression Examples.

Note: We will not meet Friday, August 5 as it is a holiday.

Week 2

P2 Monday Assignments Topics
Tasks: Due before P2, by 8:00am.
Readings: Skim before watching the P3 Videos.

P3 Tuesday Assignments Topics
Tasks: Due before P3, by 8:00am.
Readings: Due Monday by 8:00am at the latest.

P4 Wednesday Assignments Topics
Tasks: Due before P4, by 8:00am.
Readings: Due Monday by 8:00am at the latest.

P5 Thursday Assignments Topics
Tasks: Due before P5, by 8:00am.
  • Review HW3
  • Keep practicing your vi!
  • Look for Linux Quiz 1 to be posted - due tomorrow before 8:00!
  • Quotes

  • Note: In Data Analytics, there are 3 main steps in processing data:
    1. Clean the data
    2. Analyze the data
    3. Use the data to make decisions (or recommend decisions)

    When processing big data, i.e. data that can be too big to store (or too big to store in multiple formats), Linux is ideal. Ask about it on Piazza or in class and we can discuss why.

  • Guess the Correlation
Readings: Due before P6

P6 Friday Assignments Topics
Tasks: Due before P6 by 8:00am.
  • Linux Quiz 1 due.
By the end of the day.
  • Update your profile

Week 3

Topics: Finish Linux, Java

Note: We will not meet Monday, August 15 as it is a holiday.

P7 Tuesday Assignments Topics
Tasks: Due before P7 by 8:00am.

  • Finish Shell Scripts
  • Q&A from Quiz1 (may be via Piazza)

  • Start on HW6 Shell Scripts 2.

  • Learn about our online library to find your Java text book: "Java How to Program, 11/e (Early Objects)" by Deitel and Deitel

    Make sure each of you investigates, and you can help each other out and share instructions on Piazza. You need to be ready to start your reading assignments by the end of this week.

    Click on the O'Reilly for Higher Education link. When it asks you for your institution, select Other, then give it your CMU email address.

    Once you have the viewer up, click on the grey "next" at the top until you get to the Table of Contents to access the reading you need.

P8 Wednesday Assignments (due before class) Topics
  • No homeworks due.

On your own: Prepare to start Java programming in Week 3

  • Follow the "Before you Begin" session from your Java textbook to download, install, and set up the JDK (Version 8) and the Eclipse Java IDE in both your Windows and Linux environment.

  • Instructions are in your book, and you can find the latest online here: Before you Begin

    Do not use a later version of the SE/JDK (looks like 11 or 14), for Orientation - Java SE 8u261 is good for basic Java and will match your text book. We also use look at Applets a bit, which are not supported in later versions.

  • Remember your HW6 Shell Scripts 2 and Quiz 2 due dates - be sure to check Canvas!

  • Based on the Algorithms exercise ("Blowing Up a Balloon"), prepare the following documents (done individually):

    1. In a Word document called Algorithm1.doc, write up your algorithm from the in-class exercise. Remember to use the proper format for an algorithm.
    2. In a text file called story1 (using vi/vim), write a short story, of 150-200 words in length, on the additional topic used for the in-class Algorithm exercise.

    Check on Canvas to see when these are due: Algorithm 1, Story 1

  • Make sure you are ready to start full-time Java programming by tonight - talk to your TAs if you need assistance!
Readings: Due before P9.

  • Read Ch 1-3 of your Java book "Java How to Program, 11/e (Early Objects)" by Deitel and Deitel

P9 Thursday Assignments Topics

Tasks: Due Today by 8:00am

  • Quiz 2, HW6 Shell Scripts 2
  • Installed JDK in Linux and JDK and Eclipse in Windows.
  • Read Ch 1-3 of your Java book.

  • Final Linux Questions
  • Assign Java Terms 1 - listen during the next 2 lectures.

  • Start Java
    - Setup in command-line
    - Start HW7 Java Assignment 1.

  • Update your vi settings

  • Java Intro (Ch 1&2) - any questions?
  • By the end of today, make sure you can:

    1. use vi to write your code
    2. compile and run from a command-line prompt using javac, java, and appletviewer.

  • Testing Basics

Tasks: Due Tomorrow by 8:00am

  • Complete HW7 Java Assignment 1.
  • Write a test-plan for Program 3 in Java Programs. It should include at least 6 test cases; identify what kind of test case each one is (Bounds, Branch, or Error).
Tasks: Due Tomorrow by 6pm

P10 Friday Assignments Topics

Tasks: Due Today by 8:00am

Tasks: Due Today by 6pm
Tasks: Due tomorrow by 8:00am.
Readings: Due

Week 4

Topics: Java

P11 Mon Assignments Topics
Tasks: Due Today by 8:00am
Tasks: Due tomorrow
Readings: Due tomorrow

P12 Tue Assignments Topics
Tasks: Due Today by 8:00am
Tasks: Due Tomorrow by 8:00am

P13 Wed Assignments Topics
Tasks: Due Today by 8:00am

  • Control Statements (loops)
  • In class, work on Loops Practice (on paper - do NOT code it yet!) Finish by the end of the day.

  • Intro to Writing Methods (more in Ch 19, if you are interested now)
  • Advising for starting SE coursework - any questions?
Tasks: Due before P14 by 8:00am at the latest.

P14 Thu Assignments Topics
Tasks: Due Today by 8:00am
Tasks: Due Tomorrow by 8:00am
  • HW12 Programs 11-12 (MyTestScores and PlayArgs) in Java Programs

P15 Fri Still TBD Assignments Topics
Tasks: Due Today by 8:00am
  • HW12 Programs 11-12 (MyTestScores and PlayArgs) in Java Programs
Tasks: Due Today by noon (Before lunch)

  • During today's P-Sessions, you will meet individually with your Instructors/TAs

  • Be ready to show them your Linux and Java skills!

While you wait for your turn, work on the assignements due today, before lunch:

  1. Quiz3
  2. P15 Videos?? Class Design with Nouns & Verbs
  3. Pair up and work on Nouns and Verbs for HW13 BullsEye in Java Programs

Optional Challenge
If you want to try coding BullsEye (after a TA has approved your Nouns & Verbs)