Fund I | Fund II | Fund III | Modern Prog
All course listed here will use version control and be expected to follow best practices for procedural and object-oriented programming. This will be graded.
Programming Fundamentals I is designed as an introductory course in computer science, computational thinking, and programming. The language of instruction is Python. It should be noted that the point of the class is not simply to learn Python (i.e. this is not a "Python class"). The point of the class is to learn programming logic and basic computer science concepts. Python is simply the tool by which we accomplish those goals. That has the effect of also learning Python, and students will be expected to master Python syntax and language concepts, but the emphasis will be placed on computer science, algorithmic thinking, and computational thinking. As such, other languages will be mentioned and compared and contrasted to Python to help students gain a well-rounded view of programming and computer science.
The topics covered in the course will include but are not limited to:
Building on the concepts in Programming I, Programming II continues with computer science concepts but using the C/C++ programming language. As with Programming I, this second class in Programming Fundamentals is a computer science course where the language of instruction is C/C++. The point of the class is not simply to learn C/C++ (i.e. this is not a "C/C++ class"). The point of the class is to learn more advanced programming logic and intermediate computer science concepts. C/C++, which is the de-facto language of computer science, is the tool by which we accomplish these goals in this class.
This class begins with a review of all Programming I control structures, data types, and abstract data types and their corresponding representation in C/C++. The emphasis of the class will be computer science, proper application architecture, and object-oriented programming.
The topics covered in the course will include but are not limited to:
This class is intensive and requires serious commitment from the student. Considerably more so than the previous two.
Building on the concepts in Programming II, Programming III continues with computer science concepts, also using the C/C++ programming language. Data Structures is considered by many to be the first true computer science course you take in a CS program (as opposed to 'programming'). Programming III focuses on computer science theory more than the previous two courses, but also includes practical discussion of data structures and their applications. Roughly speaking, programming I and II are 70/30 practice over theory. Programming III is the reverse, 30/70, where we will study algorithmic efficiency, modularity, code reuse, etc. considerably more than the previous classes.
This course assumes strong competencies in control structures, programming logic, basic software architecture, and basic computer science concepts. From that foundation this course studies abstract data types in depth including algorithm analysis, templating, and recursion.
By the time you reach this class you will have had to take and successfully pass at least 3 programming classes and other technical courses. You will be expected to demonstrate that fact in this class.
The topics covered in the course will include but are not limited to:
Software development phases including requirements and analysis, design and construction, testing, deployment, operations, and maintenance will be covered. Modern software development and management platforms, tools, and services will be used.
This course assumes strong competencies in control structures, programming logic, basic software architecture, and intermediate computer science concepts. Software development phases including requirements and analysis, design and construction, testing, deployment, operations, and maintenance will be covered. Modern software development and management platforms, tools, and services will be used. By the time you reach this class you will have taken and successfully pass at least 4-5 programming classes and other technical courses. You will be expected to demonstrate that fact in this class.
For purposes of best practices and version control usage, this course does not count as a "programming course." It is a theoretical course, not a practical programming course.
The topics covered in the course will include but are not limited to: