Dear Students,
Hi, I'm Prof. Frankie, and I'll be your instructor for CISC 190! I've designed this website to help you see how much fun you'll have learning to program in CISC 190 and to help our class get off to a great start in the first week. You'll find the full syllabus in our Canvas course. I hope you enjoy exploring this page!
Prof. Frankie
Do you want to learn how to write code for a program like Photoshop? Then this course is for you! In this course, you will learn fundamentals of object-oriented programming using Java. In this particular section of CISC 190, we will start with a media computation approach, in which you will start using Java by moving virtual Turtles and manipulating digital images (e.g. learning how to write the type of code that powers applications like Photoshop!). We will move on to more advanced Java and object-oriented programming concepts, and the course will culminate in a four-week final project in which you will have the opportunity to showcase your programming skills in a project that you can discuss with potential employers in an interview.
In Spring 2025, this course is offered face-to-face, and meets MW 9:30-12:30 in BT 209. In addition to in-class meetings, you will also need to study outside of class. The typical "rule-of-thumb" for college classes is that you should plan to study 2 hours outside of class for every hour you spend in class. Since we meet ~6 hours each week, you should plan to spend ~12 hours each week studying outside of class.
There are several ways, other than office hours, to reach out both to me and to your classmates.
The best way to reach me about personal or grade-related questions during the semester is through the Canvas Inbox. Please allow at least one business day for me to get back to you (although I usually respond within 12 hours).
Pronto is an instant messaging tool integrated into Canvas. I will use Pronto to supplement Canvas announcements, and to let you know when I am available on Zoom without needing an appointment. I encourage you to use Pronto to connect with your classmates and to ask for help from each other. The quickest way to get a response from me is via Pronto; I have the app installed on my phone and will respond to your messages as soon as I am able. Please reserve questions about grades for the Canvas Inbox and/or Zoom appointments.
On the course Canvas homepage, you'll find a Calendly link that allows you to quickly sign up for one-on-one appointments with me via Zoom. If none of the available times work for your schedule, please send a note via the Canvas Inbox with a few times that are convenient for you (including after 8pm M-Th, when my kids are in bed!) - we'll find a time that works for both of us.
In addition to the other resources outlined here, our class also has a Q&A Forum that is a great place to ask questions, especially when you want to share a screenshot as part of your question. I will check the Q&A Forum at least once a week; if you post a question there, you may want to send a ping to me via Pronto to make sure I see your question sooner!
Welcome Module
Introduction Discussion (10-15 minutes)
Getting to Know You Survey (10-15 minutes)
Module 0 - Getting Started
M0 Reflections about Learning discussion (10-15 minutes)
M0 Create a SMART Goal (15-20 minutes)
M0 Syllabus Reconnaissance (10-15 minutes) **
Computer Setup (15-20 minutes); ask for help if you're having trouble
Module 1 - Turtles: Using Methods and Parameters **
(Intern Level 🌱) M1 Read and Try: Using Methods and Parameters (you'll use Java to create a line drawing like you see in the background image at the top of this website - have fun and be creative!)
* Note - all due dates in this course are recommended, as long as you demonstrate that you've learned the course content by the end of the class.
** We'll start working on this together in class.
For this course, you will need:
Access to a computer on which you can install programs (installation instructions are on Canvas)
Windows, Mac, and Linux computers will all work; unfortunately Chromebooks do not
The computer should also have a microphone so you can record screen-casts (no camera is needed)
If you do not have a computer that meets these requirements, you have several options!
Check out a laptop from Mesa to use during the semester (find the link to the Technology Checkout Request)
Use the computers in the classroom during class time, and in the library (LRC) during other times
You do not need to purchase any textbooks or other materials; this course uses a combination of Open Educational Resources (OER) and online references to ensure that all students are able to get started learning right away!
I will be actively present in your learning
I will offer multiple ways for you to engage with the course concepts, including in class and out of class activities.
I will create a supportive environment in which you feel it is okay to be wrong, because mistakes are opportunities for learning.
I will be like a coach, guiding you in areas where you may benefit from more practice, and showing you how I use the course concepts.
I will hold you to high standards of learning that will enable you to be a successful in industry.
I will respond to your questions within 2 business days (although usually much faster!).
You will attend class with an open mind, prepared to think actively and participate in groupwork.
You will prepare for class by giving your best effort to the Read and Try assignment before the class meeting. (I understand that sometimes life happens - please come to class even if you weren't able to prepare!).
You will invest ~12 hours per week on the course, outside of class time.
If necessary, you will review feedback on assignments, then revise and resubmit them to earn completion.
You will recognize that mistakes are opportunities for learning, and will celebrate these learning opportunities with your classmates.
You will be inclusive in interactions with peers, seeking to hear everyone's voice, because the diversity of viewpoints in our class positively benefits everyone's learning.
When you are feeling "stuck" on an assignment for 15 minutes, you will stop and ask for help so that you can spend your study time on productive learning, and not on being frustrated!
I believe that all students can and should learn to write programs to solve problems. Learning is a community activity; when we discuss course concepts, we help others learn but also benefit from putting our ideas about the concepts into words. The diversity of our viewpoints helps us to understand concepts from many different angles; we celebrate the differences that we all bring to the classroom and support each other in our learning. In this course, we are not concerned with grades, but are instead concerned with learning; as such, the "grading" structure may look different than you're used to in other courses - the grading reflects learning, not just effort or time spent staring at (but not understanding) the text.
Approach the course with a can-do attitude. As Henry Ford reportedly said, "Whether you think you can, or you think you can't--you're right."
Ask for help early and often. The only "bad" question is the one that isn't asked!
There's a difference between fruitful struggle (in which you learn) and frustrating struggle (in which you spin your mental wheels). In this course, you should spend time on fruitful struggle. If you're "stuck" on the same thing for 15 minutes, please stop and ask for help.
Find a study buddy (or several!). Learning is more fun with other people, and it's more effective. You'll get to hear other people's interpretation of a topic, and you'll get to share your understanding.
Try following the recommended progression through each module. But, if approaching the material in a different way works better for you, go for it!
Use a calendar to schedule times that you will work on this class, and stick to it. This will help you to keep pace with the class and not fall behind.
Declare and use variables for data persistence within a program.
Invoke methods on an object, with parameters and a returned value.
Write a method, with parameters and a returned value.
Use single dimensional arrays to store and access data.
Use loops: while, for, and nested loops.
Use the Scanner class or an appropriate GUI widget to interact with the user via keyboard input.
Use conditional execution (if-else).
Write and use a custom class.
Construct programs utilizing inheritance and polymorphism.
Construct programs utilizing text file I/O.
Construct programs utilizing exception handling.
Construct programs utilizing graphical user interfaces utilizing event-driven programming.
Some of the words in these goals might be new to you - that's okay! We will work together to help you move from an Intern (beginner) level of understanding to a Senior Developer (expert) level of understanding in each of these topics.
In addition to learning Java programming, you will also have the opportunity to practice and refine 21st Century Skills that are in demand by employers. Did you know that employers are often less concerned about what programming languages you know (these skills are relatively easy to learn on the job), and are more concerned about collaboration and communication skills? These are some of the skills we will practice in this course that you can put on your resume:
critical thinking
problem solving
analytical skills
teamwork/collaboration
troubleshooting
research
planning
creativity
resilience/perseverance
written communication
lifelong learning
Check out a laptop from Mesa to use during the semester
Free tutoring from MT2C, both online and in person
The Stand (provides free food, clothing, and other resources for all students, regardless of income)
Hear what previous students had to say about this course!
To log into Canvas, see these instructions.