Welcome to CSC 4240!
General information about this course can be found in The 2122S1 Page.
Do I belong in here?
This is a bilingual course for people who already know how to program; it will be taught using both Python and Java. We will begin with Python's type system and with Python expressions.
We will then do the same with Java and we will compare and contrast how the two languages work.
You should have seen the "big 6" in a prior programming class. The language does not matter, what matters is that you understand these basic things.
- variables These are symbols that refer to data in memory.
- objects I use this in the "wide sense" in that objects are chunks of data in memory.
- functions These remember a procedure under a name.
- conditional logic This allows your program
to make decisions. Nearly every language has
if
andelse
along with some mechanism forelse if
. - iteration This causes a chunk of code to be executed repeatdly.
- containers These allow you to store related groups of data under a single name. Examples include lists, dictionaries, and arrays.
Computing Environments You will have two. One is
optional; this is our
our departmental server, cs.ncssm.edu
. You can learn how to
the command-line interface on this server; it is a full-on UNIX computing
environment.
The second is your PC. You are required to install several items to get ready for this class. Complete details are on the 2122S1 Page. You should install both Python (current version is 3.9) and Java (16) on your PC. You will need to install VSCode for your PC. No assignment in here should ever be submitted in a word processor format. All files you submit will be in a plain-text format.
A Note About This Site I have organized things on this site to make them easy to find. Always look on the left in the navigation area. Example code can be viewed by clicking on the links on the left. The folders B, and F will contain the sample code presented to each block on each day and will be located in the daily calendar pages. The index page will contain that day's agenda. Note that "Wednesday" is "Tuesday" on this calendar, so F's Wednesday material will appear in the Tuesday box. You have full access to these folders so you can see the examples I do in the other blocks.
All programming assignments will appear on the Specs Page. Big assignments will have their own subfolder which will hold any shell code I provide for you. Point values for each assignment are posted on the specs page as well. The Current Classes Page tells you how grades are computed in all of my classes. You will use Canvas to turn in assignments.
Pods We will assign pods using a randomization procedure.
Numbers
256 (decimal system) CCLVI (roman numerals; denominational) IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII What is "number?" Given two collections, can you determin which is bigger WITHOUT COUNTING? Pair objects off from A and B If B has leftovers: B is bigger if there are no leftovers: equal size if A has leftovers, A is bigger. "same sizeness" abstract notion of number. +, -, *, //, % 365%7 = 1