Student Developer Checklist and Pre-Reqs

Fund I | Fund II | Fund III
Beg Web | Inter Web | Adv Web

Nothing detailed here is intended to take the place of the official college catalog descriptions. Please familiarize yourself with the catalog descriptions as well. Also note that the descriptions here are my approach to the classes listed. Other professors will have a different approach and philosophy.


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

  • Coming Soon ™
[ back to top ]