CS 200-3: Programming Fundamentals (using Java) Spring 2025 ONLINE (asynchronous) Via: Course Home Page, Office Hours via Zoom, Google Chat Space & D2L AND Peer-led Workshop via Zoom, Day and Time: TBA (crn: 20088)
The Left Navigation Bar: Links to class syllabus, assignments, projects, examples,
web tools, downloads, & more (possibly useful) information. Note: Links are unique to course.
Welcome to CS 200, Programming Fundamentals!
This course serves as an introduction to principles of computer programming.
It covers fundamental concepts including input/output, data types, arithmetic, relational, and logical operators, branching, looping, methods, arrays, and an introduction to object oriented programming (OOP). Programming projects involving these concepts will be assigned for interactive applications, numeric computations, and analysis of data.
A common comprehensive final exam will(may) be given for all sections of CS-200, the date of the final exam is listed in the Weekly Schedule.
Course Pre-requisite: MATH-173 minimum grade of C
Required Textbook: Introduction to Java Programming, Comprehensive Version, 12th Ed. Author: Y. Daniel Liang, Publisher: Pearson
ISBN 9780136520238
Additional Supply Requirements to bring to every class:
1 USB flash drive or separate directory/folder on your computer to store your work. jGrasp IDE, flowcharting template (sample template) or computer flowchart drawing tool, pencil with eraser, black pen, and red pen.
You are responsible for the reading that is assigned in the syllabus and listed below in the Weekly Schedule.
The reading assignment for each week is to be completed TWICE in the week in which the reading is assigned in order to be prepared for the video lecture/discussion/lab.
First textbook read through: If there is a "Concept Guide" posted for the chapter, complete the text notes column as you complete the reading and submit it as .pdf via email, prior to starting the module work.
Second textbook read through (same pages): This time, at the end of the module to make sure you truly understand what has been covered thus far in the course.
The course material builds on itself, thus it is important to fully understand what you are learning - we need you to understand, and be smarter than the next AI ;-)
Web site content is subject to change, consider checking this page at least twice weekly.
CS 200-3 Peer Leaders:
Jacqueline Landi: j-landi2@neiu.edu
Mohammad Bachcha: m-bachcha2@neiu.edu
Peer Leader and Tutor Schedule: See course Google Chat Space for all schedules, locations and updates
The sign of a prepared student, textbooks in hand, along with materials for note-taking, ready at the first class.
(the textbook for this class is listed in the syllabus)
All reading assignments and concept guides (text portion) are to be completed prior to starting the module's content.
Prior to starting the course the plan is to get aquainted with our online environment for this course.
Please watch the video tour of our learning environment.
Note: The video was created for a previous summer session of the course, please only focus on how the course is to be navigated as weekly modules. The actual Spring 2025 dates, times, syllabus, synchronous workshop, project and peer leaders will be different and are (or will be) posted on this page.
This course is broken into Weekly Modules.
The modules start on Mondays at 12:01 a.m. and conclude on the following Sunday by 11:59 p.m.
Module work can be accepted starting on Mondays at 12:01 a.m. and all module work must be submitted by the end of the module on Sundays by 11:59 p.m.
The earlier in the week that you submit your work for scoring, the more opportunities you will receive for feedback and ability to resubmit your work for rescoring.
Work turned in after 5 p.m. on Fridays is not elible for resubmission, unless noted otherwise.
Work ahead if you can only work on the course on the weekends and schedule send your emails for Monday mornings.
Read the syllabus
A link to the syllabus is located in the navigation bar located on the left side of this page.
The syllabus contains the plan for the course. Here is a "short list" of some of the key details that you will find in the syllabus:
general course description
contact information to reach me (Freddy Porps - your instructor on this journey)
supplies you will need
list of topics that will be covered
learning outcomes for you as a result of successfully completing this course
the workload (student tasks/assignments/requirements) - the tasks you will do to show your understanding of the materials
grading policy ("How do I get an 'A' or 'B' or...?")
miscellaneous course policies (rules)
HOW TO: communicate with me
and finally - your FREE gift with the syllabus, a handy worksheet to calculate your course pts. and current grade :-) Yes, FREE with your enrollment in this class.
Explore the course home page
Time to check out this place!
← View the links in the navigation bar on the left side of the page - click on them - and check out the content.
Try out the quick links at the top of the page. Then, LOOK AHEAD at the plan for Week 1.
Each week, please make sure to scan the entire module at the start of the week for due dates before starting module as a linear process.
Scan the entire semester to get a feel for the workload during the next 15 weeks of this course.
Week # 1 - (1.21.25 - 1.26.25)
No class: 1.20.25 - MLK Jr. Birthday Holiday!
All assignments with a subject line, are to be emailed to me (f-porps@neiu.edu) during the module in which they are due.
The last possible day to send in your work is on Sundays by 11:59 p.m.
Introduce yourself to me! Email me at f-porps@neiu.edu, with your answers to the questions listed below as this is your first activity point assignment: (5 pts.)
So...let's get to know each other!
What is your name? (or what do you like to be called)
Your personal pronoun
Your favorite food
Do you have any pets?
Why did you choose to take CS 200?
I will get us started with a bit about me:
Freddy Porps (Prof. Porps or Freddy works for me)
she/her/hers
Pizza (any kind -just no mushrooms)
A Big Fluffy Dog named Lucy. You may meet her as sometimes she makes cameo appearances during my Zoom office hours.
I love to code! I have enjoyed problem solving and coding (starting with BASIC, Fortran, and Pascal) back when I was in high school. I still love to code for fun!
Note: If you plan to work on assignments at home rather than a lab computer on campus, make sure you install jGrasp on your home computer. There is a link to the jGrasp web site on this page in the navigation bar on the left, if you do not have an install disk with your text. You may also need to install the JDK from Sun Microsystems, again, the link is on this page in the navigation bar on the left. Not sure how to install these two programs? Watch the video: Tutorial - Installing jGrasp and the JDK YouTube Video.
Assignment 01: (2 pts.) due by the end of this module (see syllabus for lab/assignment grading details)
Click on the link in the navigation bar on the left to see "How do I submit assignments and lab work"
How was the first module? Your feedback is worth the remaining +3 pts. for this module.
Please let me know your opinions on:
Textbook readability
video presentations (there were 2 at this point Module 0 and 1)
concept guide and other handouts/worksheets
peer led workshop
course home page layout, content, and organization
subject line: CS 200 > Module 1 > Feedback due by the end of this module (3 pts.)
Upon successful completion of this module, you have met the course objective(s):
Java Technology - Be able to identify key features of Java Language Editions of Java,
JDK, JVM, interpreted vs compiled language and operating system of your computer
Week # 2 - (1.27.25 - 2.2.25)
Read: Chapter 2 - Elementary Programming
We will start with the 2nd half of Chapter 2 first...
Why? It helps to have a global view of the programming process before you start coding.
Take a look at these files for more information on the subject of input and output.{Again: items should be read, run (if code), and printed (adding your own notes) and placed in your reference notebook}
input: Sample: Scanner Vs. Dialog Box
output: Example:Printf println Vs. printf Decimal Formatter Object All currency output must be properly formatted from this point in the course forward.
Lab/Assignment 02: (2 pts.) due by the end of this module (see syllabus for lab/assignment grading details)
Upon successful completion of this module, you have met the course objective(s):
Decode a given set of computer instructions to determine exactly what they do
Be able to write a simple Java program - main method, run a program
import packages
Java Data Types: casting, declaring, primitives, String
Read (before class) and bring a print-out (hard copy) of: Lab Doc 01 - (2 pts.) due by the end of this module (specifications for this lab is in the Branching Video) (see syllabus for lab/assignment grading details)
Lab Doc 02 - (2 pts.) due by the end of this module (specifications for this lab is in the Branching Video) (see syllabus for lab/assignment grading details)
Flowcharting Homework: Practice Flowcharting problems
Complete flowcharts for the problems that are in file linked above. They are due at the end of this module. Please stop by during office hours to work on flowcharting if you are having any difficulties with this task. "Flowcharts Only" for these problems (+1 point each) due by the end of this module
subject line: CS 200 > Module 4 > Flowchart > #1(send each as separate emails so I can give feedback separately for each) Thus, #1 - #4 (1pt. each * 4 = 4 pts.)
Rework the code from Lab/Assignment 04 to utilize Switch/Case coding technique, use the default case for error message.(2 pts.) due by the end of this module (see syllabus for lab/assignment grading details)
Upon successful completion of this module, you have met the course objective(s):
Formulate a sequence of steps in order to solve a given programming problem
Encode such steps as instructions for a computer to perform them
Decode a given set of computer instructions to determine exactly what they do
Be able to write a simple Java program - main method
Java Data Types: casting, declaring, primitives, String Operators/Decisions: if/else,switch/case, break
Yes, there were 2 bonus points this week ;-)
Week # 5 - (2.17.25 - 2.23.25)
If you have not yet explored the links in the navigation bar on the left ← now is the time to start!
After reviewing Weeks 1 - 4 (from 2012/13), in the navigation bar on the left, quote 1 student each week from each of the 4 weeks that helped you to understand a concept that was covered during that week. (4 pts.)
n.b. You may want to look at each week, notes in student words, as you work through this course for more help on the concepts you are learning.
Read and bring a print-out (hard copy) of: Review Summary
Then list at least 3 items that you were glad to get a reminder about, as you forgot about it (already). (3 pts.)
Choose 2 String Object methods that were NOT demonstrated in any lecture, create a sample Java program using them, AND explain how they work using your own words as comments in the code. (6 pts.) (see syllabus for lab/assignment grading details)
Please see pop up box this week for remaining 2 labs to complete (2 pts. each, total 4 pts.). (see syllabus for lab/assignment grading details)
subject line: CS 200 > Module 5 > Lab > Pop Up 1 (2 pts.)
subject line: CS 200 > Module 5 > Lab > Pop Up 2 (2 pts.)
Upon successful completion of this module, you have met the course objective(s):
Formulate a sequence of steps in order to solve a given programming problem
Encode such steps as instructions for a computer to perform them
Decode a given set of computer instructions to determine exactly what they do
Be able to write a simple Java program - main method
Java Data Types: casting, declaring, primitives, String Operators/Decisions: if/else,switch/case, break
Yes, there were 2 bonus points this week ;-)
Modules 6 and 7 are combined...
thus, you have 2 weeks to complete the work on repetition structures.
Complete and submit the activities in a linear order from top to bottom.
For the labs listed below, in addition to the "Lab Sandwich," describe what you learned from the lab(e.g. trouble you had, concept you can describe back to me - teach it to me, or technique you applied).
subject lines for the 4 labs embedded within the Repetition Structures video: (4 pts. each, total 16 pts.) (see syllabus for lab/assignment grading details)
Key Components of a repetition structure assignment:
Create a poster containing the 4 key components of a repetition structure and take a selfie with your poster. Then, paste your selfie into the body of the email.(3 pts.)
Why is the output for this code: 8 2
Explain what is the value of each variable in storage as you trace through the code, noting the changes in value for each iteration of the loop. Write your explanations as comments by each line of code. (16 pts.)
public class Drill13b{
public static void main (String [] args)
{
int x = 0;
int y = 0;
for (int z = 0; z < 5; z++)
{
if((++x > 2) || (++y > 2))
{
x++;
}
}
System.out.println( x + " " + y);
}
}
Upon successful completion of this module, you have met the course objective(s):
Formulate a sequence of steps in order to solve a given programming problem
Encode such steps as instructions for a computer to perform them
Decode a given set of computer instructions to determine exactly what they do
Be able to write a simple Java program - main method
Java Data Types: casting, declaring, primitives, String (char.At, length()) Operators/Decisions/Loops: if/else, switch/case, while, for, do-while, break & continue
Complete: Worksheet - Tracing: Loops
while watching the video. Then, list 4 things you learned about tracing code. You must submit the completed worksheet and your lessons learned (8 pts.) Due at the end of this module.
Spring Break! 3.16.25 - 3.23.25 (no classes)
Please consider working ahead on Week 9 if you have spare time.
Week # 9 - (3.24.25 - 3.30.25)
PRACTICE, PRACTICE, PRACTICE...
If you have not already started the 75 practice problems linked in the navigation bar on the left, NOW IS THE TIME!
Or try this final exam from Summer 2019: question packet and answer packet Also, try the past exams posted in the course D2L shell.
Choose any 5 problems (2 pts. each * 5 = 10 pts.) from either the 75 practice problems (linked in the nav bar on the left side of the page) or the final exam from summer 2019 (linked above), then flowchart, code, and run them making sure to use enough runs to verify that code consistently works correctly for all cases (2 pts. each * 5 = 10 pts.). (20 pts. total) Yes, each problem ends up being worth 4 points, the usual 2 pts. for the lab sandwich and 2 points for the output runs proving that it works for all cases. Due at the end of this module. Submit each problem in a separate email.
n.b. If the problem seems to need a tool you have not yet used, like it needs an array or a method, please do not choose that problem, as those concepts will be covered in the following weeks.
Use subject line for each of the 5 problems - submit only one problem per email: CS 200 > Module 9 > (list location of problem and problem number) (4 pts.)
Upon successful completion of this module, you have met the course objective(s):
Formulate a sequence of steps in order to solve a given programming problem
Encode such steps as instructions for a computer to perform them
Decode a given set of computer instructions to determine exactly what they do
Be able to write a simple Java program - main method
Java Data Types: casting, declaring, primitives, String Operators/Decisions/Loops: if/else, switch/case, while, for, do-while, break & continue
Week # 10 - (3.31.25 - 4.6.25)
Progress check
Complete the Score Worksheet and Progress Check (2nd to last page in the course syllabus) (8 pts).
For the remaining 10 points for the progress check, you have 2 options:
Visit with me during office hours during weeks 10, 11, or 12 to discuss your progress in the course
Write a 3 page summary of what you have learned thus far in the course, using your own words and including sample code snippets as examples in your explanations
Lab/Assignment 05: (2 pts.) Due at the end of this module. (see syllabus for lab/assignment grading details)
subject line: CS 200 > Module 10 > Lab > Asst 05 > with embedded extra credit (2 pts.)
If you choose to terminate participation in a class, and wish to receive a grade of withdrawn (W), the deadline to drop a course is Friday, 4.11.25 by 11:59 p.m., via NEIUport. If you do not officially withdraw from a class, you will still receive the grade for the course. Please email me or stop by during office hours to discuss your performance in class before making this decision.
Week # 11 - (4.7.25 - 4.13.25)
Read: Chapter 6 - Methods (AKA Encapsulating a Task)
Use the links below to complete some method problems. Send 2 full browser window screenshots for each problem:
1. your first attempt
2. your final (hopefully fully correct) attempt Point values are listed in the subject line (total pts.: 5)
Tea Party .....Subject Line: CS 200 > Module 11 > Tea Party (1 pt.)
Left 2 .....Subject Line: CS 200 > Module 11 > Left 2 (1 pt.)
Cat Dog .....Subject Line: CS 200 > Module 11 > Cat Dog (1 pt.)
Make Chocolate .....Subject Line: CS 200 > Module 11 > Make Chocolate (2 pts.)
Upon successful completion of this module, you have met the course objective(s):
Formulate a sequence of steps in order to solve a given programming problem
Encode such steps as instructions for a computer to perform them
Decode a given set of computer instructions to determine exactly what they do
Be able to write a simple Java program - main method and encapsulate a task within a separate method
Java Data Types: casting, declaring, primitives, String Operators/Decisions/Loops: if/else, switch/case, while, for, do-while, break & continue
Methods, creating and using them, including overloading
Read and bring a print-out (hard copy) of: Intro to arrays - copy, paste,compile and run Array Bounds Checking: Run-Time Error - copy, paste,compile and run
After running and reviewing the above code, please answer these 2 questions (2 pts.)
When an array is declared - what is actually being stored in the identifier?
What is wrong with this code snippet?
int []x = {1,2,3};
if(x[3] == 3)
System.out.print("true");
Arrays and Methods:
Primitive Data types are passed by value, i.e. a copy of the argument value is passed in the method parameter. Watch this: Data passed by value
Objects (arrays are objects) are passed by reference (the address location in memory), thus changes made to the parameter will change the argument sent. Watch this: Data passed by reference (an array object)
Explain, using your own words, how data can be passed into a method. Describe the entire process from caller to method. (3 pts.) due by the end of this module
subject line: CS 200 > Module 12 > Lessons Learned: Passing data by Value Vs. Reference (3 pts.)
Learn more about multidimensional arrays, including ragged/jagged arrays...
Read about: ragged/jagged arrays.
Watch: ragged/jagged arrays
Draw a picture illustrating data that would use a ragged array. (3 pts.) Due at the end of this module.
Using your own words, make a detailed list of 13 concepts/ideas that you learned about object oriented programming. (13 pts.)
subject line: CS 200 > Module 13 >What I understand about OOP (13 pts.)
Upon successful completion of this module, you have met the course objective(s):
Formulate a sequence of steps in order to solve a given programming problem
Encode such steps as instructions for a computer to perform them
Decode a given set of computer instructions to determine exactly what they do
Be able to write a simple Java program - main method and encapsulate a task within a separate method
Java Data Types: casting, declaring, primitives, String Operators/Decisions/Loops: if/else, switch/case, while, for, do-while, break & continue
Methods, creating and using them, including overloading
Arrays: 1D and 2D arrays
Week # 14 - (4.28.25 - 5.4.25)
Read: Chapter 9 - Objects and Classes
Concept Guide for the Objects and Classes module are free form notes (you may continue where you left off in the Module 13 aaignment about OOP) from information posted starting in Module 8 (5 pts.) due by the end of this module. (see syllabus for details)
In addition to class this week, visit the tutors, participate in peer workshop, finish the 75 programming questions, and stop by during office hours to practice programming...
the common final exam is this weekend. Are you ready?
Try the past exams posted in the course D2L shell as they will be more similar to the final exam you will be taking this semester to review the skills you will need to master in order to progress into CS 207, Programming II. Also, time yourself, try completing this exam within the 2 hour time constraint, bring your work and questions to class.
The last assignment:
Utilizing the numbered list posted below (Week 10),
create a .pdf file
describing each concept using your own words (you may also include short Java code examples with comments)
(15 pts.) Due at the end of this module.
subject line: CS 200 > Module 14 > A Summary of what I have learned (15 pts.)
Upon successful completion of this module, you have met the course objective(s):
Formulate a sequence of steps in order to solve a given programming problem
Encode such steps as instructions for a computer to perform them
Decode a given set of computer instructions to determine exactly what they do
Be able to write a simple Java program - main method and encapsulate a task within a separate method
Java Data Types: casting, declaring, primitives, String Operators/Decisions/Loops: if/else, switch/case, while, for, do-while, break & continue
Methods, creating and using them, including overloading
Arrays: 1D and 2D arrays
Using Objects: Class structure, object lifecycle, basic instance methods, instance
variables, creating instances
Week # 15 - course end 5.11.25
Review for final module test:
primitive data types,
String Object,
constants (final),
literals,
identifiers,
operators: math, relational and logic,
typecasting,
forcing conversions,
linear process,
branching (if/else, switch/case),
repetition structures (pre-test:for and while; and post-test loop: do/while),
nesting constructs,
methods: return types, parameters, arguments passed by value, arguments passed by reference (arrays), and overloading,
arrays: single, multidimensional and ragged
classes and objects: attributes,constructors, behaviors,
access specifiers
n.b. If there is anything on this list that you would like more practice, please stop by during office hours and work with the peer leaders as well.
Final Module Test! (25 pts.)
Available Monday, 5.5.25 at 12:01 a.m.
Due: Tuesday, 5.6.25 by 11:59 p.m.
Allowed Time: 2 hours (120 minutes) once started
LOCATION: Course D2L shell