|
Computer Programming Courses and Certificates
Computer Programming makes up the first half of iCarnegie's 10-course Software Systems Development (SSD) curriculum, providing the core foundation for immediate workplace value and for a future career in software development and engineering.
iCarnegie's higher education and training partners may choose to offer all or a selected number of these computer programming courses (check course availability with individual partners):
Students certifying in SSD1-5 obtain an iCarnegie Certificate in Computer Programming.
Brief Course Descriptions: (detailed course descriptions are available from iCarnegie and our education partners)
SSD1 = Introduction to Information Systems
This course enables students to gain fundamental knowledge and skills in software development and problem solving through programming. Students learn how software is written, its fundamental building blocks, and how multiple pieces of software cooperate to make Web-based applications work. The course uses an “objects-first” approach to teach programming languages and lays the foundation for learning advanced Java. Students learn to create Web pages in HTML and Servlets in Java, and build the logic behind typical web applications such as online music play-lists and simulation environments. Students completing this course are prepared to hold responsibilities in developing and supporting interactive websites of a small to moderate scale.
Topics:
Introduction to software development processes and environments; clients, servers and data transfer; introduction to naming issues; languages, syntax, interpretation, compilation and execution; program control structures; data representation (simple types, encapsulated types); basic Java and HTML; documentation; and Servlets.
Prerequisites: None (Algebra II, familiarity with computers and Web preferred)
SSD2 = Introduction to Computer Systems
This course introduces software development students to the fundamentals of using and maintaining computer systems in an Internet environment. Students gain important knowledge that will help them effectively communicate with the IT personnel they will meet in the workplace, as well as understand more about security issues and the environment in which their software systems will reside. The basic components and functions of the computer and the network are introduced, along with tools and procedures for their operation and maintenance.
Topics: Basic machine architecture (processors, memory, I/O); basic operating system concepts (processes, concurrency, address spaces); I/O devices for storage and multimedia; basics of processing, storage and communication capacity; command processors and scripting; file systems; basic network architecture; installing new software and devices; security; backups, compression, and encryption.
Prerequisites: SSD1, which may be taken concurrently (or skills/education equivalent)
SSD3 = Object-Oriented Programming & Design
This course introduces students to professional tools and processes for designing, documenting, and programming software systems. Students learn effective software architecture and problem solving techniques by means of object-oriented programming and design. There is an emphasis on problem analysis and solution design, documentation and coding conventions (using formats widely applied in the workplace), and implementation. Students use commercial software libraries and create robust software applications, such as a point-of-sale cash register kiosk. Starting with a specification, students design UML class diagrams, use design patterns, implement in Java, and test their solutions. This course gives students the experience and knowledge to create highly functional, well-designed software systems.
Topics: Modularity and abstraction; encapsulation; inheritance; polymorphism; use and creation of software libraries; Javadoc; unit testing; UML; Java programming; IDEs; design patterns.
Prerequisites: SSD1 (or skills/education equivalent)
SSD4 = User-Centered Design & Testing
This course focuses on a different dimension in developing robust, maintainable, and efficient software. Software and Web applications that have “users” can be characterized along a dimension of usability. In other words, “is it straightforward for the user to get the software to do what it is supposed to do?” - whether the task is to draw a map, pay a bill, find a phone number, order an item, book a flight, or change the format of a text page. In this course, students learn the most important techniques of Human-Computer interaction, so that they can conduct user studies to isolate usability problems and ultimately build software that gracefully assists its users in accomplishing intended tasks. Students receive training in the basic skills of task analysis, interface evaluation, and effective UI design. Visual Basic is used in various programming assignments.
Topics: Task analysis; user interface idioms; user interface toolkits; rapid prototyping and evaluation; simple user studies and usability aspect reports; “think aloud” methods; Visual Basic programming.
Prerequisites: SSD3, which may be taken concurrently (or skills/education equivalent)
SSD5 = Data Structures & Algorithms
This course prepares students for designing data-intensive software applications, bolstered by a practical assignment involving the development of an online auction system with rich functionality. To support such applications, students learn how to select algorithms and representations they will frequently use as professional programmers and software developers, and how to reason informally about algorithm and data structure correctness and complexity. Students also gain a thorough understanding of the dependence of execution time and memory requirements on the data structures and algorithms chosen. Programming assignments use the C++ programming language and the Standard Template Library.
Topics: Abstract data types; data structures and invariants; simple algorithm analysis; sorting and searching; trees and graphs; associative data structures; C++ programming with the Standard Template Library (STL).
Prerequisites: SSD3
|
 |
 |