Final Conferences
Final Project Conference Hours | |
---|---|
Day | Times |
Fri 20 May | 8:30A-11:00A 1:00P-3:30P |
Mon 23 May | 8:30A-11:00A 1:00P-1:45P |
Tue 24 May | 8:30A-11:00A 1:00P-3:30P |
Directions Use Google Calendar to make an appointment during these hours. Make sure you invite me and all of your partners. As the these requests come in, I will accept time slots on a first-come first-served basis.
Make your appoinment for 15 minutes, on the quarter hour. Example: 11:30A-11:45A is good, 2:55P-3:10P is not. This allows the appointments to be slotted efficiently.
At this meeting you will demonstrate your project and talk
about what worked and what didn't. After you are done, you will
place all materials in a folder named final
and
zip it. Send me the zip archive. Include a document that
contains instructions for running it and all participants' names.
FAQ
- Do all group members need to come? Yes.
- One or more of our members has two or more exams scheduled for a day. What accomodation can you make? I can slot you in on Wednesday..
Note Visit
this link to create a .ics
file for your classes.
You can then go to the gear (Settings) in Google Calendar and import
the events. Your classes are now on your Google Calendar! This
site is maintained by Philip Rash.
Philip's Engine Stall Recovery Test
My Classes
Classes This semester I have two sections of 4240 and one of 4280. This site will have proceedings and code for all of my classes. To access your class site click on the links above on on the left. All of my classes meet during the lab periods.
All classes meet in the E-lab (ETC227).
Class Setup Go to beginningOfTerm.php to get your lappy ready for this class. I recommend doing this in the last couple of days of JTerm so you are ready on Monday. Look in Canvas for a punch list so you get it all done.
Make sure you are running Java17 and Python 3.10. These are the class versions.
Office Hours These will be conducted in person or via ZOOM using my ZOOM link, which you will get the first day of class. They are posted on my schedule. Look for the burnt-orange squares.
Useful Documents and Pages
- Academic Honesty Document All students enrolled in CS must read and understand this document. You are required to print, sign, and date it and turn in a hard copy to your instructor during the first week of class. You submit this by putting it under my office door, which is in the ECS suite. In this process, you learn the location of my office. This is an assignment you can find on Canvas.
- Regular Weekly Timetable
- CS Classroom Policy
- NCSSM Accessiblilty Statement
For The Adventurous Learning the command line interface is a pro career move if you are serious about becoming a denizen of the computing world. You can give it a whirl; here are resources.
- s1.pdf is a guide to the command-line interface on the server. If you would like to experiment with working on the server, I can create an account for you.
- My Using UNIX series on YouTube
The Textbook
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. The reading will help you understand what is happening in class. It contains a fair amount of entertaining snark.
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.
The best way to read the book is to have a coding window open and to experiment as you progress. Having a second monitor on your desk is a wonderful thing, indeed.
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.
- You, on time. Some quizzes will ask questions about reading for the class day. These will occur promptly at the beginning of class and will have a time limit. They will open 5 min before the start of class so you can begin work on them right when you arrive.
- Your lappy. When you arrive, open the appropriate applications.
- Your power cord. It's no fun for your computer to shut down in the middle of class when it runs out of juice. We have power strips in our classrooms.
- A notebook
: You should keep notes on paper; research reveals that the
note-taking process enhances your learning. To find out why, click on the
notebook
link and find out. My experience reveals that this works very well for my students. Sometimes, we will put our computers at "third mast" so we focus on class discussion that does not require a computer. Students who do this tend to be highly successful and tend to find their notes to be an extremely useful resource. Note that lab practicals are open-notes, open documentation.
On Saysquattery (rhymes with pottery)
The quality of my classes depends on you. What makes class fun and interesting is your involvement. You will quickly realize that I think at lightning speed and that I can careen along at high light speed. I think fast, I type fast. 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 the 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. Saysquattery will be combatted using
selectVictim.py
.
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.
Note this, too. It is not unusual for me to hear a question from a class, set aside my present plan, and to create on-the-fly a lesson on that topic.
Pods
There will be in-class activities that you will do to gain an active command of the material. You will sit in a "pod" with some classmates and can share ideas with them when doing these daily assignments. Pod assignments will be made the first day of class; they will be shown on your course's main page. Pods will be assigned via some sort of randomized procedure such as picking names out of a cup or the running of a randomizer program. They are usually of size 3 or 4, and are numbered 0-4. Adders placed in the lowest-numbered pod with three students.
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. Remember: in programming everything fails until it works.
My Schedule
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, and giving you links for instructions on installing software needed for your class. You can do these installs prior to the first day of class so you are ready for a "hot start."
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 by putting it under my office door, so you know where my office is. 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.
Zoom In You will schedule an appointment of 10 minutes (on the tens) using Google Calendar. During this appointment, we will do the following.
- Make sure you have your Academic Honesty Agreement in.
- Test installs of software so you can function in this class. Instructions are linked on this page.
- Allow you to ask any questions you might have.
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.
- If you wish to use the server (optional), Install FileZilla It will enable you to transfer files back and forth between your lappy and the departmental server. It works for Mac, Linux, and Windoze, and its interface is butt-simple. A smart thing to do is to use this to back up your programming files to the server.
- VSCode has a loyal following at NCSSM. It can be configured with vim bindings if you are a vim user.
- You can also use vim if you are using a mac or if you wish to
program on the departmental server. Make sure you have a .vimrc
file and that these lines are present in it.
Type them exactly as shown, including spacing. I am a vim power user and you will see me use it in class.set et set tabstop=4 set ai set number set nohlsearch
- Begin by going to The Python Resources Page. Do the things directed under "Get Your Lappy Ready to Use the Server."
- Install Python; complete instructions are also on the Python Resources page. Yes, 4280, we will be using Python from time to time; in particular we will be comparing Python's and Java's class mechanisms. Do Corey Schaefer's tests to make sure your install went down properly. You can also use Python to autogenerate shell code and save annoying typing.
- Install Java17. Directions can be found on the Java Resources Page. Be sure to test your install as instructed.
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. You can opt to do this (smart) before classes begin. The first Monday you are on campus before classes start is a primo choice. Hours will be posted here.
Grading
Where's the Syllabus? This document, along with the 4240 Specs Page or 4280 Specs Pageconstitute the syllabus for your class. Academic honesty is outlined in the Academic Honesty Agreement.
All items in my courses will have a point value; this will be specified in each course's specs page, or in Canvas. 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.
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.
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 average 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 over which I have no discretion.
Late Work See the Late Work Page. If you are swamped, come and see me and I can make an accomodation.
Compute Letter Grade Your percentage will be rounded to the nearest integer. Then this procedure is applied.
- If the first digit is a 9, the letter grade is A.
- If the first digit is a 8, the letter grade is B.
- If the first digit is a 7, the letter grade is C.
- If the first digit is a 6 or lower, the letter grade is D.
Compute Modifier Only letter grades A, B or C have a modifier.
- If the second digit is a 7 or higher, the modifier is a +.
- If the second digit is a 3 or lower, the modifier is a -.
- Otherwise, there is no modifier.
Canvas will be programmed to give you the percentage.
Particulars on Quizzes and Lab Practicals
Quizzes in 4240 There will be one every Monday. These will be over the reading or they will be very quick coding challenges that accomplish fairly simple tasks. Quizzes are created and posted in Canvas, or they might be a "do-now" programming challenge..
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. Quizzes will usually be the first 15 min of Monday class.
If you miss a quiz or a Lab Practical You need to make arrangements 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 hours which are shown on my schedule.
Lab Practical Makeups This will most commonly 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. You can learn a little about each TA by visiting the links below.
The TAs will respond to questions via Microsoft Teams. The teams is named NCSSM CompSci TAs 21-22. You can elect to install the desktop app for Teams. There will be posted hours where you can communicate with them "live." They can help you with software installs. Questions can be left in the Teams site.
Day | TAs | Times |
---|---|---|
Tue | warner22p | 9:00-10:00P |
Wed | tara22p | 9:00-10:00P |
Wed | atalla22a | 3:10-4:00P |
Thu | tara22p | 9:00-10:00P |
Thu | warner22p | 7:00-8:00P |
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 disquisition 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 Year End
For our convenience, end of year events are listed here.
- 16 May, Academic Support Day.
- 19 May, Last day of class.
- Fri 20 May, Mon-Wed 23-25 May, Finals.
- Fri 20 May, Mon-Tues 23-24 May, Final Appointment Slots. Directions are at the top of this page
- 25-27 May, Senior Days
- 27 May, Graduation rehearsal, 10:00AM
- 27 May, Awards Ceremony, 2:30AM
- 28 May, Granulation day!
- 30 May, Memorial Day holiday.
- 31 May, Grades due
- 3 June, Grades released.
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. Since I am old guard, my email name is just my last name (I am undotted).
Google Calendar See the The Google Calendar Page for complete instructions. This is the best way to set an appointment.
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.
- Chuck Jones, on Geting Started
- Chuck Amuck. Prepare to laugh. Also absorb a serious message. He was a singular creative genius.
- Randy Pausch, The Last Lecture. Yes. he does die. "It is what it is; we cannot change the cards we are dealt."
- Picasso, on creativity, ohne wörter
- Ferdinand, who understands what is important.
- Learn about Tex Avery!
- 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.
All of our students get instruction in the gladiatorial arts.
Occasionally, battles can get lethal. Emma Zhang '19 is about to meet her demise at the hands of the hammer ninja Tova Just '19.