This program will teach you core computer science competencies in programming and data structures. Understanding how programming works is essential in many technical disciplines such Information Technology, Software Engineering, Cybersecurity, and Computer Science. The courses utilize the C++ programming languages to establish a solid foundation in programming and data structures for the students. Students gain valuable hands-on experience programming solutions to problems in the labs. I the labs, students will practice their core programming skills and will also develop many advanced data structures including, hashtables, sorting and search algorithms, binary trees, AVL trees, graph algorithms and many more advanced computing topics. In addition to the applied programming labs, students will also gain an understanding of computational complexity through the analysis of the data structures and programs that are developed.
What you will learn
Identify and explain a programming development lifecycle, including planning, analysis, design, development, and maintenance.
Demonstrate a basic understanding of object-oriented programming by using structures and classes in software projects.
Use object-oriented programming techniques to develop executable programs that include elements such as inheritance and polymorphism.
Document and format code in a consistent manner.
Apply basic searching and sorting algorithms in software design.
Apply single-and multi-dimensional arrays in software.
Use a symbolic debugger to find and fix runtime and logical errors in software.
Demonstrate a basic understanding of programming methodologies, including object oriented, structured, and procedural programming.
Describe the phases of program translation from source code to executable code.
Design and develop programs that utilize linked lists to store data internally.
Design and develop programs that utilize stacks and queues to manage collections of data.
Design and develop programs that recursion to solve problems that can be expressed with recurrence.
Utilize binary search trees and balanced trees to implement fast retrieval of data from a collection of data stored in memory.
Learn the advanced programming topics in the C++ programming language, including file processing, linked lists, stacks, queues, trees, binary search trees and tree balancing algorithms.
7-9 Hours per week
Meet Your Instructors
Adjunct Professor at New York University Tandon School of Engineering
Aspen Olmsted is an adjunct faculty member in the New York University Tandon School of Engineering in the Computer Science and Engineering department. Aspen's fulltime job is as an assistant professor and Graduate program director at the College of Charleston. He obtained a Ph.D. in Computer Science and Engineering from The University of South Carolina. Before his academic career, he was CEO of Alliance Software Corporation. Alliance Software developed N-Tier enterprise applications for the performing arts and humanities market. Dr Olmsted’s research focus is on the development of algorithms and architectures for distributed enterprise solutions that can guarantee security and correctness while maintaining high-availability. In his Secure Data Engineering Lab, Aspen mentors over a dozen graduate and undergraduate students each year
Industry Assistant Professor at New York University Tandon School of Engineering
Tel-Aviv University 2005
M.Sc., Computer Science
Tel-Aviv University 1998
B.Sc., Computer Science and Mathematics