o Orientation 2018
Orientation 2018

Programming Sessions

Welcome to CMU!


Jump to This Week
- Instructors  Cathy Bishop and Edwin Kairu
 bishop@africa.cmu.edu   ekairu@alumni.cmu.edu
-  Essential Links

 Linux
 Unix/Linux Commands (from O'Reilly)

 Java Programming
 Online Java Documentation
 The Java Tutorials

Meeting Times

 Chi/Pi Groups:
 Alternating days, 09:30-12:20 or 01:30-4:20
 5th floor Auditorium


Design Notes





 

TAs (Please talk to us, that's what we're paid for!)

 Distinquished TA: Papias Niyigena

    Phone: +250788548000
    Email: papiasni@yahoo.fr

 Petero Niyodusenga

    Phone: +250788489758
    Email: niyodusenga@gmail.com
    Skype: petrus.niyodusenga

 Jeannette Mukamana

    Phone: +250785115074
    Email: jmukamana@africa.cmu.edu

 Pascal Ntuyahaga

    Phone: +250783524524
    Email: pntuyahga@gmail.com

 Bernard Dushimimana

    Phone: +250782769303
    Email: bdushimimana@africa.cmu.edu

 Aline Abimana

    Phone: +250782114417
    Email: aabimana@africa.cmu.edu

 Lenah Chacha

    Phone: +250 734 289 787
    Email: lchacha@africa.cmu.edu
    Skype: lenah.chacha

 Ihirwe Felicien

    Phone: +250784869098
    Email: ifelicien@africa.cmu.edu
    Skype: Ihirwe felicien

 Benjamin Munyoki

    Phone: +250783829890
    Email: bmunyoki@africa.cmu.edu
    Skype: benjamin.munyoki


Orientation 2018 Important Dates
Full 2018 Orientation Calendar

  • Friday, July 27 - First meeting
  • Every Friday - Toastmasters!
  • Weekend July 28 & 29 - Umuganda and Tour of New Campus
  • Friday, August 3 - Rwanda's National Harvest Day (Thanksgiving)
  • Weekend August 4 & 5 - Genocide Memorial visit and House Hunting
  • Wednesday, August 8 - Game Night!
  • Weekend August 11 & 2 - House Hunting and Bowling!
  • Wednesday, August 15 - Assumption Day/Outdoor Activity
  • Weekend August 18 & 19 - Sport Match & Karaoke!
  • Monday or Tuesday, August 20 or 21 - Eid al-Adha
  • Monday or Tuesday, August 20 or 21 - Last meeting
  • Monday or Tuesday, August 23 - Kick-off dinner


Course Schedule

You are expected to spend about 2 hours each night preparing for the next day's meeting in addition to your daily study time. Most likely you will be finishing up the coding projects we start during our meeting times, but some days you will also have specific tasks to finish in order to be ready for the next day.

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

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

Note: The schedule will be adjusted as necessary as we progress through the material. I will posted a tentative schedule, but it will be adjusted as we go, depending on how much of the programming we complete during our class meetings.

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 and Java, and perhaps a little MatLab, C/C++, JavaScript, or Python. The programming sessions during Orientation are designed to be fun and challenging and to prepare you for the programming start of the semester, either 04-330 Fundamentals of Software Development and Problem Solving (PFUN) or 18-641 Design Pattern for Smartphone Develipment (DPSD).


Week 0

Topics: Welcome to CMU-Africa, Laptops, and Setup Linux


Programming 1
13:40 - 15:20
Assignments Friday, July 27 (Day 1)
Tasks: Due Monday by 8:30am.
  • Install and setup Linux.
  • Make sure you can to 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
  • Access the Orientation Class on Canvas
  • If you access Canvas, Signup for Piazza using your africa email.
  • Access the course directly in Piazza

  • Install and setup the Linux subsystem for Windows using Ubuntu from the Microsoft app store.

    Instructions

Readings: Due Monday by 8:30am at the latest.

Read:



Week 1

Overview, Problem Solving, Linux


Programming 2
09:30 - 12:20 Pi
01:30 - 03:30 Chi
Assignments Monday, July 30 (Day 2)
Tasks: Due Today
  • Make sure you are setup with a Linux command-prompt and can access the website, Piazza, and Canvas.
Readings: Due Tomorrow by 8am at the latest.
  • Skim the Linux postings on Metacharacters (also called "file globbing"), Pipes and Redirection, Regular Expressions, and Regular Expression Examples.

Programming 3
09:30 - 12:20 Chi
01:30 - 03:30 Pi
Assignments Tuesday, July 31 (Day 3)
Tasks: Due Today by 8am.
Readings: Due Tomorrow by 8am at the latest.

Programming 4
09:30 - 12:20 Pi
01:30 - 03:30 Chi
Assignments Wednesday, August 1 (Day 4)
Tasks: Due Today by 8am.
Readings: Due Tomorrow by 8am at the latest.
  • Read the section on vi.

Programming 5
09:30 - 12:20 Chi
01:30 - 03:30 Pi
Assignments Thursday, August 2 (Day 5)
Today by the end of Study Time.
  • Update your profile
Tasks: Due Monday by 8am.
  • Practice Cmds. Turn it in via Canvas.
  • Practice vi. Download the file, use vi to update it, then turn it in via Canvas.
  • Linux Quiz 1. Turn in your paper copy by 8:00 am on Monday.
Readings: Due Monday by 8am at the latest.
Note: We will not meet Friday August 3, as it is a holiday. Enjoy your weekend outings!

Week 2

Problem Solving, Finish up Linux, Start Java


Programming 6
09:30 - 12:20 Pi
01:30 - 03:30 Chi
Assignments Monday, August 6 (Day 6)
Tasks: Due Today by 8am:
  • Practice Cmds. Turn it in via Canvas.
  • Practice vi. Download the file, use vi to update it, then turn it in via Canvas.
  • Linux Quiz 1. Turn in your paper copy by 8:00am to a TA. Find Benjamin Monday morning.

  • Make sure you have your datafile from Excel in your $HOME/data directory
  • Grade and review Quiz1
  • Shell Scripts
  • Fix the issue with your Excel data file.

    Note: In Data Analytics, there are 3 main steps in processing data:

    1. Clean the data
    2. Anaylyze 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 store in multiple formats), Linux is ideal. Ask about it in class and we can discuss why I am making this statement.

  • Guess the Correlation
Readings: Due Tomorrow by 8am at the latest.

Programming 7
09:30 - 12:20 Chi
01:30 - 03:30 Pi
Assignments (due before class) Tuesday, August 7 (Day 7)
Tasks: Due Today by 8am:

  • Quotes
  • More Shell Scripts
  • Algorithms
  • Get your Java book (no later than the end of Study Time).
  • You will use the same text book for 04-330 Fundamentals of Programming and Problem Solving, if you take it.

  • Tonight - read through the instructions on installing Java and the Eclipse Java.

  • Start the "Before You Begin" section by downloading the JDK (version 8):
  • Java How to Program, 10/e (Early Objects) by Deitel and Deitel
Tasks: Due Tomorrow by 8am at the latest.

  • Based on the in-class 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 an attached text file called story1 (using vim), write a short story, of 150-200 words in length, on the topic used for the in-class Algorithm exercise.

  • Work on Shell Scripts 2

  • Download the JDK version 8.

Programming 8
09:30 - 12:20 Chi
01:30 - 03:30 Pi
Assignments Wednesday, August 8 (Day 8)
Tasks: Due Today by 8am
  • Algorithm1.doc
  • story1

  • Finish Shell Scripts
  • Work on HW6 Shell Scripts 2, Due Friday.
  • Handout Linux Quiz 2, Due Friday. Please get it from Jeannette by 5pm today.

  • Prepare to Start Java

    • Follow the "Before you Begin" session from your Java textbook to download, install, and setup the JDK and the Eclipse IDE in both your Windows and Linux environment.

    • Instructions are in your hard-copy book, and you can find it here: Java How to Program, 10/e (Early Objects) by Deitel and Deitel

    • Finish installing the JDK and the Eclipse Java IDE by the end of Study time if you wish assistance from your TAs.

Tasks: Due Tomorrow by 8am

  • Finish setup for Java by installing the JDK and Eclipse.
Readings: Due Tomorrow by 8am at the latest.

  • Read Ch 1-3 of your Java book.
Tasks: Due Friday by 8am

Programming 9
09:30 - 12:20 Chi
01:30 - 03:30 Pi
Assignments Thursday, August 9 (Day 9)
Tasks: Due Today by 8am

  • Read Ch 1-3 of your Java book.
  • Finish setup for Java by installing the JDK and Eclipse.

  • Final Linux Questions
  • Computer Systems talk tonight - 18-600 Syllabus from Spring 2018.

  • Computer Systems 18-600 Slides from Professor John Shen.

  • Start Java - setup in command-line and Java Assignment 1
  • By the end of today, make sure you can

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

  • Update your vi settings

Tasks: Due Tomorrow by 8am

Tasks: Due Tomorrow by 6pm

Programming 10
09:30 - 12:20 Pi
01:30 - 03:30 Chi
Assignments Friday, August 10 (Day 10)
Tasks: Due Today by 8am Tasks: Due Today by 6pm
  • Java Terms 1 - spend 5 minutes during Study Time to finish up from your notes.
Tasks: Due Monday by 8am.
  • Write a test-plan for Program 3 in in Java Programs. It should include at least 6 test cases; identify what kind of test case each one is (Bounds, Branch, or Error).
  • Programs 3-5 in Java Programs
Readings: Due Monday by 8am at the latest.

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


Week 3

Java, Prepare for the start of the semester, A little C

Programming 11
09:30 - 12:20 Chi
01:30 - 03:30 Pi
Assignments Monday August 13 (Day 11)
Tasks: Due Today by 8am
Tasks: Due Tomorrow by 8am at the latest.

Make sure Eclipse is set up and running on your machine by the end of Study Time today.

  • Practice using Eclipse - set up your environment, try re-coding programs 3-5.
  • Download the bad files and use your debugger to fix them
Readings: Due Tomorrow by 8am at the latest.
  • Read Ch 4 & 5 (Control Statements Part I & II)

Programming 12
09:30 - 12:20 Pi
01:30 - 03:30 Chi
Assignments Tuesday, August 14 (Day 12)
Tasks: Due Today by 8am
Tasks: Due Thursday by 8am
Readings: Due Thursday by 8am at the latest.

No class Wednesday - enjoy your holiday.

Programming 13
09:30 - 12:20 Chi
01:30 - 03:30 Pi
Assignments Thursday, August 16 (Day 13)
Tasks: Due Today by 8am
Tasks: Due Tomorrow by 8am.

Programming 14
09:30 - 12:20 Pi
01:30 - 03:30 Chi
Assignments Friday, August 17 (Day 14)
Tasks: Due Today by 8am
Tasks: Due Saturday by 10pm
Due Monday by 8am at the latest.