Prerequisites
The following checklists are guidelines for what you need
to be successful prior to the beginning of each class
(as I teach them). These checklists are based on the college catalog
and college guidelines. Read them carefully and make
sure you are prepared to be successful in each class.
In each class there will be a week long review of everything on the checklist
(usually in the first week). If you are missing any skills, that will be your
opportunity to catch up, but that week moves fast. If you are missing
any of the skills below you are strongly encouraged to review them prior to
the start of the semester.
Programming Fundamentals I
Fundamentals I is an
introduction to computer science
class. As such it requires solid basic computer literacy and skills. You
should have all of the following skills prior to entering the
class. This checklist is what you should have taken away
from Introduction to Computers.
- Successfully completing COSC 1301 Introduction to Computers
or the equivalent skills and/or experience.
- How to see and manage file extensions and an understanding
of file types (i.e. text files versus binary files).
- The ability to make text files with various extensions
(e.g. .py .txt .csv) and an understanding
of text files and their usage.
- An understanding of absolute and relative directory paths.
- Basic command prompt usage including navigating directories,
editing and viewing files, and creating and deleting files
from the command prompt.
- A basic understanding of remote versus local resources.
- Strong Web skills for searching and looking up course material.
[ back to top ]
Programming Fundamentals II
You should have all of the following skills prior to entering the class.
This checklist is what you should have taken away
from Programming Fundamentals I.
- Everything required of Fundamentals I listed above.
- Successful completion of Fundamentals I and the skills associated
with that completion.
- Very good command prompt skills.
- Good foundational understanding of basic control structures.
- Strong foundational understanding of Boolean logic and compound conditionals.
- Strong foundational understanding of procedural programming including a strong
understanding of passing and returning values from functions.
- Basic understanding of passing by value and by reference.
- Familiarity with the concept of classes and objects.
- Basic understanding and usage of git and GitHub.
[ back to top ]
Programming Fundamentals III: Data Structures
You should have all of the following skills prior to entering the class.
This checklist is what you should have taken away
from Programming Fundamentals II.
If you do not have this skill-set and experience prior to entering this class,
this class will be very challenging and it will be difficult to
complete this class successfully.
- Everything required of Fundamentals II listed above.
- Successful completion of Fundamentals II and the skills associated
with that completion.
- Strong command prompt skills. You should be as comfortable
at the command prompt as you are with a GUI.
- Strong understanding of control structures
- Strong understanding of Boolean logic and compound conditionals.
- Strong understanding of procedural programming including a strong
understanding of passing and returning values from functions by both
value and reference.
- Strong understanding of passing by value and by
reference to functions.
- Strong foundational understanding of classes, objects, and OOP.
- Strong understanding of Best Practices in
Procedural Programming
and
Object Oriented Programming
- Strong foundational understanding of loose coupling and how to achieve it.
- Solid understanding of header files, the difference between
interface and implementation, and how/why header files are used.
- Basic understanding and usage of git and GitHub.
- Basic understanding of exception handing.
The "secret" to this class and all programming:
This class is challenging. However, it's not the data structures, it's not the
algorithms, and it's not programming that is the challenging part. It's the concepts
of pointers, dynamic memory allocation, and passing by reference. That's the
"gotcha." Students who master memory manipulation concepts (i.e. pointers, dynamic memory allocation, and passing by reference)
will find this class "easy." Student who do not master memory will find this
class very challenging. However, this applies to all programming and in all
languages, so may as well learn it now.
[ back to top ]
Beginning Web Programming
This class is not an introduction to programming class. This is
a class for programmers who have already acquired solid
basic programming skills
and wish to add Web programming to their skill set.
You are expected to have foundational programming
skills prior to this class. Also, this is not a Web design
class. Web Design (ITSE 1301) is a separate class and is a different skill set
from programming (and a different profession).
This checklist is what you should have taken away
from both Programming Fundamentals I and Web Design which are
BOTH pre-reqs for this class.
- Everything required of Fundamentals I listed above.
- Successful completion of ITSE 1301 Web Design and the skills associated
with that completion.
- Successful completion of COSC 1336 Fundamentals of Programming I and the skills associated
with that completion.
- Basic command prompt skills.
- Solid foundational Web Design skills including HTML and CSS skills.
Note that this class does not explicitly teach HTML and CSS, but those
will be covered implicitly as part of
best practices in Web programming
and learning DOM manipulation.
You are expected to be reasonably proficient at both HTML and CSS from
your successful completion of ITSE 1301 Web Design.
- Foundational understanding of basic control structures.
- Foundational understanding of Boolean logic and compound conditionals.
- Foundational understanding of procedural programming including an
understanding of passing and returning values to/from functions.
- Basic understanding of passing by value and by reference.
- Familiarity with the concept of classes and objects.
[ back to top ]
Intermediate Web Programming
You should have all of the following skills prior to entering the class.
This checklist is what you should have taken away from
Beginning Web Programming, Fundamentals of Programming I,
and Web Design. In addition, having some basic database skills
will be very helpful but is not required. Keep in mind, this class
is not for teaching/learning programming. It is for teaching/learning
how to apply your programming skills to the Web and client-server
architectures.
If you do not have this skill-set and experience prior to entering this class,
this class will be very challenging and it will be difficult to
complete this class successfully.
- Everything required of Beginning Web Programming listed above.
- Successful completion of Beginning Web Programming and the skills
associated with that completion.
- Strong understanding of Division of Concerns and modularity.
- Strong understanding of client-server relationships and Web architecture.
- Very good command prompt skills. You should be as comfortable
at the command prompt as you are with a GUI.
- Exceptional understanding of control structures.
- Exceptional understanding of Boolean logic and compound conditionals.
- Exceptional understanding of procedural programming including a strong
understanding of passing and returning values to/from functions.
- Strong understanding of passing by value and by reference.
- Strong understanding of classes, objects, and OOP.
- Strong understanding of Best Practices in
Procedural Programming
and
Object Oriented Programming
and
Web Programming
- Strong understanding of loose coupling and how to achieve it.
- Basic MySQL skills (recommended but not required)
[ back to top ]
Advanced Web Programming
[ back to top ]