|
Software Systems Development Courses and Certificates
Software Systems Development makes up the second half of iCarnegie's 10-course Software Systems Development (SSD) curriculum, rounding out the advanced training and education that prepares students for careers in software development, engineering, and management.
iCarnegie's higher education and training partners may choose to offer all or a selected number of these courses (check course availability with individual partners):
Students certifying in SSD1-10 courses obtain an iCarnegie Certificate in Software Systems Development.
Brief Course Descriptions: (detailed course descriptions are available from iCarnegie and our education partners)
SSD6 = System-Level Programming
This course prepares programmers to consistently produce software applications
that execute rapidly and are efficient in their use of memory. This is accomplished
by providing students with a programmer's view of processors, memory, and
operating systems. Students learn explicitly about memory organization and
hierarchies, context-switching and threads, and the transformations that
a high-level program undergoes before it is executed on actual hardware.
This knowledge enables students to eliminate obscure "bugs" and
to measure and optimize software program performance. Programming assignments
use the C programming language.
Topics: Programming in C; debugging; memory management, memory hierarchies, cached memory, virtual memory; performance measurement and tuning; DLLs; operating systems; basic concurrent programming.
Prerequisites: SSD2 (or skills/education equivalent), SSD5
SSD7 = Database Systems
At the heart of today's web-based software applications that are revolutionizing
businesses, there are well-designed database systems enabling rich functionality.
This course trains students to build such systems, by teaching database
concepts and then the practical work of database system design and implementation.
It draws on previous training in advanced Java, web environments, object-oriented
programming, and usability design. Students develop client-server applications
in Java and JSP, using database management systems. The assignment involves
the creation of an e-commerce bookstore, which must support the ability
for users to register themselves, search content, place and track orders,
and change personal settings. Students gain the necessary skills to create
data models appropriate for specific applications (relational data models
are emphasized), tune the underlying database for fast response times, and
ensure the system is robust enough to handle failures.
Topics: Relational data models and data independence; relational query languages and SQL; database design; normalization; client-server applications; transactions; indexes; performance issues.
Prerequisites: SSD5
SSD8 = Networks & Distributed Programming
This course focuses on the principles and practices of building business applications that are distributed across networks, allowing for many users to be part of a connected community. Students start with an overview of networking technology that supports data and multimedia communication. The students apply concepts to a number of practical assignments involving the development of distributed applications, including web servers, calendars, and chat systems. Students learn application-oriented protocols and approaches to distributed object-oriented programming using Java. With network-based applications being a frequent source of security issues for many companies, professionals having strong knowledge in this area are an asset in helping to prevent such problems in the workplace.
Topics: Networking protocols and technology; multimedia networking; client/server design, thick and thin clients; CORBA and related tools; Web implementation issues; electronic mail; security and privacy issues.
Prerequisites: SSD6
SSD9 = Software Specification, Test and Maintenance
The course prepares students for the software development processes and
planning activities they will encounter in the workplace, by providing them
with practical experience in managing all phases of a software project's
life cycle - from requirements gathering through design, testing, and final
deployment. This course, which has served as a masters-level course at Carnegie
Mellon University, focuses on the principles of developing economical, reliable
software systems following modern software engineering practices. Students
work individually or in multi-person teams to develop and manage all the
steps required to build a database-driven software project of significant
scale, in this instance, an online musical instrument store.
Topics: Life cycle models, requirements analysis, specification, design, implementation, inspection, testing, documentation, configuration control, CASE tools, and reuse.
Prerequisites: SSD4, SSD7
SSD10 = Software Project Organization & Management
This course prepares students to organize and manage teams of individuals involved in the development of software applications and products. The skills taught are crucial for the workplace, where software project plans must be developed to withstand typical problems such as schedule over-runs, budget over-runs, and other risks that affect software quality. Students learn techniques of project planning, scheduling, costing, risk analysis, and organization. Students examine and critique various kinds of software planning and management artifacts that are representative of plans encountered in the workplace.
Topics: Project management techniques: scheduling, budgeting, risk
analysis; basic project management tools; leadership principles; client
relationships; liability issues; intellectual property issues; confidentiality
issues; CMM; ethics. Prerequisites: SSD9 (may be taken concurrently),
or several years' programming experience (as determined by education partner).
|
 |
 |