Computer Science FAQ




FAQ about Computer Science

What if I have never programmed before? Our introductory programming course CS 352 has no programming prerequisites, other than the basic academic qualifications we would expect and NCSSM student to have. It is taught from scratch and gets to a high degree of sophistication quickly. Select it from the Courses menu to see a description.

Where should I start in Computer Science? If you have programmed before, you will need to know how to work it the UNIX command line. All you need to know is here. Take a few hours to master than and you can start in CSC402. We will expect you to learn what is needed as you progress in the class.

What languages are taught? Do I need special software? Our first language is Python. We have a server you can log into that provides a uniform linux environment for all students. It runs Red Hat Enterprise Linux. Many students also run Linux as a primary or secondary OS. Windows users will need to download PuTTy.

Python is also available for nearly any computing platform, including phones. Go to The Python Site for all you need to know.

In the next two courses, the lingua franca is Java. You will need to install a Java Developer's kit on your machine. Again, this is a freely available piece of software.

Some advanced courses are based on C. We do our C programming in a on the departmental server, which comes with all you need to begin programming in C.

What about APs? See the document >ap.php under the Courses menu.

Are there extracurricular Computer Science Activities? Yes. NCSSM particpates in the computing contest at the USACO and TopCoder. Some summer internships are available at IBM. There is a Computing club for next year. Andrew Spencer is one of its empresarios.

A Decoder Ring This is the course numbering system. It also tells you about languges we teach.

Course #CourseCurrent Language
CS 352Web Development HTML5/CSS3/JS
CS 402Intro to Procedural Programming Python 3
CS 404Intermediate ProgrammingJava 8
CS 406Advanced ProgrammingJava 8
CS 410Data Structures IC
CS 412Data Structures IIJava
CS 414Data Structures IIIJava
CS 408Elements of Computer SystemsPython/Java/C

If you took the AP and got a 4 or 5 ... Talk to us. Most likely you will start in CS 404. It's a safe bet you didn't learn about generics and programming with container classes, or how to write listeners and make GUIs work. It's an even safer bet you haven't seen a lambda, streams, filtering, or collectors, since these are all brand-spanking-new Java 8 constructs. Ever write an iterator for a custom container class? Ever use a lambda in an action listener to make a JButton live or a JSlider respond when slid??

The AP exam does not cover the event-driven programming model we teach here in CSC 404 and which is indispensible to writing modern GUI applications. It omits key things like exception handling and FileIO. You will gain a deeper insight into Java and its handling of collections.