Morrison's 2021S2 Classes

Rev. 26 Dec 2020

Final Project Directions See this page.

Organizational Note This page contains information that is of importance to all of my classes. Everything here pertains to all of my students.

To find out about individual courses, you should look in the course pages linked here. This semmester I have three courses in blocks B, E and F. Your class website can be found here.

Useful Documents and Pages

My Schedule

My schedule is updated for S2. You can view it in technicolor here. Feel free to gank the HTML and CSS and make your own personal page which you can post on the departmental server.

Beginning of Term Appointment

Let's get this done before class starts! You will get an email about this class before class starts telling you that you are enrolled in it. It will give you a link to this page. You will be able to do some setup on your computer and take care of some business before class starts.

All CS students are required to download the Academic Honesty Document that is linked in navigation area to the left. Print it out. You should read this document and understand its terms, as you are bound by them. You will sign and date your paper copy of it and submit it to me. Make sure you print your name (legibly) on the first page. When I receive it, I will give you 5 points of credit in the Canvas gradebook. If you are remote, you can snailmail it to me at the school. The snailmail address is on this page.

You will schedule an appointment of 10 minutes (on the tens) using Google Calendar during the first "remote week." You should make this meeting a ZOOM meeting. The purpose of this meeting is the following.

I will post hours for these meetings on this page. There will be hours available before class starts. I encourage you to avail yourselves of them so you can get a hot start to class.

Also, you will need to show me you have configured your lappy for work in this class. Specifics are just ahead; keep reading.

Get your Lappy Ready for My Classes

Software needed by all of my students You will get an email notice you are in my classes. It will tell you to come here to this page and to do the installs on your lappy indicated here. All of my students this term will need all of these items. Yes, Java students, we will be using Python from time to time and doing comparisons between Python and Java.

  1. You will need a plain-text editor. Choose one of these. You can install a couple of them and see what you like
    • Atom is a popular choice and it has nice extensions for running Python and Java.
    • VSCode has a loyal following at NCSSM. It can be configured with vim bindings if you are a vim user.
    • Notepad++ is great text editor for Windoze users.
    • Mac and Linux users are welcome to use vim. For mac users, I recommend you have this in your ~/.vimrc.
      
      set et
      set tabstop=4
      set ai
      set number
      set nohlsearch
                  
      Type it exactly as shown. I am a vim power user and you will see me use it in class.
  2. Begin by going to The Python Resources Page. Do the things directed under "Get Your Lappy Ready to Use the Server."
  3. Install Python; complete instructions are also on the Python Resources page. I recommend seeing Corey Schaefer's video linked there as he will take your through the process with simple and clear explanation. Yes, 4280, we will be using Python from time to time. Do Corey Schaefer's tests to make sure your install went down properly.
  4. Install Java15. Directions can be found on the Java Resources Page.

Beginning of Term Appointment Hours

Look on my Google Calendar for a slot. Schedule a 10 minute appointment (on the 10s), and make it a ZOOM meeting. All of these meetings will be made via zoom so you be anywhere you have an internet connection. You can opt to do this (smart) before classes begin or during J-term. Hours will be posted here.

Grading

Canvas Note When an assignment is due, I will give everyone a 0 for it who hasn't submitted, which will be removed when it is received. This may distort your grade calculation, but it also reminds you that you have something you need to turn in.

All items in my courses will have a point value; this will be specified in each course's specs page. To compute your grade, divide points earned by points possible. Your grade has two components, a letter and a modifier. Compute it as a percentage, then round to the nearest integer. Lab practical grades will be converted to a numerical score according to this rule.

Class Participation Factor Do not miss class unexcused. You all begin with a factor of 1.00; an unexcused absence triggers this code: factor -= .01. Your avearge is multiplied by this factor when reckoning final grades. You get two mulligans each semester. If you are over 25 min late, that's an unexcused absence. Two tardies are treated as one unexcused absence in this policy.

Note that you can lose course credit if you have ten or more unexcused absences; this is school-wide policy.

Late Work See the Late Work Page.

Compute Letter Grade

Compute Modifier Only letter grades A, B or C have a modifier.

Canvas will be programmed to give you the percentage.

Particulars on Quizzes and Lab Practicals

Quizzes and lab practicals will be open on Canvas 5 min before class begins, so you can start work on them right when you arrive.

If you miss a quiz or a Lab Practical You need to do this within two business days; if you are excused because of illness or because you are away on a competition, the clock starts running the day you return. If you are away, you can opt to take the quiz or lab practical at the scheduled time, as this site and Canvas will have all the stuff you need.

Quiz Makeups Quiz makeups will occur during my early office hour which runs from 7:30 until about 8:20A if I have an 8:30A class (normally MW) or until 9:15A otherwise (normally TR). This process can be done over ZOOM.

Lab Practical Makeups This can be done in the flexible use time that occurs TR 2:10-4:00P.

Computer Science TAs

Here are this year's CS TAs. They can help you with a wide array of issues, including getting your lappy ready for this class. During the first week of class we will determine the TA schedule.

picture of hart21g

Gabe Hart

picture of cress21c

Colby Cress

Tutorials are via ZOOM. They begin with the first non-remote week of class. A schedule will appear in the table below.

DayTAsTimes
Sunday6-7PTomas Delgado
Ethan Messier
Monday4-5PTomas
Daniel Xie
Tuesday4-5Gray
Daniel Xie
Tuesday8-9Gabe Hart
Wednesday4-5PMColby
Wednesday8-9PMMessier
Thurs4-5Gray Thomas
Colby Cress
Thurs8-9Gabe Hart

Essential Reading

The sternLecture will discuss organizing your file system like it should be when you arrive at NCSSM. In exchange for a little work up front and as you go along, you will be spared a great deal of agita later.

The disquistion on googleCalendar will show you how to access your Google Calendar and how to set up appointments with other NCSSM community members. You can have multiple layers on your calendar. I strongly suggest you use a layer for major assignments and tests.

Important Dates for All Classes

For our convenience, all scheduling annoyances, deadlines, and other important dates here that apply to all classes will be listed here when they become set. The modified schedules will be shown just after this list when they become available just before the school year starts; scroll down to see them.

Regular Half-Day Schedule Algorithmically, the day begins at 8A, all blocks meet in alphabetical order, each class is 30 min, and there is a 5 min passing time. Days marked "Half-day schedule" follow this pattern. None are scheduled for this semester.

Half Day Schedule
A Block 8:00 - 8:30
B Block 8:35 - 9:05
C Block 9:10 - 9:40
D Block 9:45 - 10:15
E Block 10:20 - 10:50
F Block 10:55 - 11:25
G Block 11:30 - 12:00

Communication

Contact Information This can be found here. You can send text messages to or leave a voicemail on my campus phone number; it is VOIP and works pretty much like a mobile phone.

Google Calender Quick HowTo Do the following to access your own personal Google Calendar and to schedule an appointment with me or any other school staff member. This works for family accounts, too.

  1. Open your school gmail account.
  2. In the upper right hand corner you will see a "waffle" (nine squares or dots. Click on the waffle.
  3. A menu with icons will pop up. Select Calender.
  4. You have a Google Calendar! Use it for stuff like assignments. It can really help you organize things. Post reminders for yourself and the calender can keep you apprised of upcoming events.
  5. In the left-hand column, under Meet with... is a box labeled "Search for People." Enter my name in it.
  6. My calendar will be visible. Create an event and send me an invitation.

Class Structure

CS classes are at once lecture and lab. It will have a big "dirty hands" component. You will learn about coding constructs and algorithms. When we run across these, we will work with examples and do calculations or write code. Here is what to bring to class.

Class Time The quality of my classes depends on you. What makes class fun and interesting is your involvement. When you find something mysterious or I am going too fast (I do this....) speak up! There is only one dumb question: it is the question you walk out that door wishing you had asked. The eternal battle in our classes is that against saysquattery. What's that? A saysquat is a student who sits in class and who never says squat.

There will be in-class activities that you will do to gain an active command of the material.

When we do code examples, you will often see me asking you for your input. If you have an idea and are unsure, share it. This often kicks off a productive discussion. It gets your classmates thinking, and it gets them to chip in ideas.

I respond very quickly to your input. It is not unusual for a student question at the beginning of a class to cause me to drop my original plan and to do something entirely different that addresses that question. Your input and contributions really drive this class. I do not keep static course notes. I do things in real time.

If I am moving too fast, do not be afraid to ask me to slow down and to spend more time on a puzzling topic. Remember: This class is your class. Be a good stakeholder and citizen in it.

The Textbook

I am the author of these live documents. I will give you a link to it in class. It has been developed specifically for this class, and is devoid of the usual lard you will see in school textbooks. There is no committee of Ed. Ds inserting cruft into the manuscripts. The reading will help you understand what is happening in class. It contains a fair amount of entertaining snark.

snark alert sign featuring a shark

If you see things that are baffling or you see a typo, let me know. I can edit the manuscript and upload a corrected version. It is formatted in PDF format, which can be read on on all platforms. I produce new examples each time I teach this class. You will see examples in the book that are different: look at these and you will have a broader context as we move along.

I strive for economy of thought. You will see lots of code examples. Copy these, paste them into a code window, and run them. You can modify them and experiment with them to test your knowledge and to do explorations. You will not see a lot of the asides and "boxes" that plague committee-written textbooks. I try to take a clear path through the material.

Some FAQ for CS at NCSSM

What if I've never programmed before? The right place, CSC 4020, Web Development, or one of the other introductory courses. The web development course is particularly suited to students who have never programmed before. You learn basic ideas about computers, how to navigate in UNIX, HTML5/CSS3, and then JavaScript. You will learn about delimitation, debugging, and the fundamental ideas of programming. All of this is done from complete scratch.

Are there extracurricular learning opportunities? Join the Computer Science club. You will make lots of friends who are interested in computer science and in programming competitions.

Is there a Linux culture in the land of the Unicorn? You bet. The most popular distro is Ubuntu, but you will find people running Arch Linux, Linux Mint, Fedora, and other distros. You can download and experiment with these. The halls of NCSSM abound with Linux fanatics.

Is there a uniform Linux environment for NCSSM students? Any NCSSM student can request an account on student computing server, cs2.ncssm.edu . If you are enrolled in an NCSSM CS course, your first homework will be to obtain and enable an account on this server. By using the server, you consent to its storage and netiquette policies. These are posted here.

What's important at NCSSM? Some fools will tell you "Chemistry!", "Math!", "Bio!", "Physics!" All will be wrong. Dead wrong. No, not "Literature", not "History." Forget these. What magic do we make? It is the magic of creating the new. Those fields mentioned above? Yes, they are important playgrounds. But creation is all. Take some time and watch some of these things. They will add to your life.

  1. Chuck Jones, on Geting Started
  2. Chuck Amuck. Prepare to laugh. Also absorb a serious message. He was a singular creative genius.
  3. Randy Pausch, The Last Lecture. Yes. he does die. "It is what it is; we cannot change the cards we are dealt."
  4. Picasso, on creativity, ohne wörter
  5. Ferdinand, who understands what is important.
  6. Learn about Tex Avery!
  7. The act of creation: Rachmanivov[2] concerto

Modern Teaching Technique

Sam Wu, NCSSM '09, UNC '11, UNC School of Medicine '15 gains knowledge of Java by giant-hammer blows. Note his successful trip through medical school, and his match as Dermatology resident at Eastern Virginia Medical School. He is now with the UNC Medical School.

sam gets it

All of our students get instruction in the gladiatorial arts.

gladiatorial instruction

Occasionally, battles can get lethal. Emma Zhang '19 is about to meet her demise at the hands of the hammer ninja Tova Just '19.

more gladiatorial instruction