## My Schedule

This trimester I have three sections of CSC 352, Web Development. These occur in blocks B, C, and F.

My schedule can be viewed in technicolor here.

## Computer Science TAs

There are four CS TAs this year. They can help you with a wide array of issues, including getting your lappy ready for this class.

Jefferson Bishop

Alex Cini

Matthew Houk

Noah Kellar

Tutorials are in the Library Mezzanine. They begin with the second week of class.

DayTAsTimes
SundayMatthew and Jefferson8-9:30P
MondayAlex and Noah8-9:30P
TuedayAlex and Noah8-9:30P
WednesdayMatthew and Jefferson8-9:30P

## Important Dates for All Classes

For your convenience, all scheduling annoyances, deadlines, and other important dates here that apply to all classes. The modified schedules will be shown just after this list; scroll down to see them.

• 6 August 2018, Ugh, summer ends for teachers.
• 13 August 2018, Everyone's on Campus!
• 15 August 2018, Convocation
• 16 August 2018, T1 Begins. Start your engines! Also: altered schedule: Evacuation Drill
• 17 August 2018, Altered schedule: Lockdown Drill
• 20 August 2018, Regular Mon schedule, but an evacuation drill starts at 4PM (last 5 min of GBlock)
• 3 September 2018, Extended: Labor Day
• 14 September 2018, College Eve
• 15 September 2018, Family Day
• 20 September 2018, Midterm Grades
• 1 October 2018, Extended
• 5 October 2018, Alumni Weekend
• 6 October 2018, SAT@NCSSM
• 10 October 2018, PSAT@NCSSM/College Day
• 8-12 October 2018, College Week
• 22 October 2018, Early Release Day, 30 min periods with 5 min for passing.
• 25 October 2018, Last Day for us
• 26 October 2018, Last Day, T1
• 30 October 2018, CS Exam Block, 9-11AM Here is a PDF of the year's exam schedule.
• 1 November 2018, Exam Period Ends, Trimester break begins, 5PM.

Both extendeds occur on Mondays, so it appears there will be no lab day schedules this trimester.

Altered Schedules All altered schedules for T1 are posted in this table. College Day on 14 September has a college fair after its shortened schedule. That takes places in the PEC.

Altered Schedules, T1, 2018-2019
Thursday, August 16Friday, August 17College Day - September 14
D Block 8:00 - 8:50A Block 8:00 - 8:50A Block 8:00 - 8:40
C Block 8:55 - 9:45B Block 8:55 - 9:45B Block 8:45 - 9:25
A Block 9:50 - 10:40C Block 9:50 - 10:40C Block 9:30 - 10:10
B Block* 10:45 - 11:55D Block* 10:45 - 11:55D Block 10:15 - 10:55
Lunch/Meeting 11:55 - 1:35Lunch/Meeting11:55 - 1:35D Lab 10:55 - 11:45
F Block 1:35 - 2:25G Block 1:35 - 2:25Lunch 11:45 - 12:20
G Block 2:30 - 3:20F Block 2:30 - 3:20G Lab 12:20 - 1:10
E Block 3:25 - 4:15E Block 3:25 - 4:15G Block 1:10 - 1:50
*contains tornado drill*contains lockdown drillF Block 1:55 - 2:35
E Block 2:40 - 3:20

College Week Timetable Here is a PDF of the timetable.

Early Release 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.

Early Release Schedule October 22
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

## Course Prerequisites

Really.... none. Point-and-click proficiency with a modern computer is nice, but this can be learned quickly if you are unfamiliar with it. Be able to open files, save files, and to use a web browser. Everything else you will learn in here from scratch. Good critical reading ability also helps. If you already know how to program, you should be in CSC424. If you are a programmer and want to learn how to make web apps, this is a great place. Please be a good citizen in this class and be helpful to your classmates.

If you are enrolled in this class, you got an email telling you of the existence of this page. You will use the following software items in this class. All are freely available. You have an opportunity ot install them before class starts so you are ready on day 1. The TAs can help you with this process. We might hold an "install party" during orientation.

• If you use Windoze, obtain PuTTy, a terminal emulator. If you are Mac or Linux, no action is required on this item.
• FileZilla 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. Several assigments require you to place files on the server.
• Chrome Install this browser for its developer tools.
• Firefox Install this browser for its developer tools. Obtain Firebug and the developer tools from the The Mozilla Addons Site

You will need a plain text editor. Several choices are available; pick the one you like the best. You will not want or need a word processor in this class. All work in this class must be submitted as plain text, save for media files (images, audio, video) you might submit as part of a project. Your hallmates who have taken CS courses here are familiar with these.

• Atom is a plain text editor that makes life good in this class. It works great for Mac, Windoze and Linux.
• VS Code is an excellent editor for all platforms.
• Notepad++ is great for Windoze users.
• If you are a Mac or Linux user, you have the option of using vim. Place this file in your home directory, and name it .vimrc. It will give you sanity in programming classes.
    set tabstop=4
set et
set nohslearch
set backsapce=indent,eol,start

Type this exactly as shown. The vi editor has a sharp learning curve, but once you become a vi ninja, it's blazingly fast.
• A lot of Linux users swear by gedit, which is present in the default install. You can also get gedit for Windoze and Mac. It has tons of plugins that give it all sorts of great capabilities.

## Class Materials

Your class website On the left, you will see directories the various months. These will contain the course calendars. The file basicStuff.php linked at the left will answer your most basic questions about this class.

The specs directory will contain specifications for all major projects.

The pages contains some sample web apps which you will find useful in this class. Take some time to check them out.

Materials may also be present on our internal server cs.ncssm.edu. You will get an account on this server and you will learn how to interact with its command-line interface. You will be asked to post certain assignments and projects there.

This course will be on canvas as well. Canvas will be used for reading quizzes, and it provides a portal for you to upload programming assignments. All grades are entered into the canvas gradebook.

## Communication

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

My Google Calendar Use this to schedule appointments.

Class Structure This class is 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.
• Your lappy. When you arrive, open the appropriate applications.
• Your power charger. 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.

The quality of this class depends on you. What makes this class fun and interesting is your involvement. When you find something mysterious 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. You will sit in a "pod" with 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 here.

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 this live document. 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.

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.

Working Offline The Working Offline page has directions. Make sure you prepare your computer as instructed above.

Web Apps pages, linked at the left, contains some useful web apps for this class. You are encouraged to look at them; by the end of this term you will know how to write something like these. One is a base converter which will be useful to you when we study the representations of numbers early in the term.

## Some FAQ for CS at NCSSM

What if I've never programmed before? You are in the right place, CSC 352, Web Development. 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.