Title | Winter | Spring | Summer | Fall |
Elective Courses |
Social Media RESTful APIs (1.50 Units)
I&C SCI X402.43
Social Media Application Development has drastically expanded recently due to RESTful APIs. As a result, the developer communities at Facebook, Instagram, Snapchat, Foursquare, Yelp, and Twitter are growing and becoming more collaborative. Tweets can literally impact elections, your LinkedIn profile can be vital for your career progression. Stackoverflow and GitHub demonstrate your expertise as a developer. In this class, students will explore topics including Social Graphs, Social Media Advertising, Analytics, Reputation Management and Social Listening. We will review the major social media APIs.
Each week we write a practical application including chatbots based on Facebook messenger, Reputation Management via Yelp and Google APIs combined with sentiment analysis via IBM Watson. We explore the APIs of LinkedIn, Foursquare and combine them with Uber and Airbnb and Snapchat. We don't require a specific programming language! All our samples are available in HTML and Java Script. However, the APIs are standard REST APIs and you can choose your favorite language and development environment and present your applications to your classmates. For the more advanced developer, we also cover the mobile APIs and more advanced integrations with Machine Learning for Reputation Management or Augmented Reality via Snapchat. We also plan to offer follow-up classes and meetups.
|
|
|
|
|
Introduction to Computer Programming Using C++ (3.00 Units)
I&C SCI X471.1
Learn the basics of computer programming using C++, a sophisticated programming language normally reserved for experienced users but now made accessible to new programmers in this fast-paced, hands-on course. In addition to introducing the language, this course also introduces the object-oriented paradigm, the modern approach to developing interactive software applications for a wide variety of uses. Topics include fundamental program structures, control structures, mathematical functions, data arrays, pointers, and dynamic memory. Because of the accelerated nature of this course, students are expected to allocate sufficient time outside of class to study the textbook and other materials provided in class. This course is designed for technical professionals with minimal programming experience and highly motivated individuals desiring to learn fundamental programming techniques.
|
|
|
|
|
Developing .NET Solutions with C# (3.00 Units)
I&C SCI X402.05
Learn C# (pronounced C-sharp), Microsoft's object-oriented programming language that combines the power of C++ with many of the features of Java. You'll learn how eXtensible Markup Language (XML) and Simple Object Access Protocol (SOAP) simplifies programming in C# and how these features can decrease the time it takes to get new products and services to market. Topics include the Common Language Runtime, the Common Type System, the .NET Framework Class Library, the .NET software development kit (SDK), and data access using Active Data Objects (ADO.NET). Upon completion of the course, you'll be ready to write short C# programs that exercise the major features of the language as well as continue your study of the .NET environment.
|
|
|
|
|
Introduction to Programming using Java (1.00 Unit)
I&C SCI X460.20
This course enables a person with no programming experience to understand programming concepts using Java programming language. It will teach you how to think like a programmer, introduce you to the algorithm design, user interaction, code reusability, and basics of Java programming language. You will learn all this through hands-on examples, fun exercises, quizzes, and creative projects. By the end of this course you will have a solid understanding of the foundations of programming, allowing you to move to more advanced programming courses in the future.
|
|
|
to be scheduled
|
|
Java Programming I (3.00 Units)
I&C SCI X460.10
Java is an excellent choice for those new to programming, looking to enhance their current skillset or change their career. The aim of this course is to provide students with the knowledge and experience to write and design sophisticated professional programs using Java through extensive hands-on exercises. This course covers core language concepts including fundamental data types, flow control, and standard function libraries. Object-oriented programming and modular design is emphasized to support distributed development environments. Also included are class and object design, inheritance, polymorphism, error handling, and file I/O. After completion of this course, students are prepared for I&C SCI X460.11 Java Programming II.
|
|
to be scheduled
|
|
|
Java Programming II (3.00 Units)
I&C SCI X460.11
Expand your knowledge of Java and learn about several of the advanced features available in the Java programming environment. This course focuses on the development of advanced graphical user interfaces (GUIs) using JavaFX, multithreading and concurrency, Generics, basics of databases and Java Database Connectivity (JDBC), Servlets, Java Server Faces (JSFs), networking, exception handling, debugging, and the Eclipse for Java Developers Integrated Development Environment (IDE). Students have an opportunity to practice implementing these and other Java features in this hands-on course.
|
|
|
|
|
Java Web Services (1.50 Units)
I&C SCI X460.68
Java Web Services is a hands-on course that teaches you the concepts, implementation, and usage of different types of web services using Java technologies. You will learn to design, develop, and publish SOAP and REST web services with Java technologies. You will also learn how to write clients for calling these web services. The special emphasis is put on applying the architectural concepts and best practices for developing secure and scalable web services (SOA, standards, etc.).
|
|
to be scheduled
|
|
|
Agile Software Design and Programming (2.50 Units)
I&C SCI X494.85
Learn the principles, practices and patterns that result
in optimal software design and development. Utilize the
best practices from object-oriented design and Agile
techniques/frameworks to create design processes and
culture that result in highly effective, clean software to
improve organizational efficiency and create a competitive
advantage for your company. You will review a variety of
case studies–from simple to complex–in multiple programming
languages, illustrating the fundamentals of Agile
development and Agile design. Topics include: release and
iteration planning, test-driven development, refactoring,
Agile design (including “design smells”, “code rot”),
Single-Responsibility Principle (SRP), Open-Closed
Principle (OCP), Liskov Substitution Principle (LSP), object
and state diagrams, big software design issues, design
patterns, class design, complexity management and
package design, and the use of OOD and C++ in an
Agile environment.
|
|
|
to be scheduled
|
|
Agile Development (2.50 Units)
I&C SCI X494.83
Agile techniques are rapidly becoming integral parts of the project management process and are often implemented to motivate cultural shifts required to stimulate innovation and improved operational efficiency. In this second class in the two course series (first being Agile Project Management) on management of projects using lean and agile methods, students will learn important differences between evaluation and tracking of in agile and traditional projects. Additional topics include: scaling agile to large projects and distributed team; cooperative methods for problem and decision analysis; agile contracts and contracting; writing great user stories; agile technical practices; agile standardization and certification; and team work in high-performance teams. The use of agile methods as tools to motivate innovative, cultural and organizational change will also be discussed.
|
Online
|
to be scheduled
|
|
|
Agile Project Management (3.00 Units)
I&C SCI X494.80
This course teaches management of projects using agile and lean methods with a detailed focus on SCRUM and Kanban. The course starts with foundational knowledge of traditional project management and moves on to address key concepts in agile and lean methods. Students will explore SCRUM roles, artifacts, events, and processes thereby learning how products can be delivered iteratively and how customers are brought in the loop of product development process. The use of information radiators such as sprints and release charts is also covered. Students learn Kanban and how this flow-based method is used to achieve efficient and smooth work management improving time-to-market. Through real-life examples, the course will elaborate on how agile and lean methods can perform side by side with traditional projects or in hierarchical organizational structures. Industry recognized software tools such as Rally Dev will be used in the class to help students understand how to effectively manage a project in an agile environment.
|
|
to be scheduled
|
|
|